:iptables命令使用方法
£ iptables [-t 要操作的表]
<操作命令>
[要操作的链]
[规则号码]
[匹配条件]
[-j 匹配到以后的动作]
£ 操作命令(-A、-I、-D、-P、-F)
£ 查看命令(-[vnx]L)
-A <链名> APPEND,追加一条规则(放到最后)
例如:
iptables -t filter -A INPUT-j DROP #拒绝所有人访问服务器
在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则)
匹配所有访问本机 IP 的数据包,匹配到的丢弃
-I <链名> [规则号码] INSERT,插入一条规则
例如:
iptables -I INPUT -j DROP
在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条)
iptables -I INPUT 3 -j DROP
在 filter 表的 INPUT 链里插入一条规则(插入成第 3 条)
注意: 1、-t filter 可不写,不写则自动默认是 filter 表
2、-I 链名 [规则号码],如果不写规则号码,则默认是 1
3、确保规则号码 ≤ (已有规则数 + 1),否则报错
-R num:Replays替换/修改第几条规则
格式:iptables –t filter -R INPUT 3 …………修改filter的INPUT链第三条规则
-D <链名> <规则号码 | 具体规则内容> DELETE,删除一条规则
例如:
[root@xxs ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere
iptables -D INPUT1(按号码匹配)
删除 filter 表 INPUT 链中的第1条规则(不管它的内容是什么)
[root@xxs ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
iptables -D INPUT-s 192.168.0.1 -j DROP(按内容匹配)
删除 filter 表 INPUT 链中内容为“-s 192.168.0.1 -j DROP”的规则
(不管其位置在哪里)
注意:
1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条
2、按号码匹配删除时,确保规则号码 ≤ 已有规则数,否则报错
3、按内容匹配删除时,确保规则存在,否则报错
-P <链名> <动作> POLICY,设置某个链的默认规则
例如:
[root@xxs ~]# iptables -L #查看默认规则是ACCEPT [əkˈsept]
Chain INPUT (policy ACCEPT)
target prot opt source destination
iptables -P INPUTDROP
设置 filter 表 INPUT 链的默认规则是 DROP
-Z 将封包计数器归零
iptables -Z INPUT
-L [链名] LIST,列出规则
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示 IP 地址和端口号码,不显示域名和服务名称
--line-number 可以查看到规则号
-i <匹配数据进入的网络接口> #此参数主要应用于nat表,例如目标地址转换
例如:
-i eth0
匹配是否从网络接口 eth0 进来
-i ppp0
匹配是否从网络接口 ppp0 进来
-o 匹配数据流出的网络接口
-s <匹配来源地址>
可以是 IP、 网段、域名,也可空(任何地址)
-d <匹配目的地址>
可以是 IP、 网段、域名,也可以空
-p <匹配协议类型>
可以是 TCP、UDP、ICMP 等,也可为空
--dport <匹配目的端口>
可以是个别端口,可以是端口范围
-j ACCEPT
通过,允许数据包通过本链而不拦截它
例如:
iptables -A INPUT -j ACCEPT
允许所有访问本机 IP 的数据包通过
-j DROP
丢弃,阻止数据包通过本链而丢弃它
例如:
iptables -A FORWARD -s192.168.80.39 -j DROP
阻止来源地址为 192.168.80.39 的数据包通过本机
-j SNAT --to IP[-IP][:端口-端口](nat 表的 POSTROUTING 链)
源地址转换,SNAT 支持转换为单 IP,也支持转换到 IP 地址池(一组连续的 IP 地址)