我是否需要为 Gitlab 监听的每个端口添加规则?

我是否需要为 Gitlab 监听的每个端口添加规则?

我有一台 Gitlab 服务器,它是 VMWare Esxi 上的 Ubuntu 18.04 虚拟机。我想在这台机器上启用防火墙,为此我安装了gufw。问题是,当我运行sudo netstat -ntpl | grep LISTEN命令时,我可以看到许多端口正在监听。由于 Gitlab,许多端口正在监听。例如,组件 Gitlab 导出器正在监听端口 9168,还有其他端口也在监听。

Gitlab 端口的完整列表

如果我使用 开启防火墙gufw,是否需要为80 (HTTP)22 (SSH)仅添加传入规则?还是需要为上述链接中提到的不同组件打开不同的端口?

这是一个非常简单的 Gitlab 服务器安装,其目的只是版本控制。我不需要 CI/CD 等高级功能。

答案1

默认情况下,如果您在生产中托管服务器并面向公共互联网,那么您实际上应该只允许从外部访问以下端口:

  • 80/443:通过 HTTP 进行 Web 访问 ( https://gitlab.example.com/)
  • 22:通过 SSH 访问 Git([email protected]/…

GitLab 内部需要大多数其他端口*,以便服务之间进行通信。例如,查询数据库,或将指标发送到用于内部性能监控的 Prometheus。但这些端口不应该从外部访问,而且——如果我没记错的话——无论如何都应该只绑定到本地主机,所以即使没有设置防火墙,你也不应该能够从外部访问它们。

* 例如,容器注册表可以绑定到另一个端口,以便您可以使用相同的主机名访问它,例如gitlab.example.com:5050,而不需要另一条路径。

相关内容