iptables的规则顺序
问题描述
读到一个博客
http://blog.csdn.net/wangmj51...
iptables 限制ip访问
通过iptables限制9889端口的访问(只允许192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止访问
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
注意命令的顺序不能反了
感觉作者表达错误了吧,因该是
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -p tcp --dport 9889 -j DROP
我对了,还是播客作者对了?
之前看错了,没注意到命令里用的是 -I
, 我以为是: iptables -A
INPUT -p tcp --dport 9889 -j DROP
他这里-I
后面没有跟数字,所以是插入第一行的.
按照博客里的命令最终iptables规则列表会是:
INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
INPUT -p tcp --dport 9889 -j DROP
你这里这样写最终会是:
INPUT -p tcp --dport 9889 -j DROP
INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
匹配到drop
就被挡住了..
如果按照你这个顺序来的话你要把-I
换成-A
-A
是追加到末尾
这篇关于iptables的规则顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!