firewalld防火墙安装、启用与基础规则配置
在基于RHEL/CentOS或Fedora的Linux系统中,firewalld 是动态管理防火墙的默认工具。以下是安装、启用和配置基础规则的步骤:1. 安装 firewalld
[*]大多数现代RHEL/CentOS/Fedora系统已预装firewalld。若未安装:
sudo yum install firewalld # CentOS/RHEL 7+
# 或
sudo dnf install firewalld # Fedora/RHEL 8+
2. 启用并启动 firewalld
sudo systemctl enable --now firewalld# 启用并立即启动服务
sudo systemctl status firewalld # 检查状态(应显示active/running)
3. 基础配置命令
查看当前状态与规则
sudo firewall-cmd --state # 检查是否运行
sudo firewall-cmd --list-all # 显示所有当前配置(区域、服务、端口等)
sudo firewall-cmd --get-active-zones# 查看激活的区域
管理区域(Zones)
[*]区域(Zone) 是预定义的规则集合(如public、home、work等)。
[*]临时切换区域(重启后失效):
sudo firewall-cmd --set-default-zone=home# 设置默认区域
sudo firewall-cmd --get-default-zone # 查看默认区域
开放端口/服务
[*]开放特定端口(如TCP 8080):
sudo firewall-cmd --add-port=8080/tcp --permanent# --permanent永久生效
sudo firewall-cmd --reload # 重载配置
[*]开放预定义服务(如HTTP/HTTPS):
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
允许IP/网段访问
[*]允许特定IP访问所有端口:
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' --permanent
[*]允许网段访问SSH:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
拒绝或丢弃流量
[*]拒绝来自某IP的流量:
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.5" reject' --permanent
4. 常用示例
开放SSH和HTTP
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
仅允许特定IP访问MySQL(端口3306)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.50" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload
5. 保存与恢复配置
[*]永久生效的规则需添加--permanent标志,修改后执行sudo firewall-cmd --reload。
[*]备份配置:
sudo firewall-cmd --runtime-to-permanent# 将当前运行时配置保存为永久配置
或手动备份/etc/firewalld/目录。
6. 禁用/停止 firewalld
sudo systemctl stop firewalld # 临时停止
sudo systemctl disable firewalld# 禁用开机启动
注意事项
[*]测试规则:使用--timeout参数临时应用规则(如--add-port=80/tcp --timeout=300)。
[*]区域优先级:接口默认属于某个区域,可通过--change-interface=eth0 --zone=home调整。
[*]日志监控:查看被拒绝的流量:
sudo journalctl -u firewalld --since today
通过以上步骤,您可以灵活管理firewalld的防火墙规则,确保系统安全的同时允许必要的网络访问。
页:
[1]