iptables 语法概述
iptables -t 要操作的表
表类型如下:
filter:用于过滤
nat:用于地址转换
操作命令(-A -I -D -R -P -F);查看命令(-[vnx]L)
-A:APPEND,追加一条规则(作为最后一条规则)匹配所有访问本机IP的数据包,匹配到的丢弃。
例如:iptables -t filter -A INPUT -j DROP
在filter表的INPUT链里追加规则,匹配所有访问本机IP的数据包,匹配到的丢弃,规则放到最后。
-I:INSERT,插入一条规则
例如:iptables -I INPUT 3 -j DROP
在filter表的INPUT链里插入一条规则,插入成第三条规则
注意点:1、-I 链名 [规则号码],如果不写规则号码,则默认是1
2、确保规则号码≤已有的规则数+1,否则报错
-D:DELETE,删除一条规则
例如:iptables -D INPUT 3 删除filter表INPUT链中的第三条规则
iptables -D INPUT -s 192.168.0.2 -j DROP 删除INPUT链中内容为"-s 192... -j DROP"的规则
注意点:1、若规则列表中有多余相同的规则时,按内容匹配只删除序号最小的一条
2、按号码匹配删除时,确保规则号码≤已有规则数,否则报错
3、按内容匹配删除时,确保规则存在,否则报错
-R:REPLACE,替换一条规则
例如:iptables -R INPUT 3 -j ACCEPT 将原来编号为3的规则内容替换为"-j ACCEPT"
注意点:规则号码≤已有的规则数
-P:POLICY,设置某个链的默认规则,当数据包不被任何规则匹配,按默认规则处理。唯一一个动作前不用加-j.
-F:FLUSH,清空规则
注意点:1、-F仅仅是清空链中的规则,并不影响-P 设置的默认规则
2、-P设置了DROP后,使用-F一定要小心
3、如果不写链名,默认清空某表里所有链里的所有规则
-L:LIST,列出规则
v:显示详细信息,包括没搞规则的匹配包数量和匹配字节数
x:在v的基础上,禁止自动单位换算
n:只显示IP地址和端口号码,不显示域名和服务名称
要操作的链
filter表的链
INPUT:匹配目的IP是本机的数据包
FORWARD:匹配穿过本机的数据包
nat表的链
PREROUTING:
POSTROUTING:
规则号码
1
2
3...
匹配条件
流入、流出接口(-i、-o) 按网络接口匹配 -i、-o eth0
来源、目的地址(-s、-d) -s ip net domain ; -d ip net domain
协议类型 (-p) tcp udp icmp
来源、目的端口(--sport、--dport) :3000(3000以下)
注意点:1、--sport、--dport必须联合-p使用,必须指明协议类型
2、条件写的越多,匹配越细致,匹配范围越小
-j 匹配到以后的动作
ACCEPT
DROP
SNAT
DNAT
MASQUERADE
此外还有附加模块
state 按包状态匹配
mac 匹配某个MAC地址
limit 用一定速率去匹配数据包
multiport 一次性匹配多个端口,可以区分源端口,目的端口或不指定端口,必须与-p参数一起使用
阅读(2285) | 评论(0) | 转发(0) |