LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 735|回复: 1

关于非网关型防火墙,请大家帮忙诊断一下

[复制链接]
发表于 2004-7-25 19:03:28 | 显示全部楼层 |阅读模式
事情是这样的:公司的一批机器转到了新托管的机房,本希望把一台rh9+iptable的双网卡服务器设定成

网关,但机房的网管说这么不允许,分配给我们网段的网关ip(210.51.109.1)必须给路由器,然后他给我支招,说可以给我在机柜的交换机上划vlan,只让交换机的eth1口和路由器在一个vlan里(这是网管的原话),其余口都划在另外一个vlan上,然后把rh9服务器的两个网卡分别接在两个不同vlan口上就好了。没办法,我只好照做,首先把rh9的eth1口接在交换机的eth1口上,分配ip为210.51.109.3,网关指向210.51.109.1(即机房路由器),把eth0接在于其他机器同一个vlan的某个交换机口上,分配ip为210.51.109.2,网关指向210.51.109.3(即rh9的eth1口),配完后试了一下,咦?只能ping通网关和外面公网的机器,内部的其他机器都ping不到,嗯,看看路由:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
210.51.109.0    *               255.255.255.224 U     0      0        0 eth1
210.51.109.0    *               255.255.255.224 U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         211.157.109.1   0.0.0.0         UG    0      0        0 eth1

哦,原来默认所有数据包都是从eth1口送出的,于是在命令行和rc.local里添加了两条路由:
route add -net 210.51.109.0 netmask 255.255.255.224 eth0
route add -host 210.51.109.1 eth1

现在看一下路由表:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
210.51.109.1    *               255.255.255.255 UH    0      0        0 eth1
210.51.109.0    *               255.255.255.224 U     0      0        0 eth0
210.51.109.0    *               255.255.255.224 U     0      0        0 eth1
210.51.109.0    *               255.255.255.224 U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         210.51.109.1    0.0.0.0         UG    0      0        0 eth1

然后ping网关、新浪,ping自己的内部机器,都通了,看来没问题了,接着就开始写iptables的shell,

节选如下:

#!/bin/sh
#
# 设定 iptables 指令路径
IPTABLES="/sbin/iptables"
#
# 加载会用到的模块
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
#
# 2.2 Non-Required modules
# 其余未使用之模块
#/sbin/modprobe ipt_owner
#/sbin/modprobe ipt_REJECT
#/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ip_conntrack_irc
#/sbin/modprobe ip_nat_irc
#
# 启动 Forward 接口
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# 4.1.1 Set policies
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#
# 4.1.4 INPUT chain(过滤要到达防火墙的封包)
#
# 从 LAN 进入防火墙主机的全部 unicast 和 broadcast 封包,通通放行;
$IPTABLES -A INPUT -p ALL -i eth0  -j ACCEPT
$IPTABLES -A INPUT -p ALL -i eth0  -d 210.51.109.0/27 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i eth0 -d $LAN_BROADCAST_ADDRESS -j ACCEPT
#
# 从 WAN 进入防火墙主机的所有封包,检查是否为响应封包,若是则予以放行
$IPTABLES -A INPUT -p ALL -d 210.51.109.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p ALL -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
#
#
# 4.1.5 FORWARD chain(过滤要通过防火墙的封包)
#
#
# 从 LAN 要到 WAN 的封包通通放行
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
#
# 从 WAN 要到 LAN 的封包仅放行回应封包
$IPTABLES -A FORWARD -i eth1 -o eht0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# 允许来自 WAN 的 Ping 封包,发送到所有的服务器
$IPTABLES -A FORWARD -p ICMP -i eth1 -o eth0  -j ACCEPT
#
#来自公司的pcanywhere连接请求要允许转发
$IPTABLES -A FORWARD -p tcp -i eth1 -s xxx.xxx.xxx.xxx --dport 5631 -o eth0 -j allowed
$IPTABLES -A FORWARD -p udp -i eth1 -s xxx.xxx.xxx.xxx  --dport 5632 -o eth0 -j allowed
#
#
# 4.1.6 OUTPUT chain
#
#
# 从防火墙网卡送出的所有封包,通通放行
#$IPTABLES -A OUTPUT -p ALL -s 210.51.109.2 -j ACCEPT
#$IPTABLES -A OUTPUT -p ALL -s 210.51.109.3 -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o eth0 -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o eth1 -j ACCEPT

写完后执行,没有报错,把内部其他所有机器的ip都设置好(全部采用公网ip,所以iptables里没有涉

及到nat转换),网关都指向210.51.109.2(即rh9服务器的eth0口,同一vlan中),然后在内部机器上试着ping 210.51.109.2,通了,ping 210.51.109.3,也通了,ping 210.51.109.1,居然不通?!ping 外网的其他机器,也不通,从公司用pcanywhere连过来,也连不上内网的机器,以为rh9防火墙网络出了问题,登上防火墙去看,ping外部、ping网关(210.51.109.1),ping内部机器还是一样通,看来是防火墙转发的问题,可是……我把上面的shell翻来复去看了几遍,就是看不出问题在哪儿,汗……只好发到这儿来,寻求高人的帮助,在这里拜谢各位了

东西写得比较匆忙,如果有哪些情况没有表述清楚,各位大人尽管问,我再详细解释
 楼主| 发表于 2004-7-26 09:24:41 | 显示全部楼层
没有哪位兄台这么做过么防火墙么??郁闷……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表