4.防火墙--匹配数据包(iptables)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SouthWind0/article/details/81349856

4.防火墙--匹配数据包(iptables)

4.1通用条件匹配

可直接使用,不依赖于其他的条件或扩展模块,包括网络协议、IP地址、网络接口等匹配方式。

(1)协议匹配

使用“-p 协议名”的形式,协议名可使用在“/etc/protocols”文件中定义的名称。常用的协议包括tcp、udp、icmp等。

(2)地址匹配

使用“-s 源地址”、“-d 目标地址”的形式,地址可以是单个IP地址、网络地址(带掩码长度)。

(3)接口匹配

使用“-i 网络接口名”、“-o 网络接口名”的形式,分别对应接收、发送数据包的网络接口。

(4)端口匹配

使用“--sport 源端口”、“--dport 目标端口”的形式 ,采用“端口1:端口2”的形式可以指定一个范围的端口。

例:使特定IP可以访问此服务器上的网站。

命令:netstat -anpt | grep httpd  #查看httpd的端口

iptables -R INPUT 1 -p tcp -s 192.168.0.100 --dport 80 -j ACCEPT

4.2隐含条件匹配

一般需要以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等匹配方式。

(1)ICMP类型匹配

使用“--icmp-type ICMP类型”的形式,ICMP类型可以使用字符串或对应的数值,如:Echo-Reply(0)、Echo-Request(8)。

命令:

iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP

iptables -I INPUT -p icmp --icmp-type Echo-Request -j ACCEPT

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

(2)TCP标记匹配

使用“--tcp-flags  检查范围  被设置的标记”的形式,如“--tcp-flags  SYN,RST,ACK  SYN”表示检查SYN、RST、ACK这3个标记,只有SYN为1时满足条件。

4.3显式条件匹配

需要使用“-m 扩展模块”的形式明确指定匹配方式,包括多端口、MAC地址、IP地址范围、数据包状态等匹配方式。

(1)MAC地址匹配

使用“-m mac”结合“--mac-source MAC地址”的形式。

(2)多端口匹配

使用“-m multiport”结合“--sports 源端口列表”或者“--dports 目标端口列表”的形式。多个端口之间使用逗号“,”分隔,连续的端口也可以使用冒号“:”分隔。

(3)IP地址范围匹配

使用“-m iprange”结合“--src-range 源IP范围”或者“--dst-range 目标IP范围” 的形式。以“-”符号连接起始IP地址、结束IP地址

命令:

iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP

iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT

iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP

(4)数据包状态匹配

使用“-m state”结合“--state 状态类型”的形式,同时表示多种状态时以逗号“,”分隔。常见的数据包状态包括:NEW、ESTABLISHED、RELATED、INVALID。

 

猜你喜欢

转载自blog.csdn.net/SouthWind0/article/details/81349856