请问这条规则啥意思?

小小磊
请问这条规则啥意思?

iptables -t nat -A PREROUTING -i eth0 -j ACCEPT

自己看了半天没懂

ssffzz1
没什么,只是允许从eth0进入nat的PREROUTING的包。

小小磊
谢谢楼上的

这条规则在网关上面,请问这个有什么作用么?

ssffzz1
就是允许包通过呗。
有什么用要看放到什么位置了,还要看默认的动作是什么了。

你自己参考置顶的教程吧!里面有答案。

qtdszws
这是一条很烂的规则,nat表要做nat,其它关的规则不要写到这里

小小磊
默认规则:
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING DROP
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT


iptables -A INPUT -i eth1 -j DROP

添加下面这2条后,本机就无法ping通了,也无法登陆(从eth0登陆)
#iptables -A INPUT -i eth0 -j ACCEPT
#iptables -A INPUT -i lo -j ACCEPT

添加这2条 则可以ping通也可以登陆
iptables -t nat -A PREROUTING -i eth0 -j ACCEPT
iptables -t nat -A PREROUTING -i lo -j ACCEP

就是不太明白为什么

[[i] 本帖最后由 小小磊 于 2008-2-18 09:43 编辑 [/i]]

ssffzz1
iptables -t nat -P PREROUTING DROP

都告诉你了置顶的教程有。

小小磊
不好意思,我知道教程里面有。但是看的不是很明白

ssffzz1
iptables -t nat -P PREROUTING DROP

你指定了nat表的PREROUTING链的默认规则是DROP,也就是说凡是在该链中不明确允许通过的都是拒绝的。
这样一来包在该链都被拒绝了,当然就不通了。
但是当你加上
iptables -t nat -A PREROUTING -i eth0 -j ACCEPT
iptables -t nat -A PREROUTING -i lo -j ACCEP
后就明确的有允许通过了相关包,当然就通了。

小小磊
[quote]原帖由 [i]ssffzz1[/i] 于 2008-2-18 14:18 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6513187&ptid=978431][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
iptables -t nat -P PREROUTING DROP

你指定了nat表的PREROUTING链的默认规则是DROP,也就是说凡是在该链中不明确允许通过的都是拒绝的。
这样一来包在该链都被拒绝了,当然就不通了。
但是当你加上
ipta ... [/quote]


谢谢!~

platinum
[quote]原帖由 [i]qtdszws[/i] 于 2008-2-18 09:13 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6513070&ptid=978431][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
这是一条很烂的规则,nat表要做nat,其它关的规则不要写到这里 [/quote]
个人认为,这样做其实是有意义的
比如网络中做了透明代理的话
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 3128
那么,如果想对特定网站不做透明代理而直接 NAT,则可以添加
iptables -t nat -I PREROUTING -i eth0 -d x.x.x.x -p tcp --dport 80 -j ACCEPT
这样,可以让符合这个条件的数据包直接逃离 nat 表的 PREROUTING 链而不被后面的规则转向

ssffzz1
其实不应该说那个规则没意义,那个规则是好的。

规则要放到实际的环境中去才能起作用。不同的环境不同的规则都有存在的价值。反之,一定的场合,繁杂啰嗦的重复的规则毫无疑义。

vermouth
prerouting 是基于目的的网络地址转换
主要应用于外网访问内网
规则 iptables -t nat -P PREROUTING DROP 定义目的nat默认拒绝
当你加上 iptables -t nat -A PREROUTING -i eth0 -j ACCEPT 后
自然允许了从eth0进入的 nat 包,使登陆成功