系统防火墙-Firewalld必备命令
1. 重新加载防火墙
1.1 重新加载防火墙而不中断用户连接
使用firewall-cmd --reload
命令重新加载防火墙规则,不中断用户连接,即不丢失状态信息:
[root@centos ~]# firewall-cmd --reload
success
1.2 重新加载防火墙并中断用户连接
使用firewall-cmd --complete-reload
命令重新加载防火墙规则,并中断用户连接,即丢弃状态信息:
[root@centos ~]# firewall-cmd --complete-reload
success
注意: 通常在防火墙出现严重问题时,才会使用complete-reload
命令,例如防火墙规则是正确的,但却出现状态信息问题和无法建立连接。
2. 服务管理命令
2.1 启用默认区域中的ftp服务
firewall-cmd --add-service=ftp
2.2 禁用区域中的某种服务
firewall-cmd [--zone=<zone>] --remove-service=<service>
示例:禁用home区域中的ftp服务
firewall-cmd --zone=home --remove-service=ftp
3. Firewalld服务配置
3.1 服务配置文件路径
在/usr/lib/firewalld/services/
目录中,保存了daemon文件,每个文件对应一项具体的网络服务,如samba服务等。相应的配置文件中记录了各项服务所使用的tcp/udp端口,当默认提供的服务不够用或者需要自定义某项服务的端口时,我们需要将service配置文件放置在/etc/firewalld/services/
目录中。
每加载一项已设置好的service配置意味着开放了对应的端口访问。
注意: 请勿修改/usr/lib/firewalld/services/
,只有/etc/firewalld/services/
的文件可以被编辑。
4. 配置文件示例
以下示例以系统自带的public
zone为例子。
4.1 例一:开放443端口供外网访问https服务
复制
https.xml
到/etc/firewalld/services/
目录下:[root@centos ~]# cp /usr/lib/firewalld/services/https.xml /etc/firewalld/services/
确认复制成功:
[root@centos ~]# ls /etc/firewalld/services/ https.xml
编辑
public.xml
文件,添加https服务:cat /etc/firewalld/zones/public.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <service name="https"/> <!-- 这行是后加的,要匹配 /etc/firewalld/services/https.xml 文件名 --> </zone>
重新加载防火墙配置:
[root@centos ~]# firewall-cmd --reload success
4.2 例二:修改防火墙Samba的端口方法
复制
samba.xml
文件到/etc/firewalld/services/
:[root@centos ~]# cp /usr/lib/firewalld/services/samba.xml /etc/firewalld/services/
编辑
samba.xml
文件,将Samba端口修改为14500
:cat /etc/firewalld/services/samba.xml <service> <short>Samba</short> <!-- 省略部分 --> <port protocol="tcp" port="14500"/> </service>
重新加载防火墙配置:
[root@centos ~]# firewall-cmd --reload success
4.3 例三:指定IP访问http端口
编辑
/etc/firewalld/zones/public.xml
,限制只允许特定IP访问HTTP服务:cat /etc/firewalld/zones/public.xml <zone> <short>Public</short> <!-- 省略部分 --> <rule family="ipv4"> <source address="192.168.100.100"/> <service name="http"/> <accept/> </rule> </zone>
执行以下命令实现IP和端口的限制:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="80" accept' firewall-cmd --reload
4.4 例四:添加自定义服务
添加9090端口为新的Service
复制其他模板,添加新文件
9090.xml
:cat /etc/firewalld/services/9090.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>9090Test</short> <description>此处为文字说明</description> <port protocol="tcp" port="9090"/> </service>
编辑
public.xml
文件,加入相应的Server:cat /etc/firewalld/zones/public.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <service name="9090"/> <!-- 这行是后加的,要匹配 /etc/firewalld/services/9090.xml 文件名 --> </zone>
重新加载防火墙配置:
[root@centos ~]# firewall-cmd --reload success
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。