QUOTE:原帖由 hhxxttxs 于 2006-9-21 21:25 发表
既然nat表的prerouting在filter表的input之前,为什么规则还总在input里设?
在prerouting设置不是更好吗?
若是你要过滤的封包是连线到本机,那本来就在 INPUT chain 过滤即可,在 PREROUTING 是没有必要。
而若你是 router 主机,你要限制是连线到本机的封包,而不是通过本机的封包时,正确方式当然在 INPUT chain 配置。而若是你在 PREROUTING 限制的话,那你得考虑更多条件,这样才可以禁止存取本机但是允许通过该机器。
比方用 INPUT chains 设定像是:
iptables -A INPUT -s 1.2.3.4 -j DROP
复制代码
而你在 PREROUTING chain 则需要这样设定:
iptables -t nat -A PREROUTING -s 1.2.3.4 -d my_server_ip -j DROP
复制代码
你不可以用下面该方式,因为都会阻挡了。
iptables -t nat -A PREROUTING -s 1.2.3.4 -j DROP
复制代码
所以可以简单于 INPUT chain 限制,何必把配置复杂化 ? 另外当 router 的机器主要是允许快速封包通过,你只是要禁止存取本机的需求却在 PREROUTING 设定,这无疑是根本让效率更糟糕。
再者,一般实际上 PREROUTING 常用于是搭配 nat (DNAT)设定议题,阻挡的存取配置需求比较少。
QUOTE:如ip欺骗,从外网到达的欺骗包由nat到了dmz区或者lan区了,input设的再好也没用啊?
既然你知道通过主机的封包不会走到 INPUT chain,那你在 INPUT chain 设定有啥意义 ?
再者这个问题与上面的问题,似乎也完全没有关系不是呼?
==