关于 你的 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,因为这会使某些故障排除问题复杂化。
查看默认防火墙规则
-
通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
若要查看默认防火墙规则,请使用
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 支持 并联系我们,以重新配置原始防火墙规则。 恢复原始防火墙规则会导致服务器停机。
-
配置自定义防火墙规则。
-
使用
status numbered
命令检查每条新规则的状态。sudo ufw status numbered
-
要备份自定义防火墙规则,请使用
cp
命令将规则移动到新文件。sudo cp -r /etc/ufw ~/ufw.backup
升级 你的 GitHub Enterprise Server 实例 后,必须重新应用自定义防火墙规则。 我们建议您创建脚本来重新应用防火墙自定义规则。
恢复默认防火墙规则
如果更改防火墙规则后出现问题,您可以通过原始备份重置规则。
警告:如果对防火墙进行更改之前未备份原始规则,请访问 GitHub Enterprise 支持 并联系我们,以获取更多帮助。
-
通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
要还原之前的备份规则,请使用
cp
命令将规则复制到防火墙。sudo cp -f ~/ufw.backup/*rules /etc/ufw
-
使用
systemctl
命令重启防火墙。sudo systemctl restart ufw
-
使用
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)