当前位置:首页 > Linux > 正文

Linux如何配置防火墙?

Linux系统访问防火墙设置通常需root权限,不同发行版使用不同工具:CentOS/RHEL用 firewall-cmd命令,Ubuntu常用 ufw命令,或直接编辑 iptables/nftables规则。

在Linux系统中,防火墙是保护系统安全的核心组件,不同发行版和版本可能使用不同的防火墙管理工具,以下是主流工具的详细访问和配置方法,操作前请确保拥有sudo权限。


主流防火墙工具及访问方法

iptables(传统工具,通用性强)

  • 适用场景:所有Linux发行版(需手动安装)。

  • 访问方法

    Linux如何配置防火墙? 第1张

    # 查看当前规则 sudo iptables -L -n -v # 临时允许端口(示例:允许80端口) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 保存规则(依赖发行版) sudo apt-get install iptables-persistent # Ubuntu/Debian sudo netfilter-persistent save
  • 配置文件路径

    /etc/iptables/rules.v4(IPv4规则)

    /etc/iptables/rules.v6(IPv6规则)

firewalld(Red Hat/CentOS/Fedora默认)

  • 核心概念:通过“区域”(zone)管理网络信任级别。

  • 访问方法

    Linux如何配置防火墙? 第2张

    # 启动服务 sudo systemctl start firewalld sudo systemctl enable firewalld # 查看活动区域 sudo firewall-cmd --get-active-zones # 开放端口(示例:永久开放443端口) sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload # 重载配置 # 允许服务(示例:SSH) sudo firewall-cmd --permanent --add-service=ssh
  • 图形界面(可选)

    安装firewall-config包,运行sudo firewall-config。

  • ufw(Ubuntu/Debian简易工具)

    • 特点:简化iptables操作。

    • 访问方法

      Linux如何配置防火墙? 第3张

      # 启用防火墙 sudo ufw enable # 允许端口或服务 sudo ufw allow 22/tcp # 开放SSH端口 sudo ufw allow http # 或直接使用服务名 # 拒绝IP访问 sudo ufw deny from 192.168.1.100 # 查看状态 sudo ufw status verbose
    • 配置文件路径

      /etc/ufw/user.rules(自定义规则)。


    通用操作与注意事项

    检查防火墙状态

    • 所有工具通用: sudo systemctl status firewalld # 检查firewalld sudo ufw status # 检查ufw

    端口管理命令对比

    操作 iptables firewalld ufw
    开放端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT firewall-cmd --permanent --add-port=80/tcp ufw allow 80/tcp
    关闭端口 iptables -D INPUT -p tcp --dport 80 -j ACCEPT firewall-cmd --permanent --remove-port=80/tcp ufw deny 80/tcp
    保存规则 需手动保存(见上文) 自动保存,需--reload生效 自动保存

    关键安全建议

    • 最小化开放端口:仅允许必要服务(如SSH、HTTP/HTTPS)。
    • 测试后再保存

      使用iptables时,先通过命令临时修改,测试无误后再保存,避免锁死远程连接。

    • 备份配置

      修改前备份配置文件(如cp /etc/ufw/user.rules ~/ufw_backup)。


    故障排查

    1. 端口未生效?

      • 检查服务是否监听:ss -tuln | grep <端口号>。
      • 确认规则已加载:sudo iptables -L 或 sudo firewall-cmd --list-all。
    2. 误锁自己解决方案

      • 物理机:通过本地终端重启防火墙服务(如sudo systemctl restart firewalld)。
      • 云服务器:使用云平台提供的“救援模式”或控制台恢复。

      工具选择指南

      • 初学者:用ufw(Ubuntu/Debian)或firewalld图形界面。
      • 高级用户/跨平台:学习iptables基础语法。
      • 服务器环境:推荐firewalld(动态规则热更新)。

      引用说明

0