在Linux系统中,防火墙是保障系统安全的重要屏障。CentOS 7引入的firewalld防火墙,以其动态更新和区域(zone)概念两大优势,成为了系统管理员的首选。而firewall-cmd
作为firewalld的字符界面管理工具,更是让防火墙的配置与管理变得简单高效。
一、firewalld-cmd基础操作
-
启动/停止/重启firewalld服务:
- 启动服务:
systemctl start firewalld
- 停止服务:
systemctl stop firewalld
- 重启服务:
systemctl restart firewalld
- 启动服务:
-
设置firewalld开机自启:
- 启用开机自启:
systemctl enable firewalld
- 禁用开机自启:
systemctl disable firewalld
- 启用开机自启:
二、查看防火墙状态
- 查看firewalld状态:
firewall-cmd --state
或systemctl status firewalld
三、配置firewalld
-
查看预定义信息:
- 可用区域:
firewall-cmd --get-zones
- 可用服务:
firewall-cmd --get-services
- 可用区域:
-
区域管理:
- 查看当前激活区域:
firewall-cmd --get-active-zones
- 将接口添加到指定区域:
firewall-cmd --zone=public --add-interface=eth0
(永久生效需加--permanent
参数后执行--reload
)
- 查看当前激活区域:
-
端口和服务管理:
- 放行特定端口:
firewall-cmd --permanent --zone=public --add-port=8080/tcp
(应用策略需执行--reload
) - 拒绝特定IP访问端口:
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="1.1.1.3" port protocol="tcp" port="3306" reject'
- 放行特定端口:
四、配置模式
firewalld支持两种配置模式:
- 运行时(Runtime)模式:当前内存中运行的配置,重启系统或firewalld服务后失效。
- 永久(Permanent)模式:配置存储在文件中,重启系统或执行
--reload
后生效。
重点提示:
- 使用
--permanent
参数时,配置不会立即生效,需执行firewall-cmd --reload
来应用更改。 - firewalld的“zone”概念,通过将网络流量分配到不同区域,实现了更细致的安全控制。
总结:
firewall-cmd
命令以其丰富的功能和灵活的配置方式,成为了Linux系统管理员配置firewalld防火墙的得力工具。掌握这些命令,不仅能够提升系统的安全性,还能显著提高运维工作的效率。