1.12. 启用 firewalld 区域中不同接口或源之间的流量转发
区内转发是 firewalld
的一种功能,它允许 firewalld
区域内接口或源之间的流量转发。
1.12.1. 区内转发与默认目标设置为 ACCEPT 的区域之间的区别 复制链接链接已复制到粘贴板!
启用区域内转发后,单个 firewalld
区域中的流量可以从一个接口或源流到另一个接口或源。区指定接口和源的信任级别。如果信任级别相同,则流量保留在同一区域内。
在 firewalld
的默认区域中启用区域内转发,仅适用于添加到当前默认区域的接口和源。
firewalld
使用不同的区域来管理传入的流量和传出的流量。每个区域都有自己的一组规则和行为。例如,trusted
区域默认允许所有转发的流量。
其他区域可以有不同的默认行为。在标准区域中,当区域的目标设置为 default
时,转发的流量通常默认丢弃。
要控制流量如何在区域内不同接口或源之间被转发,请确保您理解并相应地配置了区域的目标。
1.12.2. 使用区内转发来在以太网和 Wi-Fi 网络间转发流量 复制链接链接已复制到粘贴板!
您可以使用区内转发来在同一 firewalld
区内的接口和源之间转发流量。此功能带来以下好处:
-
有线设备和无线设备间的无缝连接(您可以在连接到
enp1s0
的以太网网络和连接到wlp0s20
的 Wi-Fi 网络之间转发流量) - 支持灵活的工作环境
- 被网络中多个设备或用户访问和使用的共享资源(如打印机、数据库、网络连接的存储等)
- 高效的内部网络(如平稳的通信、降低的延迟、资源可访问性等)
您可以为单个 firewalld
区域启用此功能。
流程
在内核中启用数据包转发:
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保要启用区域内转发之间的接口只分配给
internal
区:firewall-cmd --get-active-zones
# firewall-cmd --get-active-zones
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果接口当前被分配给了不是
internal
的区,请重新分配它:firewall-cmd --zone=internal --change-interface=interface_name --permanent
# firewall-cmd --zone=internal --change-interface=interface_name --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
enp1s0
和wlp0s20
接口添加到internal
区:firewall-cmd --zone=internal --add-interface=enp1s0 --add-interface=wlp0s20
# firewall-cmd --zone=internal --add-interface=enp1s0 --add-interface=wlp0s20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用区域内部转发:
firewall-cmd --zone=internal --add-forward
# firewall-cmd --zone=internal --add-forward
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以下验证要求 nmap-ncat
软件包已安装在两个主机上。
-
登录到与启用了区域转发的主机的
enp1s0
接口位于同一网络上的主机。 使用
ncat
启动 echo 服务来测试连接:ncat -e /usr/bin/cat -l 12345
# ncat -e /usr/bin/cat -l 12345
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
登录到与
wlp0s20
接口在同一网络的主机。 连接到在与
enp1s0
在同一网络的主机上运行的 echo 服务器:ncat <other_host> 12345
# ncat <other_host> 12345
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输入一些内容并按 。验证文本是否被发送回来。