正如我们已经提到的,默认服务存储在/ usr / lib / firewalld / services目录中。 创建新服务的最简单方法是将现有服务文件复制到/ etc / firewalld / services目录,该目录是用户创建的服务的位置并修改文件设置。
例如,要为Plex Media Server创建服务定义,我们可以使用HTTP服务文件:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
打开新创建的plexmediaserver.xml文件,并在<short>和<description>标记内更改服务的短名称和描述。 您需要更改的最重要标记是端口标记,用于定义要打开的端口号和协议。 在以下示例中,我们将打开1900个UDP和32400个TCP端口。
/etc/firewalld/services/plexmediaserver.xml
<?xml version="1.0" encoding="utf-8"?>
<service version="1.0">
<short>plexmediaserver</short>
<description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description>
<port protocol="udp" port="1900"/>
<port protocol="tcp" port="32400"/>
</service>
保存文件并重新加载FirewallD服务:
sudo firewall-cmd --reload
您现在可以在区域中使用plexmediaserver服务,与任何其他服务相同。
使用Firewalld转发端口
要将流量从一个端口转发到另一个端口或地址,请首先使用--add-masquerade开关为所需区域启用伪装。 例如,要为外部区域类型启用伪装:
sudo firewall-cmd --zone=external --add-masquerade
在同一服务器上将流量从一个端口转发到另一个端口
在以下示例中,我们将流量从端口80转发到同一服务器上的端口8080:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
将流量转发到其他服务器
在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口80:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.2
将流量转发到其他端口上的另一台服务器
在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口8080:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.2
如果你想使前锋永久性只是附加--permanent标志。
使用FirewallD创建规则集
在以下示例中,我们将向您展示如果您运行Web服务器时如何配置防火墙。 我们假设您的服务器只有一个接口eth0,并且您希望仅在SSH,HTTP和HTTPS端口上允许传入流量。
01、将默认区域更改为dmz
我们将使用dmz(非军事化或隔离区)区域,因为默认情况下它只允许SSH流量。 要将默认区域更改为dmz并将其分配给eth0接口,请运行以下命令:
sudo firewall-cmd --set-default-zone=dmz
sudo firewall-cmd --zone=dmz --add-interface=eth0
02、打开HTTP和HTTPS端口:
要打开HTTP和HTTPS端口,请向dmz区域添加永久服务规则:
sudo firewall-cmd --permanent --zone=dmz --add-service=http
sudo firewall-cmd --permanent --zone=dmz --add-service=https
通过重新加载防火墙立即使更改生效:
03、验证更改
要检查dmz区域配置设置,请键入:
sudo firewall-cmd --zone=dmz --list-all
输出:
dmz (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
上面的输出告诉我们dmz是默认区域,应用于eth0接口,ssh(22)http(80)和https(443)端口打开。
总结
您已经学习了如何在CentOS系统上配置和管理FirewallD服务。
确保允许系统正常运行所需的所有传入连接,同时限制所有不必要的连接。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx