linux nat不同规则

linux nat不同规则
eth0 (192.168.1.0/24) --> wan
eth2 (192.168.10.0/24) --> lan0

我使用这些规则在我的 Linux 网关上启用 NAT:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

为什么我在一些在线指南中读到这样的规则?

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT

答案1

如果您使用这两行:

iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT

那么就安全性而言,这两个没有任何价值:

iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT

首先iptables -A FORWARD -s 192.168.10.0/24 -d 0/0 -j ACCEPT,这将使iptables来自192.168.10.0/24子网的数据包转发到0/0所有其他网络。后来你又明白了iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT,实际上这两条规则的含义是一样的。

仅当数据包源自或源时, Foriptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.10.0/24 -j ACCEPT才会iptables接受并转发任何发往 的数据包。稍后,您会遇到一些冲突的规则,该规则将转发任何​​旨在使第一个规则无用的数据包,因为任何发往 的数据包将与第一个规则不匹配,但无论如何都会转发该数据包。192.168.10.0/24ESTABLISHEDRELATEDiptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT192.168.10.0/24192.168.10.0/24

相关内容