温馨提示×

CentOS防火墙设置有哪些技巧

小樊
43
2026-01-10 15:56:08
栏目: 智能运维

CentOS 防火墙设置实用技巧

一 基础与常用操作

  • 确认工具与运行状态:CentOS 7+ 默认使用 firewalld;使用 systemctl status firewalld 查看状态,systemctl start|enable|stop|disable firewalld 管理服务。运行时与永久配置要区分:运行时修改立即生效但重启后丢失,永久修改需 --permanentfirewall-cmd --reload 重载。查看与放行端口:firewall-cmd --list-ports--add-port=80/tcp --permanent--query-port=80/tcp;按服务放行更直观:--add-service=ssh|http|https --permanent 后重载。以上命令覆盖日常 90% 的开放端口与服务场景。

二 安全优先的访问控制

  • 最小权限与默认拒绝:优先使用 zone 划分信任域,必要时将默认区域设为更严格的 drop(入站丢弃且不响应),仅在明确区域放行必要端口与服务。示例:firewall-cmd --set-default-zone=drop && firewall-cmd --reload
  • 按源 IP 精确放行:仅允许指定网段/主机访问关键端口,推荐用富规则。示例:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080" accept' && firewall-cmd --reload
  • 服务与端口的正确放置:不要把内网数据库等对内服务放在 public 区域;可将接口划入更合适的区域(如 internal/trusted),或在富规则中限定源地址,避免误开放。示例:firewall-cmd --permanent --zone=internal --change-interface=eth1 && firewall-cmd --reload

三 提升效率的高级用法

  • 端口范围与批量放行:一次放行一段端口,减少规则数量。示例:firewall-cmd --permanent --zone=public --add-port=10000-10010/tcp && firewall-cmd --reload
  • 自定义服务:对应用使用固定端口(如 8088/TCP)时,可创建自定义服务,便于复用与集中管理。示例:firewall-cmd --permanent --new-service=app8088 --set-description="App 8088" && firewall-cmd --permanent --service=app8088 --add-port=8088/tcp && firewall-cmd --reload
  • 按接口绑定区域:不同网口对应不同安全级别,例如将内网口划入 trusted,公网口保留 public。示例:firewall-cmd --permanent --zone=trusted --change-interface=eth1 && firewall-cmd --reload
  • 地址伪装与 NAT:为内网访问外网开启 masquerade(SNAT)。示例:firewall-cmd --permanent --zone=public --add-masquerade && firewall-cmd --reload
  • 日志与审计:开启防火墙日志有助于排障与入侵溯源。可在 /etc/firewalld/firewalld.conf 中设置 LogLevel=info 并重启服务,结合系统日志分析。

四 维护与排错清单

  • 变更生效与验证:所有带 –permanent 的规则需 firewall-cmd --reload;用 firewall-cmd --list-all--query-port=端口/协议--get-active-zones 逐项核对。
  • 避免锁死与回滚通道:远程维护时,先放行 SSH(22/TCP) 再变更其他规则;必要时通过控制台/带外管理恢复。使用 firewall-cmd --runtime-to-permanent 将当前运行时规则固化为永久规则,减少遗漏。
  • 规则顺序与显式拒绝:firewalld 按顺序匹配规则;对关键服务建议显式允许,其余默认拒绝,避免“先放行后拒绝”的逻辑错误。
  • 版本差异与兼容性:CentOS 6 使用 iptables 且配置路径与命令不同(如 /etc/sysconfig/iptablesservice iptables save|restart);CentOS 7+ 使用 firewalld。跨版本迁移时先确认系统版本与默认防火墙工具,再选择对应命令集。

0