温馨提示×

centos镜像如何使用防火墙

小樊
39
2025-12-23 15:54:32
栏目: 智能运维

CentOS 镜像使用防火墙指南

一、准备与确认

  • CentOS 7/8 中,默认使用 firewalld 管理防火墙;firewalld 充当内核 nftables/iptables 的前端,更安全、易用。先确认服务与运行状态:
    • 查看状态:sudo firewall-cmd --state(返回 running/not running
    • 启动/停止:sudo systemctl start|stop firewalld
    • 开机自启/禁用:sudo systemctl enable|disable firewalld
    • 如命令不存在,可安装:sudo dnf install firewalld(或 yum install firewalld
  • 了解区域概念:firewalld 用 zone 按信任级别管理规则。常用区域有 public、external、dmz、work、home、internal、trusted、block、drop。查看与设置:
    • 查看默认区域:firewall-cmd --get-default-zone
    • 查看活动区域与接口:firewall-cmd --get-active-zones
    • 设置默认区域:sudo firewall-cmd --set-default-zone=public
  • 规则有“运行时”和“永久”之分:加 --permanent 写入持久配置;变更后用 sudo firewall-cmd --reload 使配置生效;可用 sudo firewall-cmd --runtime-to-permanent 将当前运行时规则保存为永久。

二、常用防火墙操作 firewalld

  • 开放/关闭端口(示例:80/TCP、443/TCP、10000-10010/TCP
    • 开放:sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    • 关闭:sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
    • 开放端口段:sudo firewall-cmd --zone=public --add-port=10000-10010/tcp --permanent
    • 使生效:sudo firewall-cmd --reload
    • 查询端口:firewall-cmd --zone=public --list-ports
  • 放行/移除服务(示例:ssh、http、https
    • 放行:sudo firewall-cmd --zone=public --add-service=ssh --permanent
    • 移除:sudo firewall-cmd --zone=public --remove-service=ssh --permanent
    • 查询服务:firewall-cmd --list-services
  • 接口与源地址绑定
    • 将接口加入区域:sudo firewall-cmd --zone=public --add-interface=eth0
    • 按源地址限制:sudo firewall-cmd --zone=public --add-source=203.0.113.10(或网段 203.0.113.0/24
  • 查看与验证
    • 查看区域完整配置:firewall-cmd --list-all
    • 查看所有区域:firewall-cmd --get-zones
    • 运行时/永久区分:未加 --permanent 的规则重启后丢失;变更后用 --reload 生效。

三、使用 iptables 的情况

  • 某些精简镜像可能未安装 firewalld,或你更倾向使用 iptables。操作要点:
    • 安装与启停(CentOS 7/8 需先安装服务包):sudo yum/dnf install iptables-services,然后 sudo systemctl start|enable iptables
    • 开放端口(示例:8080/TCP):sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    • 保存规则(不同系统路径/命令可能不同):sudo service iptables savesudo /etc/init.d/iptables save
    • 注意:iptables 规则默认是临时的,务必保存;在生产环境建议配合 iptables-services 管理。

四、安全与排错建议

  • 变更前先备份当前规则,变更后用 sudo firewall-cmd --reload 生效;尽量使用 –permanent 持久化关键规则。
  • 遵循最小权限原则:仅开放业务必需端口;对管理口(如 SSH 22/TCP)可结合 源地址限制 或改为非默认端口,并提前准备控制台/带外通道,避免锁死。
  • 区分环境:本机防火墙与云厂商的 安全组/网络ACL 是两层防护,需同时放通对应端口与协议。
  • 常用排查命令:firewall-cmd --statefirewall-cmd --list-allfirewall-cmd --get-active-zonesfirewall-cmd --runtime-to-permanent

0