Linux之iptables防火墙( 三 )


-i
指定数据包进入本机的网络接口
-o
指定数据包离开本机做使用的网络接口
–sport
指定源端口号
–dport
指定目的端口号
2.4 规则配置示例示例1:查看规则 -nL [root@yuji ~]# iptables -L//查看filter表中所有规则 [root@yuji ~]# iptables -nL//以数字形式显示 ? [root@yuji ~]# iptables -nL -t nat//查看nat表ACCEPT [root@yuji ~]# iptables -nL --line-numbers//显示规则序号 ? [root@yuji ~]#iptables -t filter -F//清空 filter表内所有规则复制代码示例:
1、 iptables -L,列出表中所有链 。不指定表名则默认查看filter表 。

Linux之iptables防火墙

文章插图
 
2、 iptables -L -n,以数字形式显示输出结果 。-L -n 合在一起写时,必须n在前,要写成 -nL 。
Linux之iptables防火墙

文章插图
 
3、iptables -nL -t nat,查看nat表 。
Linux之iptables防火墙

文章插图
 
4、iptables -t filter -F,清空 filter表内所有规则 。
Linux之iptables防火墙

文章插图
 
示例2:添加规则 -A -I-A,在末尾追加规则 。
-I,在指定位置前插入规则 。如果不指定,则在首行插入 。
#在INPUT链末尾追加规则 [root@yuji ~]# iptables -t filter -A INPUT -p icmp -j REJECT [root@yuji ~]# iptables -nL? #在INPUT链第二行出入规则 [root@yuji ~]# iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT [root@yuji ~]# iptables -nL --line-numbers复制代码示例:
1、拒绝icmp协议的数据包,即不允许其他主机ping本机。REJECT
Linux之iptables防火墙

文章插图
 
使用其他的主机ping不通本机,reject拒绝后会回应一条消息 。
Linux之iptables防火墙

文章插图
 
2、丢弃icmp协议的数据包 。DROP 。
Linux之iptables防火墙

文章插图
 
使用其他的主机ping本机,drop丢弃数据包,不给出任何回应信息 。
Linux之iptables防火墙

文章插图
 
3、-I,在指定位置前插入 。如果不指定,则在首行插入 。
iptables -nL --line-numbers,可以查看每条规则的序号 。
Linux之iptables防火墙

文章插图
 
示例3:删除规则 -D1、按序号删除,比较准确 。
2、按内容删除,如果有2条相同内容,会删除序号小的那个 。
注意:
  • 删除规则前,先想清楚会不会导致ssh断连 。
  • 如果链的默认规则是DROP,在使用iptables -F之前一定要慎重,可能会导致自己断连,断连后只能去机房解决 。
#先查看链中的规则 [root@yuji ~]# iptables -nL --line-numbers//显示规则的序号 Chain INPUT (policy ACCEPT) numtargetprot opt sourcedestination 1DROPicmp --0.0.0.0/00.0.0.0/0 2DROPicmp --0.0.0.0/00.0.0.0/0 3ACCEPTtcp--0.0.0.0/00.0.0.0/0 ? Chain FORWARD (policy ACCEPT) numtargetprot opt sourcedestination ? Chain OUTPUT (policy ACCEPT) numtargetprot opt sourcedestination ? #按序号删除 [root@yuji ~]# iptables -D INPUT 2//删除INPUT链中的第2条规则 [root@yuji ~]# iptables -nL --line-numbers Chain INPUT (policy ACCEPT) numtargetprot opt sourcedestination 1DROPicmp --0.0.0.0/00.0.0.0/0 2ACCEPTtcp--0.0.0.0/00.0.0.0/0 ? Chain FORWARD (policy ACCEPT) numtargetprot opt sourcedestination ? Chain OUTPUT (policy ACCEPT) ? #按内容删除 [root@yuji ~]# iptables -D INPUT -p tcp -j ACCEPT//删除INPUT链中tcp协议ACCEPT的规则 [root@yuji ~]# iptables -nL --line-numbers Chain INPUT (policy ACCEPT) numtargetprot opt sourcedestination 1DROPicmp --0.0.0.0/00.0.0.0/0 ? Chain FORWARD (policy ACCEPT) numtargetprot opt sourcedestination ? Chain OUTPUT (policy ACCEPT) numtargetprot opt sourcedestination复制代码
Linux之iptables防火墙

文章插图
 

Linux之iptables防火墙

文章插图
 
示例4:修改规则1、-R 直接修改 。但一般不用这种形式 。
2、可以先添加一条新规则,之后再删除旧规则 。这样比较保险 。
#方法1:使用-R直接修改 [root@yuji ~]# iptables -A INPUT -p icmp -j DROP//原先设置的规则 [root@yuji ~]# iptables -R INPUT -p icmp -j ACCEPT//将DROP修改成ACCEPT ? #方法2:先-A添加一条规则,之后再-D删除旧规则 [root@yuji ~]# iptables -A INPUT -p icmp -j ACCEPT//添加一条新规则 [root@yuji ~]# iptables -D INPUT -p icmp -j DROP//删除旧规则复制代码


推荐阅读