如何用IPTABLES允许一系列IP?

这里是我的iptables,我怎样才能让我可以允许一系列的IP在ETH1(10.51.xx)

# Generated by iptables-save v1.4.4 on Thu Jul 8 13:00:14 2010 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :fail2ban-ssh - [0:0] -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT -A fail2ban-ssh -j RETURN COMMIT 

如果您只想在10.50.0.0(例如从10.50.10.20到10.50.10.80)范围内允许一定范围的IP地址,则可以使用以下命令:

 iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT 

如果你想允许整个范围,你可以使用这个:

 iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT 

请参阅iptables手册页和ServerFault上的此问题: 白名单允许使用iptables的IP(input/输出)

对于一个特定的端口说22:

iptables -A INPUT -p tcp -m iprange –src-range 10.50.10.20-10.50.10.80 –dport 22 -j ACCEPT

那么你看到你想要允许这些IP地址,但CIDR中的10.50.0.0/16转换为10.50.0.0/16 。 所以它会像127.0.0.0/8的loopback接口那样。

 iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-80 -j ACCEPT 

可能会出现以下错误:

 iptables: Applying firewall rules: xt_iprange: range 10.50.10.20-80 is reversed and will never match 

要解决这个问题,只需要把这个完整的ip改为这样:

 iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT 

参考: http : //blog.capitar.com/iptables-ip-range-reversed/