温馨提示×

CentOS防火墙端口开放指南

小樊
32
2025-11-27 18:24:03
栏目: 智能运维

CentOS 防火墙端口开放指南

一 版本与工具选择

  • CentOS 7/8/9 默认使用 firewalldCentOS 6 使用 iptables。两者命令不同,切勿混用。若不确定当前系统,先确认版本与防火墙服务状态再操作。对于云服务器,除系统防火墙外,还需在云厂商的安全组放行对应端口,否则外网仍无法访问。

二 使用 firewalld 开放端口

  • 基础准备
    • 启动与开机自启:systemctl start firewalldsystemctl enable firewalld
    • 查看状态:systemctl status firewalldfirewall-cmd --state
    • 选择区域:默认常用 public,可用 firewall-cmd --get-active-zones 查看活动的区域与接口
  • 常用操作
    • 开放单个端口(立即生效):firewall-cmd --zone=public --add-port=80/tcp
    • 永久开放端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
    • 开放端口范围:firewall-cmd --zone=public --add-port=10000-10010/tcp --permanent
    • 开放 UDP 端口:firewall-cmd --zone=public --add-port=10000/udp --permanent
    • 使永久规则生效:firewall-cmd --reload
    • 关闭端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent && firewall-cmd --reload
    • 查询端口是否已放行:firewall-cmd --query-port=80/tcp
    • 查看已放行端口:firewall-cmd --zone=public --list-ports
    • 按服务名放行(内置服务):firewall-cmd --permanent --add-service=http && firewall-cmd --reload
  • 提示
    • 没有 –permanent 的规则重启后会丢失;添加/删除规则后记得 firewall-cmd --reload

三 使用 iptables 开放端口(CentOS 6 或手动管理 iptables 的场景)

  • 安装与启停(若未安装):yum install -y iptables-servicessystemctl start iptablessystemctl enable iptables
  • 开放端口
    • 单个端口:iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    • 端口范围:iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
  • 保存与重启
    • 保存规则:/etc/init.d/iptables save(或 service iptables save
    • 重启生效:service iptables restart
  • 关闭端口
    • 按编号删除:iptables -D INPUT <rule_number>(先用 iptables -L --line-number 查编号)
  • 注意
    • 规则顺序影响匹配结果;保存命令因系统版本可能不同,常见为 service iptables save/etc/init.d/iptables save

四 验证与排错

  • 本机监听与占用
    • 查看监听端口:ss -tulnnetstat -tulnp(若提示无 netstat,安装 net-toolsyum install -y net-tools
  • 连通性测试
    • 本机测试:nc -vz 127.0.0.1 80telnet 127.0.0.1 80
    • 远程测试:nc -vz <服务器IP> 80telnet <服务器IP> 80
  • 云平台安全组
    • 在云厂商控制台为实例的安全组放行对应 协议/端口/源地址,否则即使系统防火墙放行也可能无法从外网访问。

五 安全建议

  • 遵循最小权限原则:仅开放业务必需端口与协议;不再使用的端口及时关闭。
  • 优先使用区域与服务管理(如 public 区域、--add-service=http),减少直接暴露端口。
  • 对关键端口可结合源 IP 白名单与富规则限制访问,例如仅允许内网网段访问管理端口。
  • 定期审查规则与监听状态,变更前后做好备份与回滚方案。

0