Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)

防火墙

  • 为了保障数据的安全性,可以在外网和内网之间创建防火墙。常用的防火墙管理工具有:iptables、firewall-cmd、firewall-config、TCP Wrappers
  • 防火墙的主要功能是依据规则对穿越防火墙自身的流量进行过滤,这样就能保证只有合法的流量在企业内网和外部网络之间进行流动了。
  • RHEL7之前的版本使用iptables服务,从RHEL7开始换成了firewalld服务,而iptables服务在RHEL7的部分版本也可以用,如RHEL7.0两者都可用。
  • iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理
  • firewalld服务会把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理
  • 防火墙过滤内容:源地址目的地址端口号协议应用等信息。
  • 以上的4种防火墙管理工具,最好不用同时用,精通一种工具就好,但是要明白防火墙的真正含义。

防火墙管理工具

iptables(不建议使用,有bug,在RHEL7.2之后会撤掉)

iptables服务把用于过滤流量的策略称之为规则,多条规则可以组成一个规则链 ,而规则链根据数据包处理位置的不同分成5类:
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第1张图片
动作分为:
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第2张图片
iptables命令解析:
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第3张图片
设置原则:
1、默认允许ACCEPT,设置何时拒绝REJECT
2、默认拒绝DROP,设置何时允许ACCEPT

实验及其验证

1、查看并清空规则链

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第4张图片
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第5张图片
可以看到,所有的规则链已经被清空。类似只有表的结构,但没有表的数据。

2、设置INPUT规则链的默认规则为DROP,再设置INPUT规则链的默认规则为ACCEPT,看看本地主机是否能ping通虚拟机。

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第6张图片
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第7张图片
可以看到,若INPUT规则链的默认规则设置为DROP,物理机是无法访问虚拟机的,若默认规则设置为ACCEPT,物理机是可以访问虚拟机的。

3、向INPUT链中添加允许ICMP流量进入的规则

为了让效果较为明显,首先将INPUT规则链的默认规则设置为DROP,然后ping下虚拟机,会发现ping不通,然后允许ICMP流量,会发现可以ping通。
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第8张图片

4、删除INPUT链的第一条规则链,并设置默认规则为ACCEPT

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第9张图片

5、设置INPUT规则链,只允许指定网段的主机去访问本机的22号端口,并且拒绝其他所有主机的流量

服务器ip:
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第10张图片
在这里插入图片描述
现在尝试用客户端192.168.10.20去使用ssh协议远程访问服务器192.168.10.10,可以看到是可以正常访问的。
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第11张图片

6、拒绝所有人访问本机的22端口的规则

22号端口是ssh协议远程控制服务器所使用的端口,即远程主机是通过22号端口访问到服务器的。
在这里插入图片描述
下面用客户端访问下服务器:
在这里插入图片描述
已经连接不上了。

7、向INPUT规则链中添加允许192.168.10.20访问服务器的22号端口,拒绝其他主机访问。

在第6个实验中,可以看到客户端使用ssh协议是不能登录服务器的,现在在第一个规则设置下允许客户端使用ssh登录服务器。
在这里插入图片描述
在这里插入图片描述

8、添加拒绝所有主机访问本机的1000-1024号端口的规则

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第12张图片

9、在设置好所有规则后,都是临时生效的。若要永久生效还要使用以下命令:

service iptables save

有时会出错:
在这里插入图片描述
这是因为service已经逐渐被systemctl取代了。

firewall-cmd(建议使用)

区域zone:防火墙策略模板
在这里插入图片描述
firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面),是在区域的基础上设置策略的防火墙工具。
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第13张图片

实验及其验证

在日常使用中,长格式的参数较难敲,可以使用tab命令补全功能进行补全。

1、查看当前和指定网卡在firewalld服务中使用的区域

在这里插入图片描述

2、修改指定网卡在永久生效模式下使用的区域为external,并验证在runtime模式和permanent模式下使用的区域

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第14张图片

3、修改当前使用的默认区域

在这里插入图片描述

4、开启和关闭firewalld服务的应急状况模式

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第15张图片

5、查询public区域是否允许请求ssh协议和http协议的流量,并且将请求http协议的流量先设置为永久允许,再设置为永久拒绝。

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第16张图片

6、设置允许访问端口8080-8081,仅限当前生效

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第17张图片

7、设置允许端口转发,将访问8080号端口的流量转发到22号端口,并要求当前和永久都有效。

服务器:192.168.10.10
客户端:192.168.10.20
由于22号端口是ssh协议默认使用的端口,现在想要让客户端使用ssh协议,通过端口8080访问到服务器,可以使用firewalld服务的端口转发功能。
在这里插入图片描述
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第18张图片

8、增加一条富规则,使其拒绝192.168.10.0/24网段内的所有用户使用ssh协议访问本机

在这里插入图片描述

可以看到,客户端已经不能使用ssh协议远程登录服务器了。

firewall_config(建议考试使用,结合firewall-cmd理解)

firewalld服务的图形化界面
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第19张图片
直接在终端输入:firewall-config也可进入。

实验及其验证

1、查看当前和指定网卡在firewalld服务中使用的区域

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第20张图片

2、修改指定网卡在永久生效模式下使用的区域为external,并验证在runtime模式和permanent模式下使用的区域

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第21张图片

3、修改当前使用的默认区域

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第22张图片

4、开启和关闭firewalld服务的应急状况模式

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第23张图片

5、查询public区域是否允许请求ssh协议和http协议的流量,并且将请求http协议的流量先设置为永久允许,再设置为永久拒绝。

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第24张图片
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第25张图片

6、设置允许访问端口8080-8081,仅限当前生效

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第26张图片

7、设置允许端口转发,将访问8080号端口的流量转发到22号端口,并要求当前和永久都有效。

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第27张图片

8、增加一条富规则,使其拒绝192.168.10.0/24网段内的所有用户使用ssh协议访问本机

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第28张图片

9、firewall-cmd --reload

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第29张图片

10、SNAT(Source Network Address Translation,源网络地址转换)技术

SNAT是一种为了解决IP地址匮乏而设计的技术,它可以使得多个内网中的用户通过同一个外网IP接入Internet(互联网)。用一个外网ip伪装多个内网用户。
Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第30张图片

TCP Wrappers

TCP Wrappers是RHEL7系统中默认的一款流量监控程序。也可以称之为服务的访问控制列表。可以用来控制本机的服务允许被哪些主机访问或者拒绝被哪些主机访问。

  • /etc/hosts.allow 允许控制列表文件
  • /etc/hosts.deny 拒绝控制列表文件
  • 匹配规则:当修改好控制列表文件,立即生效,系统先匹配允许再匹配拒绝,匹配不上默认允许
    在这里插入图片描述
    Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第31张图片

1、允许192.168.10.10访问本机sshd服务的流量

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第32张图片

2、拒绝192.168.10.网段的主机访问本机httpd服务的流量

Linux-4种防火墙管理工具的使用(强烈建议掌握firewall-cmd和firewall-config)_第33张图片

建议:在RHCSA或者RHCE考试中,使用firewall-config图形化界面进行防火墙的配置,而且不要同时用多种工具进行配置。

你可能感兴趣的:(Linux)