使用前准备工作
-
关闭firewalld,firewalld和iptables使用会有冲突。
systemctl disable --now firewalld
-
删除iptables自带的原有规则,自带规则不一定符合现场环境。
systemctl disable --now iptables
使用iptables
简述
iptables命令格式
iptables [-t table] SUBCOMMAND chain [-m matchname [per-match-options]] -j targetname [per-target-options]
使用范例
一、查看
- -v:详细信息。
- -n:以数字形式显示地址和端口号。
- -L:列出指定链上的所有规则,本选项需要后置。
- -S:selected,以iptables-save命令格式显示链上规则。
- --lien-number:显示规则编号。
范例一:数字形式查看。
iptables -t filter -vnL --lien-number
Chain INPUT (policy ACCEPT 61 packets, 5108 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 192.168.10.13 0.0.0.0/0
范例二:iptables-save命令格式查看。
iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -s 192.168.10.13/32 -j REJECT --reject-with icmp-port-unreachable
二 、链管理类
- -j:targetname [per-target-options]。
- -N:new, 自定义一条新的规则链 。
- -E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除 。
- -X:delete,删除自定义的空的规则链 。
- -P:Policy,设置默认策略;对filter表中的链而言,其默认策略有:ACCEPT:接受, DROP:丢弃。
范例一:在nat表上添加一条新的链。
iptables -t nat -N chain_name
范例二:重命名这条链。
iptables -t nat -T chain_NAME CHAIN_NAME
范例三:删除这条链。
iptables -t nat -X CHAIN_NAME
三、规则管理类
-
-A:append,追加。
-
-I:insert, 插入,要指明插入至的规则编号,默认为第一条 -D:delete,删除。
-
指明规则序号。
-
指明规则本身 。
-
-
-R:replace,替换指定链上的指定规则编号 。
-
-F:flush,清空指定的规则链 。
-
-Z:zero,置零。iptables的每条规则都有两个计数器 。
-
匹配到的报文的个数。
-
匹配到的所有报文的大小之和。
-
范例一:追加添加。Filter表的INPUT链上以追加的方式添加规则。
# 将新添加的规则,放在表的最后进行追加。
iptables -t filter -A INPUT -s 192.168.1.10 -j DROP
范例二:插入添加。Filter表的INPUT链上以插入的方式添加规则。
# 将规则插入至INPUT链的第一行,可知原第一条规则变为现在的第二条,(默认情况下插入到第一行)。
iptables -t filter -I INPUT -s 192.168.1.10 -j ACCEPT
# 将规则插入至INPUT链的第三行,可知原第三条规则变为现在的第四条,前一、二条不变。
iptables -t filter -I INPUT 3 -S 192.168.1.10 -j DROP
范例三:替换。在Filter表的INPUT链上替换原有规则。
# 替换INPUT链上第二行的规则,使192.168.1.0/24这个网段上的地址都被拒绝访问。
iptables -t filter -R INPUT 2 -s 192.168.1.0/24 -j REJECT
范例四:删除。删除Filter表的INPUT链上的规则。
# 删除INPUT链第二行的规则,删除第几行的规则直接写上此行的编号即可。
# 注意:删除第二行规则后,原先第三行会变为第二行;随之改变的还有元第三行的编号,此编号会由原来的3变为2。
iptable -t filter -D INPUT 2
# 清除iptables上的所有规则。
iptables -F