全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Linux防火墙配置

最近更新时间:2026-08-18 21:09:45

背景信息

通过 iptables 可以为 Linux 服务器配置有状态的防火墙,能够指定并记住为发送或接收信息包所建立的连接的状态,是一套用来设置、维护和检查 Linux 内核的 IP 包过滤规则的命令包。Linux 的 iptables 防火墙默认有三种表:Filter、NAT 与 Mangle,其中 Filter 是默认使用的表格,包含 INPUT、OUTPUT、FORWARD 三条链。下面以创建一个 filter 表防火墙为例。

操作步骤

  1. 清除原有规则。
    执行以下命令,清除预设表 filter 中的所有规则链的规则,以及使用者自定义链中的规则。

    iptables -F
    iptables -X
    
  2. 设定预设规则,将 INPUT、FORWARD 链的默认策略设为 DROP,OUTPUT 链设为 ACCEPT。

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP
  3. 添加规则。根据实际需要开放相应端口,依次添加规则。常见服务端口示例如下:

    445 端口为运营商封禁端口,不可用。

    以下主要写的都是 INPUT 链,凡是不在上面的规则里的,都 DROP。

    如果您还做了其他的服务器,需要开启哪个端口,参考相应操作即可。

    • 远程 SSH 登录(开启22端口)

      iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
    • WEB 服务器(开启80端口)

      iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    • 邮件服务器(开启25、110端口)

      iptables -A INPUT -p tcp --dport 25 -j ACCEPT
      iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    • FTP 服务器(开启21端口)

      iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    • DNS 服务器(开启53端口)

      iptables -A INPUT -p tcp --dport 53 -j ACCEPT
    • HTTPS(开启443端口)

      iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    • 允许 ICMP(允许 ping)
      如果 OUTPUT 或 INPUT 链设置为 DROP,需要相应添加规则。

      iptables -A OUTPUT -p icmp -j ACCEPT
      iptables -A INPUT -p icmp -j ACCEPT
    • 允许 loopback(避免 DNS 无法正常关闭等问题)
      根据默认策略的 DROP 方向添加相应规则。

      iptables -A INPUT -i lo -p all -j ACCEPT
      iptables -A OUTPUT -o lo -p all -j ACCEPT

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈