|
|
|
|
| Iptables转发规则的怪问题,请高手指点,不胜感激! |
 Iptables转发规则的怪问题,请高手指点,不胜感激! - hngyw [ 2006-05-19 08:24 | 1,848 byte(s)]
 Re: Iptables转发规则的怪问题,请高手指点,不胜感激! - onfire [ 2006-07-03 12:06 | 210 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
请教大家一个奇怪的问题:
我用RH4(2.6的内核)做透明代理测试,电脑用两块网卡:
eth0:192.168.0.1 接内网
eth1:192.168.1.5 接外网
通过ADSL拔号上网
防火墙脚本为:
清除默认规则,定义默认策略:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
打开转发功能:
echo "1" > /proc/sys/net/ipv4/ip_forward
设置IP伪装:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
只允许192.168.0.168这台电脑上网:
iptables -I FORWARD -p tcp -s 192.168.0.168 -j ACCEPT
我在客户机(192.168.0.168)上将网关设置为192.168.0.1后却不能正常上网
如果我将FORWARD链默认策略改为ACCEPT,则可以访问Internet,访问语句为:
iptables -P FORWARD ACCEPT
iptables -I FORWARD -p tcp -s 192.168.0.168 -j ACCEPT
或者将
iptables -I FORWARD -p tcp -s 192.168.0.168 -j ACCEPT
中的源网段去掉,默认策略还是DROP,也可以正常上网,即将语句改为:
iptables -I FORWARD -p tcp -j ACCEPT
iptables -I FORWARD -p tcp -s 0/0 -j ACCEPT(这样也行)
所以一开始我怀疑是不是过来的数据包的源IP变了,不符合过滤规则,我将FORWARD默认策略改为ACCEPT,
再禁止192.168.0.168上网,语句为:
iptables -P FORWARD ACCEPT
iptables -I FORWARD -p tcp -s 192.168.0.168 -j DROP
却能正常阻止源IP为192.168.0.168的电脑访问Internet,这就说明源IP是正确并可以受到控制的,我就弄不明白在FORWARD链
一加上-s过滤规则,数据包就不能正常通过了呢?
|
|
|
----
性格决定命运
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
您的问题比较特别,我做了一个下午的实验,得出的结果与你相同。您两次修改FORWARD链的形式,也相当于设置默认策略为ACCEPT,我想问题的关键在于数据包到达FORWARD链前源地址是什么?正在查找相关的资料,如果您有结果请告知。
|
|
|
[Original]
[Print]
[Top]
|
|
|