CentOS 7及以上版本默认集成firewalld,无需手动安装。可通过以下命令验证:
rpm -q firewalld
若返回版本号(如firewalld-0.6.3-1.el7.noarch),则表示已安装;若未安装,继续下一步。
使用包管理器安装(CentOS 7用yum,8及以上用dnf):
sudo yum install -y firewalld
sudo dnf install -y firewalld
安装过程会自动解决依赖关系。
安装完成后,立即启动服务并设置开机自启(确保系统重启后防火墙仍生效):
sudo systemctl start firewalld # 启动服务
sudo systemctl enable firewalld # 设置开机自启
启动后,可通过以下命令验证状态:
sudo systemctl status firewalld # 查看服务状态(显示"active (running)"即为正常)
sudo firewall-cmd --state # 直接查看firewalld运行状态(输出"running")
firewalld通过**区域(Zone)**管理不同网络的信任级别,默认区域为public(适用于不信任的网络,如互联网)。可根据需求修改默认区域:
sudo firewall-cmd --get-default-zone # 查看当前默认区域
sudo firewall-cmd --set-default-zone=public # 设置默认区域为public(常用)
修改后需重新加载配置生效。
firewalld支持两种方式开放访问:端口(直接指定端口及协议)或服务(使用预定义的服务规则,如HTTP、SSH)。
开放端口(永久生效):
例如,开放TCP端口80(HTTP)和443(HTTPS):
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
--permanent参数表示规则永久有效,重启后不丢失;若省略则仅临时生效(当前会话有效)。
开放服务(推荐):
若需开放常见服务(如HTTP),可直接使用服务名称(需提前定义在/usr/lib/firewalld/services/下):
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
服务规则包含端口、协议等预定义配置,更安全便捷。
重新加载配置:
修改规则后,必须执行以下命令使更改生效:
sudo firewall-cmd --reload
若不想中断当前连接,可使用--complete-reload(会重启防火墙服务)。
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services
sudo firewall-cmd --list-all
输出结果应包含已开放的端口/服务及默认区域。--add-port=0-65535/tcp),仅开放必要服务端口。sudo setenforce 1)并与firewalld配合使用,提升安全性。sudo cp /etc/firewalld/firewalld.conf /etc/firewalld/firewalld.conf.bak备份配置文件。以上步骤覆盖了firewalld的基础安装与配置,满足大多数场景的安全需求。如需更复杂的规则(如富规则、接口绑定),可参考firewalld官方文档扩展。