Linux之iptables防火墙( 四 )

示例5:设置默认策略 -P未修改的状况下,默认策略为ACCEPT(允许) 。
注意:
将默认策略修改为DROP前,一定要检查清楚链内是否设置了允许tcp协议22端口进行连接的规则 。否则一旦修改为DROP,会导致ssh断连 。
[root@yuji ~]# iptables -P INPUT DROP//将默认策略修改为DROP复制代码

Linux之iptables防火墙

文章插图
 
3 匹配条件3.1 通用匹配可直接使用,不依赖于其他条件或扩展包括网络协议、IP地址、网络接口等条件 。
协议匹配
-p 协议名
地址匹配
-s 源地址、-d 目的地址。可以是IP、网段、域名、空(任何地址)
接口匹配
-i 入站网卡、-o 出站网卡
例:
iptables -A INPUT ! -p icmp -j ACCEPT #没有-t指定表,就是指默认表filter表 # !代表条件取反,不是icmp的都放通iptables -A INPUT -s 192.168.72.10 -j REJECT #拒绝从哪个主机发数据包过来(-s指定了源地址)iptables -I INPUT -i ens33 -s 192.168.80.0/24 -j DROP #在行首插入规则,丢弃该网段从ens33网卡进来的数据包复制代码示例1:
! 取反时需要注意 。
例如设置“不是icmp的都放通”,即放通的协议中不包括icmp,这条规则没有针对icmp 。那么icmp协议会向下查找匹配,如果匹配不到规则,那么就会取默认策略ACCEPT,则此时其他主机可以ping通本机 。
Linux之iptables防火墙

文章插图
 
使用其他主机ping本机,可以ping通 。
Linux之iptables防火墙

文章插图
 
示例2:
拒绝192.168.72.10发来的数据包 。
Linux之iptables防火墙

文章插图
 
使用192.168.72.10这台机器ping本机,ping不通 。REJECT拒绝后,会显示回应信息 。
Linux之iptables防火墙

文章插图
 
3.2 隐含匹配要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件 。
3.2.1 端口匹配端口匹配:--sport 源端口、--dport 目的端口 。
可以是个别端口或者端口范围 。
格式
含义
--sport 1000
匹配源端口是1000的数据包
--sport 1000:3000
匹配源端口是1000-3000的数据包
--sport 1000:
匹配源端口是1000及以上的数据包
--sport :3000
匹配源端口是3000及以下的数据包
注意: --sport 和 --dport 必须配合 -p <协议类型> 使用
Linux之iptables防火墙

文章插图
 
3.2.2 TCP标记匹配--tcp-flags TCP标记
#TCP三次握手时的第一次握手,放行SYN为1的报文,拒绝其他包 。iptables -I INPUT -P tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSHSYN-jREJECT ? #第二次握手放行SYN、ACK为1的报文,拒绝其他包 。iptables -I OUTPUT -P tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSHSYN,ACK-jREJECT复制代码3.2.3 ICMP类型匹配--icmp-type ICMP类型
ICMP类型可以是字符串、数字代码:
ICMP类型
含义
Echo-Request (代码为8)
表示请求
Echo- -Reply (代码为0)
表示回显
Dest ination-Unreachable (代码为3)
表示目标不可达
注: 其他可用的icmp协议类型,可以执行iptables -p icmp -h 查看帮助信息 。
--icmp-type 8//表示请求(ping),即其他主机向本机请求(ping本机) --icmp-type 0//表示回显(pong),即本机向其他主机发数据包(本机ping其他主机) --icmp-type 3//当本机ping不通其他主机时,提示目标不可达 。? 例子: #丢弃icmp的包,别人ping不通本机,本机也ping不通别人 iptables -A INPUT -p icmp -j DROP ? #丢弃icmp的请求,禁止其他主机ping本机,但本机可以ping其他主机 iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT? #当本机ping不通其它主机时提示目标不可达,此时其它主机需要配置关于icmp协议的控制类型为REJECT iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT复制代码示例:
丢弃icmp协议的请求,禁止其他主机ping本机,但本机可以ping其他主机 。
Linux之iptables防火墙

文章插图
 

Linux之iptables防火墙

文章插图
 
3.3 显示匹配要求以“-m扩展模块”的形式明确指出类型,包括多端口、mac地址、IP范围、数据包状态等条件


推荐阅读