温馨提示×

Linux Minimal怎样设置防火墙

小樊
35
2026-01-02 19:54:38
栏目: 智能运维

Linux Minimal 防火墙设置指南

一、先确认系统与防火墙组件

  • 查看系统版本:cat /etc/redhat-release(或 cat /etc/os-release)。
  • 常见情况:
    • CentOS 7/8 Minimal 默认使用 firewalld
    • CentOS 6 Minimal 使用 iptables 服务。
  • 检查防火墙状态:
    • firewalld:sudo systemctl status firewalld
    • iptables:sudo service iptables statussudo iptables -L -n -v
  • 原则是“只开放必要端口”,如 SSH 22HTTP 80HTTPS 443 等。

二、CentOS 7/8 Minimal 使用 firewalld(推荐)

  • 启动与开机自启:
    • sudo systemctl start firewalld
    • sudo systemctl enable firewalld
  • 常用操作:
    • 查看状态与规则:sudo firewall-cmd --statesudo firewall-cmd --list-all
    • 开放端口(永久生效):sudo firewall-cmd --permanent --add-port=80/tcp
    • 开放服务(永久生效):sudo firewall-cmd --permanent --add-service=http
    • 使配置生效:sudo firewall-cmd --reload
    • 区域与接口:
      • 查看区域:sudo firewall-cmd --get-zones
      • 查看当前区域:sudo firewall-cmd --get-active-zones
      • 将接口加入区域:sudo firewall-cmd --permanent --zone=public --change-interface=eth0
  • 示例(仅放行 SSH 与 HTTP):
    • sudo firewall-cmd --permanent --add-service=ssh
    • sudo firewall-cmd --permanent --add-port=80/tcp
    • sudo firewall-cmd --reload
  • 如需更细粒度控制,可使用富规则(rich rule)按源地址、端口等匹配放行或拒绝。

三、CentOS 6 Minimal 使用 iptables(传统方式)

  • 启动与开机自启:
    • sudo service iptables start
    • sudo chkconfig iptables on
  • 编辑规则文件:sudo vi /etc/sysconfig/iptables,在默认 22 端口规则后追加需要的端口,例如:
    • 开放 80-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    • 开放 443-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
  • 保存与重启:
    • sudo service iptables save(或 sudo iptables-save > /etc/sysconfig/iptables
    • sudo service iptables restart
  • 常用维护:
    • 查看:sudo iptables -L -n -v
    • 清空:sudo iptables -F(谨慎,可能导致远程断开)
  • 提示:最小化系统可能默认未安装某些工具,必要时先 yum install -y iptables-services

四、通用加固与排错要点

  • 备份与恢复:
    • iptables 规则建议先备份:sudo iptables-save > /root/iptables-$(date +%F).bak
    • 恢复:sudo iptables-restore < /root/iptables-YYYY-MM-DD.bak
  • 远程维护安全:
    • 修改 SSH 端口前,务必先保留一条当前会话,再在另一个终端验证新端口可连,避免被锁。
    • 可结合 sudo firewall-cmd --permanent --remove-service=dhcpv6-client 等减少不必要暴露(视环境而定)。
  • SELinux 与云环境:
    • 若与现有策略冲突,可临时 sudo setenforce 0 并将 /etc/selinux/configSELINUX=enforcing 改为 SELINUX=permissive/disabled(生产环境请评估风险)。
    • 云服务器安全组与系统防火墙是“叠加”关系,需同时放通对应端口。

0