对于一般的加固指南,请参阅主要加固文档

你可以通过网络界面控制极狐GitLab 实例的加固建议。

系统钩子

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 系统钩子

在一个典型的加固环境中,内部信息不会在系统外部传输或存储。在离线环境系统中,这是默认的。系统钩子提供了一种方式,使环境中的本地事件可以根据触发器与环境之外的系统进行信息交流。

这种能力的使用场景是支持的,特别是通过远程系统进行系统监控。然而,在部署系统钩子时必须非常小心。对于加固系统,如果它们被设计为离线环境,则必须强制执行允许相互通信的受信任系统的周边,因此任何钩子(系统、网络或文件)只能与这些受信任系统通信。强烈建议通过系统钩子进行通信时使用 TLS。

推送规则

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 推送规则

确保选择以下项目:

  • 拒绝未验证用户
  • 不允许用户使用 git push 移除 Git 标签
  • 检查提交作者是否为极狐GitLab 用户
  • 防止推送密钥文件

这些调整有助于限制推送到已建立和授权的用户。

部署密钥

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 部署密钥

公共部署密钥用于为实例上的所有项目提供读取或读写访问权限,旨在为远程自动化访问项目。在加固环境中不应使用公共部署密钥。如果你必须使用部署密钥,请使用项目部署密钥。有关更多信息,请参阅部署密钥项目部署密钥的文档。

通用

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 设置 > 通用

可以在 4 个部分中进行加固调整。

可见性和访问控制

以下设置的默认值是 私有

  • 默认项目可见性
  • 默认代码片段可见性
  • 默认群组可见性

只有被授予特定访问权限的用户才能访问这些资源。这可以在需要时或在其创建时进行调整。这有助于防止意外或恶意的信息泄露。

根据你的安全策略和姿态,你可能希望将受限可见性级别设置为公开,因为这可以防止未认证用户查看用户配置文件。

导入来源中,仅选择你真正需要的来源。

一个典型的部署将启用的 Git 访问协议设置为SSH 和 HTTP(S) 二者,但是如果你的用户没有使用其中一种 Git 协议,请相应地设置为仅 SSH仅 HTTP(S)。这有助于缩小攻击面。

对于 SSH 密钥类型,优先选择以下几种:ED25519(和 ED25519-SK)、RSAECDSA(和 ECDSA-SK),按此顺序。当 RSA 设置为 2048 位或更高时,ED25519 被认为与 RSA 一样安全,但 ED25519 密钥更小且算法更快。

ED25519-SKECDSA-SK 均以 -SK 结尾,代表“安全密钥”。-SK 类型兼容 FIDO/U2F 标准,适用于硬件令牌,例如 YubiKeys。

DSA 应设置为“禁止使用”。DSA 存在已知缺陷,许多密码学家对使用 ECDSA 持怀疑态度并不支持。

如果极狐GitLab 在 FIPS 模式下运行,请使用以下设置:

  • 如果运行在 FIPS 模式下:
    • 使用 RSA,设置为至少 2048 位
    • 使用 ECDSA(和 ECDSA-SK),设置为至少 256 位
    • 将所有其他密钥类型设置为禁止使用RSAECDSA 均获准用于 FIPS。
  • 如果不在 FIPS 模式下运行,必须使用 ED25519,并且可以使用 RSA
    • 设置 ED25519(和 ED25519-SK)为至少 256 位
    • 如果使用 RSA,设置为至少 2048 位
    • 将所有其他密钥类型设置为禁止使用
  • 如果你正在为新用户群组设置实例,请使用最大位数设置定义用户 SSH 密钥策略以增强安全性。

在加固环境中,通常不需要 RSS 源,在源令牌中,选择禁用源令牌复选框。

如果你的所有用户都来自特定的 IP 地址,请使用全局允许的 IP 范围专门允许只有这些地址。

有关可见性和访问控制的更多详细信息,请参阅可见性和访问控制。有关 SSH 设置的信息,请参阅SSH 密钥限制

帐户和限制

出于加固目的,确保未选中启用 Gravatar旁边的复选框。应限制所有多余的通信,并且在某些环境中可能会受到限制。帐户头像可以由用户手动上传。

本节中的设置旨在帮助对用户实施自定义实现的特定标准。由于各种场景过多且变化多样,因此你应查看帐户和限制设置文档,并应用更改以实施你自己的策略。

注册限制

确保在你的加固实例上禁用开放注册。确保未选中启用注册复选框。

电子邮件确认设置中,确保选择了严格。现在在授予访问权限之前强制用户验证其电子邮件地址。

密码最小长度(字符数)的默认设置为 12,只要使用其他认证技术,这应该没问题。密码应复杂,因此确保选中以下四个复选框:

  • 要求数字
  • 要求大写字母
  • 要求小写字母
  • 要求符号

如果你的所有用户都属于使用特定域名作为电子邮件地址的同一组织,则在允许注册的域名中列出该域名。这可以防止其他域名的电子邮件地址用户注册。

有关更详细的信息,请参阅注册限制

登录限制

所有用户都应启用双因素认证(2FA)。确保选中双因素认证(2FA)旁边的复选框。

双因素宽限期的默认设置为 48 小时。应将其调整为更低的值,例如 8 小时。

确保选中启用管理员模式旁边的复选框,以便管理员模式处于活动状态。这要求具有管理员访问权限的用户在执行管理任务时必须使用额外的认证,从而对用户强制执行额外的 2FA。

未知登录的电子邮件通知中,确保选中启用电子邮件通知。这会在从未识别的位置发生登录时向用户发送电子邮件。

有关更详细的信息,请参阅登录限制

集成

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 设置 > 集成

通常,只要管理员控制和监控使用情况,在加固环境中集成是可以的。要小心那些允许从外部系统触发操作和流程的集成,因为这些操作和流程通常需要你限制或审核的访问级别,如果由本地流程或认证用户执行。

指标和分析

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 设置 > 指标和分析

加固的主要关注点是使用统计

  • 你应该确保选中启用版本检查。这会检查你是否运行最新版本的极狐GitLab,由于新版本和安全补丁频繁推出,这有助于你保持最新状态。

  • 如果你的环境是隔离的,或者你的组织要求限制数据收集和统计报告给软件供应商,你可能需要禁用启用服务 ping功能。有关收集的数据以帮助你做出明智决策的更多信息,请参阅服务 ping

网络

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 设置 > 网络

对于任何启用速率限制的设置,确保已选中。默认值应该没问题。此外,有许多启用访问的设置,所有这些设置都应清除。

在进行这些调整后,你可以微调系统以满足性能和用户需求,这可能需要禁用和调整速率限制或启用访问。以下是一些需要注意的事项:

  • 出站请求中,如果你需要开放对有限数量系统的访问,可以通过指定 IP 地址或主机名来限制对这些系统的访问。同样在此部分中,如果你允许任何访问,请确保选中实施 DNS 反绑定攻击保护

  • 备注速率限制用户 API 速率限制下,如果需要,可以排除特定用户。