有人可以告诉我,如果我有不需要的规则?
我特别不确定是否
$IPT -t nat -P PREROUTING ACCEPT # is this required? $IPT -t nat -P INPUT ACCEPT # is this required? $IPT -t nat -P OUTPUT ACCEPT # is this required?
是需要的。?
IPT='/sbin/iptables' LAN_IP_NET="192.168.0.1/24" WAN_IP="xxxx" LAN_NET="192.168.245.0/24" CLIENT_NET1="192.168.245.128/25" # 192.168.245.128 - 192.168.245.25 CLIENT_NET2="192.168.245.64/26" # 192.168.245.64 - 192.168.245.12 CLIENT_NET3="192.168.245.32/27" # 192.168.245.32 - 192.168.245.63 CLIENT_NET4="192.168.245.16/28" # 192.168.245.16 - 192.168.245.31 CLIENT_NET5="192.168.245.8/29" # 192.168.245.8 - 192.168.245.15 LAN_NIC="eth1" WAN_NIC="eth0" # Flush everything $IPT -F $IPT -F -t nat $IPT -X $IPT -X -t nat # Enable packet forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Allow all outgoing $IPT -P OUTPUT ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Filter rules $IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow all traffic from LAN_NET on LAN_NIC $IPT -A INPUT -i $LAN_NIC -s $LAN_NET -j ACCEPT # Allow some services from the outside $IPT -A INPUT -i $WAN_NIC -p icmp --icmp-type echo-request -j ACCEPT $IPT -A INPUT -i $WAN_NIC -p tcp --dport ssh -j ACCEPT $IPT -A INPUT -i $WAN_NIC -p tcp --dport www -j ACCEPT $IPT -A INPUT -j REJECT # Masquerade 192.168.245.8 - 192.168.245.255 $IPT -t nat -P PREROUTING ACCEPT # is this required? $IPT -t nat -P INPUT ACCEPT # is this required? $IPT -t nat -P OUTPUT ACCEPT # is this required? $IPT -t nat -A POSTROUTING -s $CLIENT_NET1 -o $WAN_NIC -j MASQUERADE $IPT -t nat -A POSTROUTING -s $CLIENT_NET2 -o $WAN_NIC -j MASQUERADE $IPT -t nat -A POSTROUTING -s $CLIENT_NET3 -o $WAN_NIC -j MASQUERADE $IPT -t nat -A POSTROUTING -s $CLIENT_NET4 -o $WAN_NIC -j MASQUERADE $IPT -t nat -A POSTROUTING -s $CLIENT_NET5 -o $WAN_NIC -j MASQUERADE $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Forward 192.168.245.8 - 192.168.245.255. The first 7 IPs are reserved for failover etc $IPT -A FORWARD -i $LAN_NIC -o $WAN_NIC -s $CLIENT_NET1 -m state --state NEW -j ACCEPT $IPT -A FORWARD -i $LAN_NIC -o $WAN_NIC -s $CLIENT_NET2 -m state --state NEW -j ACCEPT $IPT -A FORWARD -i $LAN_NIC -o $WAN_NIC -s $CLIENT_NET3 -m state --state NEW -j ACCEPT $IPT -A FORWARD -i $LAN_NIC -o $WAN_NIC -s $CLIENT_NET4 -m state --state NEW -j ACCEPT $IPT -A FORWARD -i $LAN_NIC -o $WAN_NIC -s $CLIENT_NET5 -m state --state NEW -j ACCEPT $IPT -A FORWARD -j REJECT
策略规则与其他规则不同,所有内置链都有一个策略。 它们是链的隐含部分,指定链中没有规则与数据包匹配时该如何处理。 将政策设定为已知价值是一个好的做法。
您可以尝试删除规则,并在重新启动后查看默认策略是否为ACCEPT。 只要默认策略保持接受,命令是多余的。 但是,如果有人更改策略或默认策略更改,则防火墙脚本将不再执行您的要求。 即使看起来你不需要这些规则,也要遵守这些规则。
您的策略的最佳select是将其设置为任何您想要发生的不匹配的数据包。 对于默认链,DROP或REJECT可能是一个比ACCEPT更好的策略。 对于NAT链,ACCEPT往往是一个很好的策略。
-P规则是“策略”规则。 即:如果没有任何规则匹配,则使用默认策略。 在你的情况下,他们不会做任何事情,因为最后一个像是一个拒绝所有无论如何,你可以使用-P DROP和沟拒绝行,但我做我的防火墙的方式,因为如果你使用-P drop规则,然后使用-F远程刷新表格,您仍然拥有放置策略,并切断您的连接。