iptables防火墙--------基本操作
查看filter表中的规则
$ iptables -t filter -L
使用-t选项,指定要操作的表。使用-L 选项,查看-t选项对应表的规则,-L 选项的意思是,列出规则。
ps :
-t filter可以不加,因为默认是会带-t filter
-v 选项可以查看更详细的信息
-n 选项表示不对IP地址进行名称反解,直接显示IP地址
--line:显示规则的序号
对应字段的含义:
pkts:对应规则匹配到的报文的个数。
bytes:对应匹配到的报文包的大小总和
target:规则对应的target,往往表示规则对应的“动作”,即规则匹配成功后需要采取的措施。
port:表示规则对应的协议,是否只针对某些协议应用此规则。
opt:表示规则对应的选项
in:表示数据包由那个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则
out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则
source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段
destination:表示规则对应的目标地址,可以是一个IP,也可以是一个网段。
增加规则
$ iptables -t filter -I INPUT -s 192.168.170.137 -j DROP
-t 表示要操作的表
-I 指明将“规则”插入至哪个链中,在链的首部插入
-s 指明“匹配条件”中的“源地址”,-s表示source
-j 指明当“匹配条件”被满足时,所对应的动作
# 此时查看,可发现DROP这个链的拒绝报文的pkts为12 $ iptables -nvL INPUT Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 12 1008 DROP all -- * * 192.168.170.137 0.0.0.0/0
此时再次添加一条接受的规则,看137是否可以ping通128机器
$ iptables -t filter -A INPUT -s 192.168.170.137 -j ACCEPT
-A 表示会在选择链的最后添加规则
然后此时依然ping不通,说明,在链中匹配规则是从上往下匹配,如果匹配到了,后面对相同的报文也不会进行处理。
删除规则
方法一:根据规则的编号去删除规则
方法二:根据具体的匹配条件与动作去删除规则
$ iptables --line -nvL INPUT
$ iptables -t filter -D INPUT 9
-D 表示删除指定链中的某条规则
$ iptables -t filter -D INPUT -s 192.168.170.137 -j DROP
删除某个表中某条链中所有规则的命令
$ iptables -t filter -F INPUT
-F 表示flush,即冲刷指定的链,如果不指定链名,则冲刷指定表中的所有规则
修改规则
-s 选项指定对应的源地址不可省略,即使我们指定了对应的编号,但是在-R选项修改某个规则时,必须指定规则对应的原本的匹配条件(如果有多个匹配条件,都需要指定),如果没有-s的话,修改完成之后source就会变成0.0.0.0/0
$ iptables -t filter -R INPUT 1 -s 192.168.170.137 -j ACCEPT
-R 指定修改的表 序号
有时,如果为了避免修改错误,可以先将这条规则删除,然后在同样的位置再插一条新规则
保存规则
CentOS6,使用service iptables save
命令即可保持规则,规则会被保存在/etc/sysconfig/iptables
CentOS7中
yum -y install iptables iptables-services
iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables