Linux防火墙之iptables(下)

承接上文,上文介绍了iptables的工作原理,四表五链,以及基本规则的增删改查。本文为上文的拓展,继续延申iptables规则设置的匹配方式。以及如何备份,还原iptables设置,还有修改iptables的初始化设置

内容预知

 1.通用匹配

1.1 协议匹配 

1.2 地址匹配 

1.3 接口匹配

 2.隐含匹配

 2.1 端口匹配

2.2 TCP标志位的匹配 

 2.3 ICMP的类型匹配

 2.3.1  请求规则设置

 2.3.2  回显匹配

2.3.3 显示目的不可达匹配 

 3.显示匹配

3.1  多端口匹配

3.2 IP范围匹配

3.3 MAC匹配

3.4 状态匹配

 4. 备份与还原iptables规则设置

 4.1   备份iptables设置

4.2  一键导出,设置为当前防火墙设置 

4.3 修改iptables的默认设置 


 

 1.通用匹配

 直接指定目的网段,IP地址,出入站网卡,从而直接对该类主机进行权限设置操作

 

 通用的匹配方式一般为三种:

 

协议匹配 -p 协议名
地址匹配 -s 源地址、-d 目的地址 。可以是IP、网段、域名、空(任何地址
接口匹配 -i 入站网卡、-o 出站网卡

1.1 协议匹配 

 

上文中运用的实例基本都是协议匹配完成,协议匹配中还存在一个取反匹配 

[root@localhost ~]#iptables -A  INPUT   ! -p icmp -j ACCEPT
[root@localhost ~]#iptables -nL

Linux防火墙之iptables(下)_第1张图片

测试结果:


Linux防火墙之iptables(下)_第2张图片 

 

1.2 地址匹配 

 直接对IP地址,源地址,目的地址或则网段中的主机进行权限操作

[root@localhost ~]#iptables -A INPUT -s 192.168.73.110 -j DROP
[root@localhost ~]#iptables -nL

Linux防火墙之iptables(下)_第3张图片 

 测试结果:

Linux防火墙之iptables(下)_第4张图片

 

 

1.3 接口匹配

可以认为是对地址匹配的进一步设置,具体化到防火墙主机的网卡设置 。

 

[root@localhost ~]#iptables -A INPUT  -i ens33  -s 192.168.73.0/24  -j DROP

 

Linux防火墙之iptables(下)_第5张图片 

 2.隐含匹配

 要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件。

 

 2.1 端口匹配

 

--sport 源端口
--dport 目的端口

 

对于端口的指定可以为单一,也可以为一个范围

--sport 100    指定的就是匹配源端口100

--sport  100:200  就是指定100-200这个范围

--sport  100:  就是指定100及其100以上的端口

--sport  200:  就是指定200及其200以下的源端口 

 

 

[root@localhost ~]#iptables -A INPUT  -p tcp   --dport 20:21 -j REJECT

 Linux防火墙之iptables(下)_第6张图片

 

2.2 TCP标志位的匹配 

 

这里的防火墙规则运用到了TCP的三次握手规则,我在之前的博客中有详细记录三次握手: 

 一次性学会传输层协议相关内容(站在外面干啥呢?点进来看看啊)_站在这别动,我去给你买橘子的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/qq_62462797/article/details/125764066?spm=1001.2014.3001.5501

 --tcp-flags   TCP    标记

 

[root@localhost ~]# iptables -I INPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT

 

 Linux防火墙之iptables(下)_第7张图片

 

 2.3 ICMP的类型匹配

 

 ICMP类型可以是字符串、数字代码:

ICMP类型 含义
Echo-Request (代码为8) 表示请求
Echo- -Reply (代码为0) 表示回显
Dest ination-Unreachable (代码为3) 表示目标不可达

 --icmp-type ICMP类型

 2.3.1  请求规则设置

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 8 -j REJECT

Linux防火墙之iptables(下)_第8张图片 

其他主机ping本机测试:

 Linux防火墙之iptables(下)_第9张图片

 

 2.3.2  回显匹配

 

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 0 -j REJECT

Linux防火墙之iptables(下)_第10张图片

其他主机ping本机测试:

 Linux防火墙之iptables(下)_第11张图片

 

如果设置到出站数据包处理链(OUTPUT上),就是双方无法进行平命令,且没有信息的回显 

 

 

2.3.3 显示目的不可达匹配 

 

[root@localhost ~]# iptables -A INPUT -p icmp   --icmp-type 3     -j ACCEPT

 

Linux防火墙之iptables(下)_第12张图片 

 3.显示匹配

 要求以“-m扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

 

3.1  多端口匹配

 

  • -m multiport --sport 源端口列表
  • -m multiport --dport 目的端口列表
[root@localhost ~]#iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
[root@localhost ~]#iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

Linux防火墙之iptables(下)_第13张图片

 

 

3.2 IP范围匹配

 

  • -m iprange --src-range 源IP范围
  • -m iprange --dst-range 目的IP范围
[root@localhost ~]# iptables -A FORWARD  -p udp -m iprange --src-range 192.168.73.150-192.168.73.200 -j DROP

Linux防火墙之iptables(下)_第14张图片 

 

3.3 MAC匹配

 

该方式范围过于有限,且操作不方便,所以并不受行内推崇使用 

  -m mac -- -mac- source MAC地址

iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
 #禁止来自某MAC地址的数据包通过本机转发

 

3.4 状态匹配

 

格式:

-m state --state连接状态

状态 含义
NEW 主机连接目标主机,在目标主机上看到的第一个想要连接的包
ESTABLISHED 主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态
RELATED 主机已与目标主机进行通信,目标主机发起新的链接方式,一般与ESTABLISHED配合使用
INVALID 无效的封包,例如数据破损的封包状态

 

[root@localhost ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
[root@localhost ~]#iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
[root@localhost ~]#iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP

 

Linux防火墙之iptables(下)_第15张图片 

 最后一步设置为白名单:代表只有通过层层筛选最终能够建立联系的主机,才能够与本机进行所有端口的连接使用

 

 4. 备份与还原iptables规则设置

 我们对iptables命令行中的设置,都是临时设置,只要遇到服务器关机,或者服务重启时,所有的设置都会清空且还原为原本的设置。为此,我们可以对已经测试完毕符合我们需求的防火墙设置进行备份,在必要时,可以一键还原

 

 4.1   备份iptables设置

 

格式: iptables-save >/指定的文件 

[root@localhost ~]#iptables-save >/opt/iptables.bak

Linux防火墙之iptables(下)_第16张图片

 

4.2  一键导出,设置为当前防火墙设置 

 

[root@localhost ~]#iptables-restore 

 

Linux防火墙之iptables(下)_第17张图片 

4.3 修改iptables的默认设置 

 iptables的默认配置文件存在于    /etc/sysconfig/iptables

 Linux防火墙之iptables(下)_第18张图片

 

 若想永久修改只需要将备份的iptables文件重定向输入到默认配置文件(覆盖)

 

cat /opt/iptables.bak >/etc/sysconfig/iptables

 

或则将当前的设置修改为默认配置:

 

iptables-save >/etc/sysconfig/iptables

 注意:无论时什么要修改方式,谨记修改重要配置先备份的原则,修改iptables默认设置前先进行备份

 

 

你可能感兴趣的:(Linux安全运维,linux中软件安装,linux,服务器,运维,云计算)