使用 firewalld 的“区域 + 服务/端口/富规则”基线
- 启动与持久化
sudo systemctl enable --now firewalld
- 选择区域(示例:将网卡设为 public,或按需切换到 internal/drop 等)
sudo firewall-cmd --set-default-zone=public
sudo firewall-cmd --zone=public --change-interface=eth0
- 放行常用服务(示例:HTTP/HTTPS)
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
- 按源 IP 精细放行(示例:仅可信网段访问 SSH 22)
sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.0/24” port port=“22” protocol=“tcp” accept’
- 使配置生效
sudo firewall-cmd --reload
- 紧急“全阻断”(测试环境慎用)
sudo firewall-cmd --panic-on
说明:firewalld 提供 public/work/home/internal/external/dmz/trusted/drop/block 等区域;对需要细粒度控制的场景,使用 富规则(rich rule) 指定来源、端口、协议与动作。