如何使用IPTABLES允许一系列IP?


29

这是我的iptables,我该如何做,以便可以在ETH1(10.51.xx)上允许一定范围的ip。

# 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

Answers:


39

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

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(输入/输出)


我在哪里放这条线?
Mike Curry 2010年

这些是您将从命令行运行的命令:[root @ host〜]#iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT
runlevelsix 2010年

1
使用“ 10.50.10.20-10.50.10.80”,“-80”可能无法满足您的要求
basic6 2015年

@runlevelsix如果我想允许一个IP范围如10.0.0.0至10.255.255.255,我会使用10.0.0.0/24吗?
RoboBear

@MikeCurry这是在终端上指定在命令行上运行的内容。或者,您可以通过删除“ iptables”并从该行中删除以下空格,将此规则添加到/etc/iptables/rulesets.d中的iptables规则文件中(如果使用的是Debian Linux):-A INPUT -i eth1- m iprange --src范围10.50.10.20-10.50.10.80 -j接受。
RoboBear


1

好吧,您确实看到了要允许这些IP的内容,但CIDR中的10.51.xx转换为10.50.0.0/16。因此,它将类似于具有回送接口的行127.0.0.0/8


1
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/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.