防火墙iptables如何做匹配
iptables如何做匹配
通用匹配:iptables内置功能模块就可以实现的匹配方式
扩展匹配:需要依赖额外的模块才能实现匹配
一.通用匹配
-s:指定源ip
-d:指定目标ip
-i:指定进入数据包所经过网卡名称
-o:指定发出数据包所经过网卡名称
案例:允许10.220.5.254所发送过来的数据包
# iptables -t filter -A INPUT -s 10.220.5.254 -j ACCEPT
案例:禁止10.220.5.254所发送过来的任意数据包
# iptables -t filter -A INPUT -s 10.220.5.254 -j DROP
案例:禁止当前主机给10.220.5.3发送数据包
# iptables -A OUTPUT -d 10.220.5.3 -j DROP
案例:允许从eth0进入的数据包,且数据包的源ip 是10.220.5.3 目标ip是10.220.5.191
# iptables -A INPUT -s 10.220.5.3 -d 10.220.5.191 -i eth0 -j ACCEPT
二.扩展匹配:在匹配的时候需要用到额外的功能模块
隐式扩展:不需要手动指定调用的模块,系统会自动加载模块
显式扩展:必须手动指定模块名称才可以
1.隐式匹配
-p 协议
-p tcp
-p udp
-p icmp
1)对于icmp协议的隐式匹配
扩展名称:
icmp
格式:
-p icmp --icmp-type
ping的数据包协议是icmp协议
type
0:应答包
8:请求包
案例:单向ping(点到点)
可以从10.220.5.1 ping 10.220.5.182
禁止从10.220.5.182 ping 10.220.5.1
实现:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp --icmp-type 8 -s 10.220.5.1 -d 10.220.5.182 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s 10.220.5.182 -d 10.220.5.1 -j ACCEPT
案例:单向ping(一对多)
可以从10.220.5.1 ping 其他主机
禁止其他主机ping 10.220.5.1
实现
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp --icmp-type 8 -s 10.220.5.1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -d 10.220.5.1 -j ACCEPT
基本思路:
禁止所有、允许个别
允许所有、禁止个别
2)对于tcp协议的隐式扩展
扩展名称
tcp
用法:
-p tcp 选项
选项:
–sport:源端口
–dport:目标端口
–tcp-flags list1 list2:根据tcp包中的标志位进行匹配
–syn:等同[–tcp-flags