温馨提示×

Ubuntu上GitLab安全设置怎么做

小樊
43
2025-12-16 19:38:37
栏目: 智能运维

Ubuntu上GitLab安全设置清单

一 基础网络与系统加固

  • 仅开放必要端口:建议仅放行 TCP 22(SSH)80(HTTP)443(HTTPS)。示例(UFW):sudo ufw allow http && sudo ufw allow https && sudo ufw allow OpenSSH && sudo ufw enable。如使用云厂商安全组,同样仅放行上述端口。
  • 禁用不必要服务与端口转发,减少攻击面。
  • 系统与软件保持更新:sudo apt update && sudo apt upgrade -y,及时修补漏洞。
  • 启用强制 HTTPS:在 /etc/gitlab/gitlab.rb 中设置 external_url "https://你的域名",并开启 nginx['redirect_http_to_https'] = true
  • 配置 TLS/SSL 证书:优先使用 Let’s Encrypt 自动证书,示例路径:/etc/letsencrypt/live/你的域名/fullchain.pemprivkey.pem
  • 如必须使用自签证书,确保证书与私钥权限最小化(如私钥 600),并正确指向 nginx['ssl_certificate']nginx['ssl_certificate_key']
  • 修改默认 SSH 端口 并禁用密码登录(见下一节),降低暴力破解风险。

二 身份与访问控制

  • 强制 SSH 密钥登录:在 GitLab 用户设置中添加 SSH 公钥;服务器端建议禁用密码认证,仅保留密钥认证,并可将 SSH 端口从 22 改为非默认端口(需同步更新防火墙与客户端)。
  • 启用 双因素认证(2FA):管理员在 Admin Area → Settings → General 启用 2FA,强制或鼓励用户开启,提升账户安全。
  • 强化 密码策略:启用复杂度与定期更换策略(如长度、字符集、周期),降低弱口令风险。
  • 最小权限与定期审计:按“最小权限原则”配置项目/组的 访问级别(Guest/Reporter/Developer/Maintainer/Owner),定期清理离职人员与过期权限;必要时进行 安全审查 与代码审计。

三 数据安全与备份

  • 配置自动备份:在 /etc/gitlab/gitlab.rb 中设置备份目录与保留时间,例如:
    • gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
    • gitlab_rails['backup_keep_time'] = 604800(保留 7 天
      使用 sudo gitlab-ctl reconfigure 使配置生效。
  • 定时任务备份:例如每日 02:00 执行
    • 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
  • 异地与快照:定期将备份同步到 异地存储(如 rsync),并结合 LVM/ZFS 快照 做快速回滚与一致性保护。
  • 恢复演练:定期验证备份可用性,确保灾难恢复流程可靠。

四 运行环境与合规

  • 运行账户与目录权限:确保 GitLab 以 git:git 运行,关键目录(如 /var/opt/gitlab)权限最小化,示例:sudo chown -R git:git /var/opt/gitlab && sudo chmod -R 755 /var/opt/gitlab
  • 系统加固:启用 AppArmor/SELinux(Ubuntu 常用 AppArmor),按需配置策略,减少提权与越权风险。
  • 审计与监控:启用 auditd 审计关键文件与命令;结合 Prometheus/Grafana 监控 GitLab 组件与系统指标,设置告警规则,及时发现异常。
  • 安全运维:保持 GitLab 版本与依赖更新,定期查看 /var/log/gitlab 日志,开展 日志分析与异常检测

五 快速检查清单

项目 建议配置 验证方式
访问端口 仅开放 22/80/443 sudo ufw status 或云安全组规则
HTTPS external_url "https://..." + 自动重定向 浏览器访问是否强制跳转 HTTPS
证书 Let’s Encrypt 或合规自签 证书路径与有效期、浏览器锁标识
SSH 禁用密码、仅密钥;必要时改端口 本地 ssh -T git@域名 测试
2FA 管理员启用并推广用户开启 用户个人设置查看 2FA 状态
备份 定时任务 + 异地/快照 检查 /var/opt/gitlab/backups 与异地副本
权限 最小权限、定期审计 项目/组成员与权限清点
更新与监控 及时更新、监控告警 apt list --upgradable、Grafana/Prometheus 告警

0