在Linux系统中,防火墙是保护系统安全的重要工具。而在CentOS 7及更高版本中,firewalld成为了默认的防火墙管理工具,它通过firewall-cmd命令提供字符界面操作。本文将详细解析firewall-cmd命令,帮助您更好地管理Linux防火墙。
一、firewall-cmd简介
firewall-cmd是firewalld的字符界面管理工具,firewalld是CentOS 7的一大特性,它支持动态更新规则,无需重启服务,并引入了防火墙的“zone”概念。firewalld和iptables一样,通过内核的netfilter来实现包过滤功能,但firewalld在结构上更为先进,使用上也更加人性化。
二、firewall-cmd命令详解
-
启动和管理firewalld服务
- 启动firewalld服务:
systemctl start firewalld
- 停止firewalld服务:
systemctl stop firewalld
- 检查firewalld状态:
firewall-cmd --state
或systemctl status firewalld
- 启动firewalld服务:
-
区域(Zone)管理
- 获取默认区域:
firewall-cmd --get-default-zone
- 设置默认区域:
firewall-cmd --set-default-zone=public
- 列出所有激活的区域:
firewall-cmd --get-active-zones
- 获取默认区域:
-
服务管理
- 列出当前区域中启用的服务:
firewall-cmd --zone=public --list-services
- 添加服务:
firewall-cmd --zone=public --add-service=http --permanent
- 删除服务:
firewall-cmd --zone=public --remove-service=http --permanent
- 列出当前区域中启用的服务:
-
端口管理
- 列出当前区域中开放的端口:
firewall-cmd --zone=public --list-ports
- 添加端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 删除端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
- 列出当前区域中开放的端口:
-
富规则(Rich Rules)
- 添加富规则:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
- 列出所有富规则:
firewall-cmd --zone=public --list-rich-rules
- 添加富规则:
三、总结
firewall-cmd命令功能强大,通过它可以轻松管理Linux防火墙的各种规则和配置。无论是简单的端口开放,还是复杂的富规则设置,firewalld都提供了灵活的工具集来保护系统安全。建议在使用时,特别是在修改防火墙规则时,尽量使用--permanent选项,以确保规则在系统重启后仍然有效。通过合理使用firewall-cmd命令,您可以大大提高Linux系统的安全性。