新入手一套防火墙软件,寻求linux高手支持!
首先,要会linux,其次,要懂得IPTABLES,再次,善于研究。我会考虑吧此软件发送给你研究,但要和我分享研究成果。
现在,最想要的就是:
1、策略路由
2、IP绑定(现在貌似我已经搞定了)
3、安全
3、小包优先
5、本机安全
6、MAC地址锁定的相关破解(不破解也可以) 以下是原作者网站的简介:
1. 网络规划
1.1 网关功能
网关具有3个10/100M自适应以太网接口(分别为eth0、eth1、eth2),在校园网中放在出口,通过以下三种功能来提供服务:
双向地址转换功能:
通过内部到外部的地址转换功能,校内的计算机可以直接连接外部网络。
通过外部到内部的地址转换功能,校内的服务器可以被外部网络访问。
包过滤功能:
网关提供对经过的IP数据包的过滤功能,通过拦截不必要的数据包,来减少内部服务器被外部入侵或感染病毒的可能性。
DHCP服务器功能:
网关可以作为DHCP服务器,对内部分配动态地址,减少系统管理的复杂性。
1.2 网络拓扑
在一般的校园网中,仅仅使用网关的2个以太网接口即可满足使用要求,连接方式一般如下图所示:
1.3 VLAN和IP地址规划
确定网络连接后,需要规划VLAN和IP地址。在校园网中,为了减少VLAN数量,一般把功能类似的用户划分在一个VLAN中,如一般的校园网会划分如下VLAN:
网络中心VLAN:服务器、网络管理员计算机使用
教学VLAN:教室计算机使用
办公VLAN:办公室、教研组计算机使用
机房VLAN:学生计算机房使用
家属区VLAN:教师宿舍区计算机使用
校内的IP地址使用Internet规定的内部地址,一般用192.168.*.*的地址。根据VLAN的划分对各个VLAN规划IP地址。
2.硬件安装、网络连接
2.1 硬件安装
将附件盒中的机柜安装耳朵装到网关上,然后把网关安装到机柜上。
2.2 网络连接
根据规划,连接网线。
网关的接口命名规则为:从网关的背后看,离电源最近的为接口eth0,最远的为eth2,中间的为eth1。
随机附带的网线,2条为直通线,2条为级联线,完全能满足需求。
3.系统配置
3.1 系统管理方式
系统主要采用Web方式进行管理,系统默认的设置是eth2的IP地址为192.168.0.1,掩码255.255.255.0。为了对系统进行设置,需要一台IP地址为 192.168.0.*的计算机,连接在eth2接口上。在该计算机的IE中输入http://192.168.0.1/即可连接上网关的管理界面。管理界面的用户名为admin,密码缺省为admin。
系统配置的维护在管理界面的"系统维护/配置文件维护"菜单下。
系统的配置文件有3个,为dhcpd.cf、startup.rc和multirun.rc。
其中dhcpd.cf中存放DHCP相关信息。
startup.rc存放的配置信息在系统启动时被执行,而multirun.rc存放的配置信息则在每次修改后保存的同时被执行。每次保存配置文件时,系统会将原来的配置文件备份。
一般情况下,startup.rc中存放不经常修改的配置,如接口配置、IP地址配置、路由等。而multirun.rc 中存放经常需要改动的配置,如临时封锁的站点,IP-MAC地址对应表等。
配置文件在系统的联机帮助中有详细描述。
配置文件以行为单位,其中以"#"开头的行为注释行,在处理时被忽略。注意,除了以"#"开头的行为注释行外,配置文件中的配置必须是英文半角字符。
3.2 系统配置实例
以下图所示网络来说明网关的配置。
上图中,网关的eth0接口接电信出口,可用的地址段为218.22.166.98-218.22.166.110掩码255.255.255.240,网关是218.22.166.97。eth2接内部网络,地址为192.168.1.254。内部网络的IP地址范围为192.168.*.*。
设置如下地址转换项目:
192.168.1.11 地址转换成218.22.166.101,作为www服务器,开放80端口
192.168.1.12地址转换成218.22.166.102,作为邮件服务器,开放25、80、110、143端口
192.168.1.13地址转换成218.22.166.103,开放80端口
192.168.1.14地址转换成218.22.166.104,开放80端口
其它计算机转换为218.22.166.99,这个IP也是网关的IP地址。
下面是配置文件和说明:
配置文件startup.rc的内容如下:
#设置机器名字
#根据学校名设置网关的名字
hostname gateway.xxxx
#加载相关模块
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
#IP地址设置,后面的/28指网络掩码中1的个数,其中eth0接口上要设置多个IP地址
ip addr add 218.22.166.99/28 dev eth0
ip addr add 218.22.166.101/28 dev eth0
ip addr add 218.22.166.102/28 dev eth0
ip addr add 218.22.166.103/28 dev eth0
ip addr add 218.22.166.104/28 dev eth0
ip addr add 192.168.1.254/24 dev eth2
ip link set eth0 up
ip link set eth2 up
#IP路由设置
#缺省路由
ip route add 0/0 via 218.22.166.97
#到校内192.168.*.*的路由,下一跳是主干交换机的IP地址
ip route add 192.168.0.0/16 via 192.168.1.253
#如果要使用dhcp服务器,需要把下面行的注释删掉
dhcpd
配置文件multirun.rc的内容如下:
iptables -F
iptables -t nat -F
#地址转换,设置
# 218.22.166.101 192.168.1.11 WWW
# 102 192.168.1.12
# 103 192.168.1.13
# 104 192.168.1.14
#每个IP需要3条设置
#第一行设置进来的转换
#第二行设置出去的转换
#第三行的意义是,校内用户连接内部服务器对应的公网IP地址时,转换成是从
#网关上发起的,保证应答包能经过网关
iptables -t nat -A PREROUTING-j DNAT -d 218.22.166.101 --to 192.168.1.11
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.11 --to 218.22.166.101
iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.11 --to 192.168.1.254
iptables -t nat -A PREROUTING-j DNAT -d 218.22.166.102 --to 192.168.1.12
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.12 --to 218.22.166.102
iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.12 --to 192.168.1.254
iptables -t nat -A PREROUTING-j DNAT -d 218.22.166.103 --to 192.168.1.13
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.13 --to 218.22.166.103
iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.13 --to 192.168.1.254
iptables -t nat -A PREROUTING-j DNAT -d 218.22.166.104 --to 192.168.1.14
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.14 --to 218.22.166.104
iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.14 --to 192.168.1.254
#其他出去的转换,都转化成从网关的IP出去的
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.0.0/16 --to 218.22.166.99
#IP包过滤设置
#首先允许所有建立的连接
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
#禁用一些病毒产生的数据包
iptables -A FORWARD -j DROP -p udp --dport 135:139
iptables -A FORWARD -j DROP -p tcp --dport 135:139
iptables -A FORWARD -j DROP -p tcp --dport 445
iptables -A FORWARD -j ACCEPT -p icmp -m limit --limit 10/sec
iptables -A FORWARD -j DROP -p icmp
#www服务器,允许连接TCP80端口,其他的被拒绝,并记录日志
#记录日志时每分钟最多记录10条日志
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.11 --dport 80
iptables -A FORWARD -j LOG -d 192.168.1.11 -m limit --limit 10/min --log-prefix " WWW "
iptables -A FORWARD -j REJECT -d 192.168.1.11
#mail服务器
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 25
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 80
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 110
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 143
iptables -A FORWARD -j LOG -d 192.168.1.12 -m limit --limit 10/min --log-prefix " mail "
iptables -A FORWARD -j REJECT -d 192.168.1.12
#192.168.1.13
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.13 --dport 80
iptables -A FORWARD -j LOG -d 192.168.1.13 -m limit --limit 10/min --log-prefix " 1.13 "
iptables -A FORWARD -j REJECT -d 192.168.1.13
#192.168.1.13
iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.14 --dport 80
iptables -A FORWARD -j LOG -d 192.168.1.14 -m limit --limit 10/min --log-prefix " 1.14 "
iptables -A FORWARD -j REJECT -d 192.168.1.14
4.DHCP配置
使用DHCP可以简化网络的管理。考虑到可靠性,一般不建议使用Windows 2000Server作为DHCP服务器,而建议使用交换机或网关作为DHCP服务器。
在校园网中使用DHCP服务器时,如果DHCP服务器和客户被三层交换机隔离开,需要在三层交换机上使用dhcp relay把客户机的DHCP请求转发到DHCP服务器。
把网关作为DHCP服务器,需要以下设置:
配置dhcpd.cf文件
在startup.rc中启动dhcpd
下面是dhcpd.cf的配置实例:
#缺省的域名
option domain-name "xxxx.net";
option domain-name-servers 202.102.192.68;
default-lease-time 60000;
max-lease-time 72000;
#如果使用WINS服务,设置WINS服务器
#option netbios-name-servers 192.168.1.1;
#option netbios-dd-server 192.168.1.1;
#option netbios-node-type 8;
#eth0接口,不启用DHCP
subnet 218.22.166.96 netmask 255.255.255.248 {
not authoritative;
}
#其他
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.30 192.168.1.200;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.30 192.168.2.200;
option broadcast-address 192.168.2.255;
option routers 192.168.2.254;
}
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.30 192.168.3.200;
option broadcast-address 192.168.3.255;
option routers 192.168.3.254;
}
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.30 192.168.4.200;
option broadcast-address 192.168.4.255;
option routers 192.168.4.254;
}
5.其他
5.1 系统密码恢复
系统密码丢失恢复的步骤如下:
使用串口把网关和PC机连接起来,PC机上运行终端仿真程序,设置为9600,8N1
打开网关的电源开关,看到提示
Press S within 2 seconds to stop system normal startup
时按S,跳过系统正常启动过程
启动完毕后,敲几个回车
出现提示login:时输入admin回车,然后输入密码admin 回车登录
输入以下命令
mount -t msdos /dev/hda1 /mnt
cp /etc/passwd /mnt/linux
umount /mnt
重新启动网关,系统的用户名和密码恢复成缺省的admin/admin。
注:在http://www2.beareyes.com.cn/bbs/3.htm下可以找到本资料的电子版本。
[ 本帖最后由 Memphiss 于 2007-4-21 22:40 编辑 ] 商业版本? 原帖由 想得太美 于 2007-4-21 22:59 发表 http://bbs.routerclub.com/images/common/back.gif
商业版本?
是啊。
已经给你发消息,加我QQ。 配置表应该怎样写? 现在的状态:
1、
#设置机器名字
hostname TP-Link.RT410.垃圾路由器
#加载相关模块
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_h323
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_h323
echo 30000 > /proc/sys/net/ipv4/ip_conntrack_max
#IP地址设置
ip addr add 192.168.0.254/24 dev eth0
ip addr add 218.22.21.18/29 dev eth1
ip addr add 218.104.71.172/28 dev eth2
ip link set eth0 up
ip link set eth1 up
ip link set eth2 up
#IP路由设置
ip route add 0/0 via 192.168.0.1
#sendarp
#如果要使用dhcp服务器
#dhcpd eth1
2、
#IP包过滤设置
iptables -F
iptables -t nat -F
#地址转换设置
#主要转换
iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.0/24 --to 192.168.0.6
#IP包过滤设置
#允许所有建立的连接
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -p icmp
#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#端口映射
#iptables -t nat -A PREROUTING -j DNAT -d 外网地址 -p tcp --dport 端口 --to 内网地址:端口
#如果要进行ARP地址绑定
#清空列表
iparp flush
#首先建立内网的成员表
iparp 192.168.1.9 00:0f:1f:1f:fe:71
#再仅仅允许指定的MAC地址使用指定的IP
iptables -A FORWARD -s 192.168.1.9 -m mac --mac-source 00:0f:1f:1f:fe:71 -j ACCEPT
#防火墙设置
iptables -A FORWARD -j DROP -p udp --dport 135:139
iptables -A FORWARD -j DROP -p tcp --dport 135:139
iptables -A FORWARD -j DROP -p tcp --dport 445
iptables -A FORWARD -j ACCEPT -p icmp -m limit --limit 10/sec
iptables -A FORWARD -j DROP -p icmp
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
#iptables -A FORWARD -s 192.168.0.0/16 -i eth0 -j DROP
#iptables -A FORWARD -s 10.0.0.0/8 -i eth0 -j DROP
#iptables -A OUTPUT -o eth0 -p tcp --dport 31337:31340 --sport 31337:31340 -j DROP
#iptables -A FORWARD -o eth0 -p tcp --dport 31337:31340 --sport 31337:31340 -j DROP
还在试验阶段。。。。。。 我现在仅仅作了“#IP地址设置
ip addr add 192.168.0.254/24 dev eth0
ip addr add 218.22.21.18/29 dev eth1
ip addr add 218.104.71.172/28 dev eth2
ip link set eth0 up
ip link set eth1 up
ip link set eth2 up
”
的事情,后面还没有做。。。。。。 这类软件做商业版本似乎用户不会很多吧?
网络上防火墙规则很多,你可以自己找找看。建议不要对用户提供常见的 LINUX SHELL的方式。
我自己已经做了一套包含多个非常有用的工具的系统。目前正在写类似传统路由器的命令行终端截面。:lol
网关的接口命名规则为:从网关的背后看,离电源最近的为接口eth0,最远的为eth2,中间的为eth1。
这里说明一下,LINUX 中ethernet 接口是按中断顺序命名的,从距CPU最近的插槽开始(不知道板载的怎么算),按 eth0,eth1,eth2。。的顺序依次排列。
最好是在系统启动时修改接口名称,这样比较方便。
还有就是:IPTABLES 要多使用自定义链,在规则比较多的时候便于管理。
带宽控制方面:包括BFW在内(海蜘蛛就不必说了),带宽的设置很不灵活,更不方便。既然采用了WEB接面,就一定要方便用户操作,包括IPTABLES在内。
这是我在做自己的路由器时采用的方式和想法。
页:
[1]