Memphiss 发表于 2007-4-21 22:26:25

新入手一套防火墙软件,寻求linux高手支持!

首先,要会linux,其次,要懂得IPTABLES,再次,善于研究。

我会考虑吧此软件发送给你研究,但要和我分享研究成果。

现在,最想要的就是:

1、策略路由
2、IP绑定(现在貌似我已经搞定了)
3、安全
3、小包优先
5、本机安全
6、MAC地址锁定的相关破解(不破解也可以)

Memphiss 发表于 2007-4-21 22:26:46

以下是原作者网站的简介:


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:16

商业版本?

Memphiss 发表于 2007-4-21 23:21:48

原帖由 想得太美 于 2007-4-21 22:59 发表 http://bbs.routerclub.com/images/common/back.gif
商业版本?

是啊。
已经给你发消息,加我QQ。

Memphiss 发表于 2007-4-22 14:24:10

配置表应该怎样写?

Memphiss 发表于 2007-4-22 14:27:39

现在的状态:
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


还在试验阶段。。。。。。

Memphiss 发表于 2007-4-22 14:28:53

我现在仅仅作了“#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

的事情,后面还没有做。。。。。。

DreamCat 发表于 2007-4-23 00:18:20

这类软件做商业版本似乎用户不会很多吧?


网络上防火墙规则很多,你可以自己找找看。建议不要对用户提供常见的 LINUX SHELL的方式。

我自己已经做了一套包含多个非常有用的工具的系统。目前正在写类似传统路由器的命令行终端截面。:lol

DreamCat 发表于 2007-5-9 11:58:34


网关的接口命名规则为:从网关的背后看,离电源最近的为接口eth0,最远的为eth2,中间的为eth1。

这里说明一下,LINUX 中ethernet 接口是按中断顺序命名的,从距CPU最近的插槽开始(不知道板载的怎么算),按 eth0,eth1,eth2。。的顺序依次排列。
最好是在系统启动时修改接口名称,这样比较方便。

还有就是:IPTABLES 要多使用自定义链,在规则比较多的时候便于管理。

带宽控制方面:包括BFW在内(海蜘蛛就不必说了),带宽的设置很不灵活,更不方便。既然采用了WEB接面,就一定要方便用户操作,包括IPTABLES在内。

这是我在做自己的路由器时采用的方式和想法。
页: [1]
查看完整版本: 新入手一套防火墙软件,寻求linux高手支持!