iptables的规则顺序

查看:118
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆