Linux防火墙的配置(新建富规则、区域、配置区域连接接口、修改默认区域)

实训拓扑图

在这里插入图片描述

实训要求

1.按照拓扑完成网络搭建。

这一步骤可以参考我的文章:
在虚拟里网络位置的那一部分改成拓扑图里面要求的IP地址即可

VMware Workstation Pro(Centos Linux)克隆主机,并实现互通

2.在CentOS server 上部署firewalld 防火墙。

启动firewalld 服务
  1. 打开终端或命令行界面。

  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令来启动 firewalld 服务:

sudo systemctl start firewalld

这条命令会立即启动 firewalld 服务。

要验证服务是否成功启动,你可以检查它的状态:

sudo systemctl status firewalld

如果服务成功启动,你将看到类似以下内容的输出:

firewalld.service - firewalld - dynamic firewall daemon  
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)  
   Active: active (running) since [启动时间]; <多长时间> ago  
     Docs: man:firewalld(1)  
 Main PID: [PID号] (firewalld)  
   Status: "running"  
    Tasks: 2 (limit: 4915)  
   Memory: 15.7M  
   CGroup: /system.slice/firewalld.service  
           └─[PID号] /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid  
  
[时间] firewalld[PID号]: WARNING: ICMP type 'unreachable' is not supported, ignoring for service 'ssh'  
[时间] firewalld[PID号]: WARNING: ICMP code 'unreachable' is not supported, ignoring for service 'ssh'  

在这里插入图片描述

请注意输出中的 Active: active (running),这表示 firewalld 服务正在运行。

如果你想让 firewalld 服务在系统启动时自动运行,你可以启用它:

sudo systemctl enable firewalld

这样,每次系统启动时,firewalld 服务都会自动启动。

如果你想停止 firewalld 服务,可以使用以下命令:

sudo systemctl stop firewalld

如果你想在系统启动时禁用 firewalld 服务,可以使用以下命令:

sudo systemctl disable firewalld

请记住,管理防火墙和服务是一个敏感的操作,确保你了解每个命令的影响,并在进行更改之前备份任何重要的配置。

新建newzone 区域

要新建一个名为 newzone 的区域,你可以按照以下步骤操作:

  1. 打开终端或命令行界面。
  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令来创建新的区域:
sudo firewall-cmd --permanent --new-zone=newzone
--permanent 选项表示你希望这个更改是永久的,即使重启 firewalld 服务后仍然生效

重新加载 firewalld 配置,以使新区域生效: 这一步非常重要,一定要重新加载

sudo firewall-cmd --reload

你可以使用以下命令来检查新区域是否已成功创建:

sudo firewall-cmd --get-zones

该命令应该列出所有可用的区域,包括你刚刚创建的 newzone。

1 block dmz drop external home internal newzone public trusted work

请注意,创建新区域只是第一步,你还需要定义该区域的信任级别(例如,drop、public、external 等),并为其添加相应的服务、端口或接口。

更改默认区域为work

在 firewalld 中,你可以更改默认区域为 work 或其他任何已存在的区域。默认区域用于那些没有明确指定区域的网络接口。要更改默认区域为 work,请按照以下步骤操作:

  1. 打开终端或命令行界面。

  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令来更改默认区域:

sudo firewall-cmd --set-default-zone=work

这条命令会立即将默认区域更改为 work,但请注意,这个更改仅在当前会话中有效。要使这个更改在重启后仍然生效,你需要添加--permanent 选项:

sudo firewall-cmd --permanent --set-default-zone=work

重新加载 firewalld 配置,以使更改生效:这一步非常重要,一定要重新加载

sudo firewall-cmd --reload

你可以使用以下命令来检查默认区域是否已成功更改:

sudo firewall-cmd --get-default-zone

这条命令应该返回 work,表明默认区域已被成功更改。
在这里插入图片描述

请注意,更改默认区域可能会影响你的网络访问和安全策略。确保在更改默认区域之前,你已经了解了 work 区域的配置和规则,以及这些更改如何影响你的网络流量。此外,如果 work 区域不存在,你需要先创建它或选择一个已存在的区域作为默认区域。

Ens33 接口连接newzone 区域

要将 ens33 接口连接到 newzone 区域,你可以使用 firewall-cmd 命令,并指定 --zone 和 --change-interface 参数。以下是如何操作的步骤:

  1. 打开终端或命令行界面。

  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令,将 ens33 接口更改为 newzone 区域:

sudo firewall-cmd --zone=newzone --change-interface=ens33

这条命令将立即将 ens33 接口移动到 newzone 区域,但请注意,这个更改仅在当前会话中有效。要使这个更改在重启后仍然生效,你需要添加--permanent选项:

sudo firewall-cmd --permanent --zone=newzone --change-interface=ens33

重新加载 firewalld 配置,以使更改生效:这一步非常重要,一定要重新加载

sudo firewall-cmd --reload

你可以使用以下命令来检查 ens33 接口当前所属的区域:

sudo firewall-cmd --get-zone-of-interface=ens33

这条命令应该返回 newzone,表明 ens33 接口已成功被分配到 newzone 区域。
在这里插入图片描述

请确保在将接口分配到新区域之前,你已经对 newzone 区域进行了适当的配置,包括所需的规则和服务,以确保网络流量的正确管理。如果你还没有对 newzone 进行配置,你需要先编辑该区域的配置文件或使用 firewall-cmd 命令添加相应的规则。

新建富规则,阻止192.168.37.30连通CentOS server。

要阻止 IP 地址 192.168.37.30 连通 CentOS 服务器,你可以创建一个富规则来丢弃来自该 IP 地址的所有流量。以下是如何操作的步骤:

  1. 打开终端或命令行界面。
  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令来添加富规则:
sudo firewall-cmd --permanent --zone=newzone --add-rich-rule='rule family="ipv4" source address="192.168.37.30" reject'

这条命令将在 newzone 区域中添加一个富规则,该规则将拒绝来自 IP 地址 192.168.37.30 的所有 IPv4 流量。--permanent 选项表示这个规则在重启后仍然有效。

重新加载 firewalld 配置,以使新规则生效:这一步非常重要,一定要重新加载

sudo firewall-cmd --reload

你可以使用以下命令来检查富规则是否已成功添加:

sudo firewall-cmd --zone=newzone --list-all

在输出中,你应该能看到你添加的富规则。
在这里插入图片描述

请注意,这个规则只会应用于已经被分配到 newzone 区域的接口。确保 ens33 接口(或你想要阻止流量的任何接口)已经被分配到 newzone 区域。

此外,如果你想要立即测试这个规则而不需要重启 firewalld 服务,你可以省略 --permanent 选项来添加非持久的规则:

sudo firewall-cmd --zone=newzone --add-rich-rule='rule family="ipv4" source address="192.168.37.30" reject'

但是请注意,这种方式添加的规则在 firewalld 服务重启后将会丢失。为了保持规则在重启后仍然有效,你需要使用--permanent选项并重新加载配置。

重载firewalld 后,测试连接效果

要测试从 192.168.1.30 到 CentOS 服务器的连接效果,你可以使用多种方法。以下是一些建议的步骤来验证连接是否被成功阻止:

使用 ping 命令

从 192.168.37.30 这台机器上尝试 ping CentOS 服务器的 IP 地址。如果连接被阻止,你将不会收到任何响应。

在 192.168.37.30 上执行:

ping 服务器的IP地址

# 我是在192.168.37.10的机子上配置的所以
ping 192.168.37.10

结果展示如下:
在这里插入图片描述
注意事项
确保 192.168.37.30 和 其他服务器之间的网络连接是正常的,没有其他网络问题。
检查 CentOS 服务器上的服务是否正在运行,并且监听正确的端口。
如果测试显示连接没有被阻止,检查 firewalld 的配置是否正确应用,并且确保没有其他防火墙或安全软件可能干扰连接。

删除创建的富规则

要删除之前创建的富规则,你需要使用 firewall-cmd 命令并指定 --remove-rich-rule 参数,以及要删除的富规则的完整内容。以下是如何操作的步骤:

  1. 打开终端或命令行界面。
  2. 使用 root 用户或具有 sudo 权限的用户执行以下命令来删除富规则:
sudo firewall-cmd --permanent --zone=newzone --remove-rich-rule='rule family="ipv4" source address="192.168.37.30" reject'

这条命令将从 newzone 区域中删除指定的富规则,--permanent 选项表示这个更改在重启后仍然有效。

重新加载 firewalld 配置,以使更改生效:这一步非常重要,一定要重新加载

sudo firewall-cmd --reload

你可以使用以下命令来检查富规则是否已成功删除:

sudo firewall-cmd --zone=newzone --list-all

在输出中,你应该看不到之前添加的富规则了。
在这里插入图片描述

请注意,如果你之前添加的富规则没有使用 --permanent 选项,那么它可能只是一个临时的规则。在这种情况下,你只需要重新加载 firewalld 配置(sudo firewall-cmd --reload),而不需要使用 --permanent 选项来删除它,因为临时规则在重启服务或系统后会自动消失。

如果你不确定富规则的完整内容,你可以首先列出该区域的所有规则来查找它:

sudo firewall-cmd --zone=newzone --list-all

然后,从输出中复制要删除的富规则的确切内容,并使用上述命令将其删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值