目录
实训拓扑图
实训要求
1.按照拓扑完成网络搭建。
这一步骤可以参考我的文章:
在虚拟里网络位置的那一部分改成拓扑图里面要求的IP地址即可
VMware Workstation Pro(Centos Linux)克隆主机,并实现互通
2.在CentOS server 上部署firewalld 防火墙。
启动firewalld 服务
-
打开终端或命令行界面。
-
使用 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 的区域,你可以按照以下步骤操作:
- 打开终端或命令行界面。
- 使用 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,请按照以下步骤操作:
-
打开终端或命令行界面。
-
使用 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 参数。以下是如何操作的步骤:
-
打开终端或命令行界面。
-
使用 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 地址的所有流量。以下是如何操作的步骤:
- 打开终端或命令行界面。
- 使用 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 参数,以及要删除的富规则的完整内容。以下是如何操作的步骤:
- 打开终端或命令行界面。
- 使用 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
然后,从输出中复制要删除的富规则的确切内容,并使用上述命令将其删除。