格式:
iptables [-t 表名] [命令选项] [链名] [条件匹配] [-j 目标动作或跳转]
表名、链名用于指定iptables命令所操作的表和链
命令选项用于指定管理iptables规则的方式,比如:插入、增加、删除、查看等
条件匹配用于指定对符合什么样条件的数据包进行处理
目标动作或跳转用于指定数据包的处理方式,比如允许通过、拒绝、丢弃、跳转给其它链处理
关于表,我们常用的就1个:
filter
关于命令,常用的就3个:
-A:追加(append),在当前链的最后新增一个规则
-D:删除(delete),可指定规则内容或者规则序号
-L:列表(list),查看现有规则列表
关于链,常用的主要就只有1个:
INPUT
关于动作,常用的也就3个:
ACCEPT:接受
DROP:丢弃,发送方不会得到响应
REJECT:拒绝,明确告知发送方被拒绝
关于匹配条件就比较复杂了,常用的有以下这些:
-s 匹配源ip
-d 匹配目标ip
-p 匹配协议,通常有3种:tcp/udp/icmp
(当-p tcp或者-p udp时,有拓展条件:--dport,匹配目标端口,可以单个或是连续的端口,如--dport 80或者--dport 80-82)
还有一些操作选项:
-n 以数字展示ip和端口
--line-number 附带规则序号(可用于删除)
至此,常用iptables命令可归纳为以下这些:
查看每个表和链规则附带序号
iptables -L -n --line-number
删除INPUT链中第3条规则
iptables -D INPUT 3
在INPUT链中加入规则,允许172.23.2.241访问当前机器的8080端口
iptables -A INPUT -p tcp --dport 8080 -s 172.23.2.241 -j ACCEPT
在INPUT链中加入规则,丢弃所有ip访问当前机器8080端口的数据包(拒绝所有ip访问当前机器的8080端口),当然这里DROP改成REJECT也是可以的
iptables -A INPUT -p tcp --dport 8080 -j DROP
最后,一定要注意,iptables匹配规则是有顺序的,所以规则的排序至关重要
这里是sai,祝你生活愉快