RedHat9 | 防火墙配置与管理

RedHat9中默认安装Firewalld,也可安装iptables。但是两者不可同时运行。

软件或程序主要作用
firewalld、iptables策略限制MAC、IP、PORT、ARP
SELinux上下文、布尔值、端口
软件权限读写执行权限
文件系统rwx、隐藏权限、ACL

1、Netfilter

包过滤防火墙工作在TCP/IP的网络层,Linux通过内核中的Netfilter来实现对网络数据包的过滤和管理

  • 查看
  • 记录
  • 修改
  • 丢弃
  • 拒绝

与Linux的交互方式

  1. 通过编写内核模块程序与netfilter交互
  2. 使用iptables(6版本之前)
  3. 使用firewalld(7版本之后)

基于基础安装的Linux系统会同时安装好firewalld,基于最小化安装的Linux系统不会安装firewalld

2、防火墙区域

  • Firewalld将所有传入流量划分成区域,每个区域都具有自己的一套规则
  • 任何新网络接口的默认区域会被设置为public区域

匹配规则

  • 每个包进入系统都会检查源地址,应用源地址所关联区域的规则
  • 不存在该关联区域,使用进站接口网络关联的区域规则
  • 没有关联任何区域,使用系统配置的默认区域
  • 如果没有匹配任何允许规则,默认为拒绝

3、预定义区域

区域默认配置预定义允许访问的服务备注
trusted允许所有进站所有
home默认拒绝进入,除流量与流出流量相关(请求由内部发起)SSH、mDNS、IPP-client、samba-client、dhcpv6-client与home类似,根据区域名含义,可作为内网与外网的区分
internal默认拒绝进入,除流量与流出流量相关(请求由内部发起)SSH、mDNS、IPP-client、samba-client、dhcpv6-client与home类似,根据区域名含义,可作为内网与外网的区分
work默认拒绝进入,除流量与流出流量相关(请求由内部发起)SSH、ipp-client、dhcpv6-client
public默认区域,默认拒绝进入SSH、dhcpv6-client
external默认拒绝进入,除流量与流出流量相关(请求由内部发起)ssh经过该区域的IPv4出站流量会将源伪装为出站网路接口地址
dmz默认拒绝进入,除流量与流出流量相关(请求由内部发起)ssh
block默认拒绝进入,除流量与流出流量相关(请求由内部发起)
drop默认丢弃,除流量与流出流量相关(请求由内部发起)包括ICMP错误信息

查看区域默认允许访问的服务

firewall-cmd --list-all

在这里插入图片描述

查看系统预先定义服务

# 方式1:通过查看文件查看
cat /etc/services

# 方式2:通过命令查看
firewalld-cmd --get-services

4、防火墙配置工具

  • 使用firewall-conf图形工具
  • 使用firewall-cmd命令行工具
  • Firewalld配置文件
  • 通过Cockpit方式配置防火墙

firewall-cmd常用命令

命令说明
–state查看当前防火墙状态
–reload重新加载防火墙策略,立即生效
–get-default-zone查看当前防火墙默认区域
–set-default-zone设置当前防火墙的默认区域
–add-interface设置网卡的归属区域,如果已经设置过,则报错
–change-interface修改网卡的归属区域
–add-port设置允许的端口
–remove-port移除端口
–add-service设置允许的服务
–remove-service移除服务
–add-source将指定IP地址的所有流量都引入某区域
–permanent永久生效

将网卡所属区域修改为home区域

firewall-cmd --get-zones		# 先查看当前存在当前区域
firewall-cmd --change-interface eth0 --zone=home		# 如果不指定区域,则添加到默认区域中
firewall-cmd --list-all --zone=home

在这里插入图片描述

5、放行对应服务

servera作web服务器

dnf -y install httpd		# 在servera上安装web服务
systemctl start httpd		# 启动web服务

在workstation上尝试访问servera的web服务

在这里插入图片描述

servera上调整防火墙规则,放行http服务

firewall-cmd --add-service=http --perament
firewall-cmd --reload

在这里插入图片描述

重新测试访问
在这里插入图片描述

6、放行对应端口

在servera上修改web服务的默认访问端口

vim /etc/http/conf/httpd.conf

# 修改Listen的值
Listen 8080

在这里插入图片描述

重新启动web服务

systemctl restart httpd

workstation尝试访问servera上的web服务

在这里插入图片描述

servera上调整防火墙策略,此时无法通过预先定义服务来放行,因为http服务对应端口号为80,而我们定义的端口号为8080

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

在这里插入图片描述

在workstation上重新访问
在这里插入图片描述

7、修改配置文件放行

配置文件路径

  • /etc/firewalld
  • /usr/lib/firewalld

/usr/lib/firewalld目录下配置文件优先级更高,如果/etc/firewalld与/usr/lib/firewalld下文件冲突,则以/etc/firewalld为主
在这里插入图片描述

查看预定义区域的配置文件

cat /usr/lib/firewalld/zones/public.xml

在这里插入图片描述

查看当前防火墙引用的策略

vim /etc/firewalld/zones/public.xml

在这里插入图片描述

修改servera上的web侦听端口为1616

vim /etc/httpd/conf/httpd.conf

# 修改Listen
Listen 1616

重新启动httpd服务

systemctl restart httpd

通过修改配置文件以允许1616端口

vim /etc/firewalld/zones/public.xml

# 添加下列内容
<port port="1616" protocol="tcp"/>

重新加载防火墙配置

firewall-cmd --reload

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、富规则

如果只是开放服务或端口,涵盖对象为所有的客户端,无法对单一客户端进行限制。如果需要对单一客户端进行限制,则需要使用富规则,富规则功能类似于网络设备中的ACL访问控制列表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

路由器配置

echo net.ipv4.ip_forward=1 > /etc/sysctl.conf			# 开启包转发
sysctl -p												# 立即生效

Web服务器配置

dnf install httpd
echo "Hello!" > /var/www/html/index.html
systemctl start httpd
firewall-cmd --add-server=http --perament
firewall-cmd --reload

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分公司客户端尝试访问Web服务器

curl http://192.168.1.100

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

定义富规则,禁止分公司2客户端访问Web服务

  • 定义方式1:通过服务名方式拒绝访问
firewall-cmd --permanent --add-rich-rule='rule famliy=ipv4 source address=192.168.2.0/24 service name=http reject'

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 定义方式2:通过端口号方式拒绝访问
firewall-cmd --add-rich-rule='rule family=ipv4 source address="192.168.2.0" port port="80" protocol="tcp" reject'

此时分公司2无法访问Web服务

curl http://192.168.1.100

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分公司1仍可以访问

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meaauf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值