一、CentOS Firewalld配置
(一)安装与启动
在CentOS 8中,firewalld通常已默认安装,若未安装,可使用以下命令进行安装:

- sudo yum install firewalld
安装完成后,启动并设置开机自启:
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
(二)基本配置
1、查看状态:使用systemctl status firewalld
命令查看firewalld服务的状态,确保其正常运行。
2、查看区域和规则:
查看所有可用区域:firewallcmd getzones
。
查看当前活动区域及绑定的网络接口:firewallcmd getactivezones
。

查看某个区域的详细信息(如public区域):firewallcmd zone=public listall
。
3、配置区域:
设置默认区域(如将默认区域设置为public):firewallcmd setdefaultzone=public
。
创建新区域(例如创建一个名为“myzone”的新区域):firewallcmd permanent newzone=myzone
。
将网络接口添加到指定区域(如将eth0接口添加到myzone区域):firewallcmd zone=myzone addinterface=eth0 permanent
。
4、配置服务:

允许HTTP服务(对应端口80):sudo firewallcmd zone=public addservice=http permanent
。
删除服务(如删除cockpit服务):sudo firewallcmd removeservice=cockpit permanent
。
5、配置端口:
添加端口(例如添加8080端口):sudo firewallcmd zone=public addport=8080/tcp permanent
。
删除端口(如删除8800端口):sudo firewallcmd removeport=8800/tcp permanent
。
6、保存配置:在进行任何配置更改后,需要重新加载防火墙以使配置生效:sudo firewallcmd reload
。
(三)高级配置
1、端口转发:开启防火墙伪装功能:firewallcmd addmasquerade permanent
,然后添加转发规则(例如将本机80端口转发到192.168.1.1的8080端口):firewallcmd addforwardport=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1 permanent
。
2、富规则:可以使用富规则来定义更复杂的规则,限制每秒钟连接的数量:sudo firewallcmd direct addrule ipv4 filter INPUT 0 p tcp syn source 0/0 destination 0/0 limit 1/s limitburst 5 j ACCEPT
。
二、FAQs
Q1:firewalld和iptables有什么区别?
A1:iptables是传统的Linux防火墙工具,通过命令行直接操作规则链来实现包过滤,而firewalld是一个动态管理的防火墙工具,它使用区域(Zones)和服务(Services)的概念来简化配置和管理,firewalld支持运行时配置和永久配置选项,并且可以通过图形化界面或命令行工具进行管理。
Q2:如何在CentOS 7中使用firewalld配置防火墙?
A2:在CentOS 7中,首先检查firewalld是否已安装,如果未安装则使用yum install firewalld
进行安装,启动并设置开机自启后,可以通过firewallcmd
命令行工具进行配置,查看当前区域和规则、设置默认区域、添加或删除服务和端口等,配置完成后,使用firewallcmd reload
重新加载防火墙以使配置生效。