关于 your GitHub Enterprise Server instance 的防火墙
GitHub Enterprise Server 在虚拟设备上使用 Ubuntu 的简单防火墙 (UFW)。 更多信息请参阅 Ubuntu 文档中的“UFW”。 GitHub Enterprise Server 在每次发布时都会自动更新允许服务的防火墙允许名单。
安装 GitHub Enterprise Server 之后,所有必要的网络端口都会自动打开,以接受连接。 每个非必要的端口都会自动配置为 deny
,默认传出策略会配置为 allow
。 会为任何新连接启用状态跟踪;这些连接通常是 SYN
位置 1 的网络数据包。 更多信息请参阅“网络端口”。
UFW 防火墙还会打开 GitHub Enterprise Server 所需的其他多个端口才能正常运行。 更多关于 UFW 规则集的信息,请参阅 UFW 自述文件。
查看默认防火墙规则
- SSH 连接到 your GitHub Enterprise Server instance。
$ 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 支持 或 GitHub 高级支持 联系,以重新配置原始防火墙规则。 恢复原始防火墙规则会导致服务器停机。
- 配置自定义防火墙规则。
- 使用
状态编号
命令检查每个新规则的状态。$ sudo ufw status numbered
- 要备份自定义防火墙规则,请使用
cp
命令将规则移至新文件。$ sudo cp -r /lib/ufw ~/ufw.backup
升级 your GitHub Enterprise Server instance 后,您必须重新应用自定义防火墙规则。 我们建议您创建脚本来重新应用防火墙自定义规则。
恢复默认防火墙规则
如果更改防火墙规则后出现问题,您可以通过原始备份重置规则。
警告:如果您对防火墙进行更改之前未备份原始规则,请联系 GitHub Enterprise 支持 或 GitHub 高级支持 获取更多帮助。
- SSH 连接到 your GitHub Enterprise Server instance。
$ ssh -p 122 admin@HOSTNAME
- 要恢复之前的备份规则,请使用
cp
命令将规则复制到防火墙。$ sudo cp -f ~/ufw.backup/*rules /lib/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)