Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-03-26. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置内置防火墙规则

可以查看默认防火墙规则并自定义 你的 GitHub Enterprise Server 实例 规则。

关于 你的 GitHub Enterprise Server 实例 防火墙

GitHub Enterprise Server 在虚拟设备上使用 Ubuntu 的简单防火墙 (UFW)。 有关详细信息,请参阅 Ubuntu 文档中的 UFW。 GitHub Enterprise Server 在每次发布时都会自动更新允许服务的防火墙允许名单。

安装 GitHub Enterprise Server 之后,所有必要的网络端口都会自动打开,以接受连接。 每个非必要的端口都会自动配置为 deny,默认传出策略会配置为 allow。 会为任何新连接启用状态跟踪;这些连接通常是设置了 SYN 位的网络数据包。 有关详细信息,请参阅“网络端口”。

UFW 防火墙还会打开 GitHub Enterprise Server 所需的其他多个端口才能正常运行。 有关 UFW 规则集的详细信息,请参阅 UFW 自述文件

建议不要自定义 UFW,因为这会使某些故障排除问题复杂化。

查看默认防火墙规则

  1. 通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 若要查看默认防火墙规则,请使用 sudo ufw status 命令。 此时会看到与下面类似的输出:

    $ sudo ufw status
    > Status: active
    > To                         Action      From
    > --                         ------      ----
    > ghe-1194                   ALLOW       Anywhere
    > ghe-122                    ALLOW       Anywhere
    > ghe-161                    ALLOW       Anywhere
    > ghe-22                     ALLOW       Anywhere
    > ghe-25                     ALLOW       Anywhere
    > ghe-443                    ALLOW       Anywhere
    > ghe-80                     ALLOW       Anywhere
    > ghe-8080                   ALLOW       Anywhere
    > ghe-8443                   ALLOW       Anywhere
    > ghe-9418                   ALLOW       Anywhere
    > ghe-1194 (v6)              ALLOW       Anywhere (v6)
    > ghe-122 (v6)               ALLOW       Anywhere (v6)
    > ghe-161 (v6)               ALLOW       Anywhere (v6)
    > ghe-22 (v6)                ALLOW       Anywhere (v6)
    > ghe-25 (v6)                ALLOW       Anywhere (v6)
    > ghe-443 (v6)               ALLOW       Anywhere (v6)
    > ghe-80 (v6)                ALLOW       Anywhere (v6)
    > ghe-8080 (v6)              ALLOW       Anywhere (v6)
    > ghe-8443 (v6)              ALLOW       Anywhere (v6)
    > ghe-9418 (v6)              ALLOW       Anywhere (v6)
    

添加自定义防火墙规则

警告:在添加自定义防火墙规则之前,请备份当前规则,以便在需要时可以重置为已知的工作状态。 如果你被锁定在服务器之外,请访问 GitHub Enterprise 支持 并联系我们,以重新配置原始防火墙规则。 恢复原始防火墙规则会导致服务器停机。

  1. 配置自定义防火墙规则。

  2. 使用 status numbered 命令检查每条新规则的状态。

    sudo ufw status numbered
    
  3. 要备份自定义防火墙规则,请使用 cp 命令将规则移动到新文件。

    sudo cp -r /etc/ufw ~/ufw.backup
    

升级 你的 GitHub Enterprise Server 实例 后,必须重新应用自定义防火墙规则。 我们建议您创建脚本来重新应用防火墙自定义规则。

恢复默认防火墙规则

如果更改防火墙规则后出现问题,您可以通过原始备份重置规则。

警告:如果对防火墙进行更改之前未备份原始规则,请访问 GitHub Enterprise 支持 并联系我们,以获取更多帮助。

  1. 通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 要还原之前的备份规则,请使用 cp 命令将规则复制到防火墙。

    sudo cp -f ~/ufw.backup/*rules /etc/ufw
    
  3. 使用 systemctl 命令重启防火墙。

    sudo systemctl restart ufw
    
  4. 使用 ufw status 命令确认规则已恢复为默认状态。

    $ sudo ufw status
    > Status: active
    > To                         Action      From
    > --                         ------      ----
    > ghe-1194                   ALLOW       Anywhere
    > ghe-122                    ALLOW       Anywhere
    > ghe-161                    ALLOW       Anywhere
    > ghe-22                     ALLOW       Anywhere
    > ghe-25                     ALLOW       Anywhere
    > ghe-443                    ALLOW       Anywhere
    > ghe-80                     ALLOW       Anywhere
    > ghe-8080                   ALLOW       Anywhere
    > ghe-8443                   ALLOW       Anywhere
    > ghe-9418                   ALLOW       Anywhere
    > ghe-1194 (v6)              ALLOW       Anywhere (v6)
    > ghe-122 (v6)               ALLOW       Anywhere (v6)
    > ghe-161 (v6)               ALLOW       Anywhere (v6)
    > ghe-22 (v6)                ALLOW       Anywhere (v6)
    > ghe-25 (v6)                ALLOW       Anywhere (v6)
    > ghe-443 (v6)               ALLOW       Anywhere (v6)
    > ghe-80 (v6)                ALLOW       Anywhere (v6)
    > ghe-8080 (v6)              ALLOW       Anywhere (v6)
    > ghe-8443 (v6)              ALLOW       Anywhere (v6)
    > ghe-9418 (v6)              ALLOW       Anywhere (v6)