温馨提示×

gitlab在ubuntu上的安全策略

小樊
46
2025-12-18 19:23:29
栏目: 智能运维

Ubuntu 上 GitLab 的安全策略清单

一 基础网络与传输安全

  • 防火墙仅开放必要端口:建议仅放行 HTTP 80/HTTPS 443SSH 22,并启用速率限制降低暴力破解风险。示例(UFW):sudo ufw default denysudo ufw allow httpsudo ufw allow httpssudo ufw limit ssh/tcpsudo ufw enable。如使用云厂商安全组,同样遵循最小化放通原则。
  • 全站启用 HTTPS/TLS:将 external_url 设为 https://,并配置自动重定向与有效证书(如 Let’s Encrypt)。示例:external_url "https://git.example.com"nginx['redirect_http_to_https'] = truenginx['ssl_certificate'] = "/etc/letsencrypt/live/git.example.com/fullchain.pem"nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/git.example.com/privkey.pem";执行 sudo gitlab-ctl reconfigure 使配置生效。

二 身份与访问控制

  • 强制 SSH 公钥认证:禁用密码登录,统一使用密钥登录 Git 操作;用户侧确保私钥权限为 600,并妥善保管。
  • 账户安全策略:启用 双因素认证 2FA(Admin Area → Settings → General),并在 Sign-in restrictions 中开启邮箱验证、设置失败登录锁定密码复杂度/有效期,降低账户被滥用风险。
  • 最小权限与定期审计:按“最小权限原则”配置项目/组的 Owner/Maintainer/Developer 等角色;定期清理过期或离职账号的访问;结合 GitLab 审计日志与系统日志进行核查。

三 系统与进程加固

  • 运行身份与文件权限:确保 GitLab 以专用系统用户(如 git:git)运行;关键目录(如 /var/opt/gitlab)属主与权限正确,避免越权访问。
  • 强制 HTTPS 访问 与端口收敛:对外仅暴露 443,将 22 仅用于 SSH;如需变更 SSH 端口,应同步调整 gitlab_rails['gitlab_shell_ssh_port'] 并重启服务。
  • 主机加固:保持 Ubuntu 与 GitLab及时更新/补丁;启用 UFW 默认拒绝并仅放行必要端口;按需启用 AppArmor/SELinux 等强制访问控制,减少攻击面。
  • 内核与网络参数:通过 /etc/sysctl.d/99-gitlab-hardening.conf 强化内核安全(示例:kernel.kptr_restrict=2net.ipv4.conf.all.rp_filter=1net.ipv4.conf.all.accept_redirects=0net.core.bpf_jit_harden=2 等),执行 sudo sysctl --system 生效。

四 数据安全与备份

  • 自动化备份策略:配置备份目录与保留周期(如 gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"gitlab_rails['backup_keep_time'] = 604800 表示保留 7 天),并通过 crontab 定时执行(如 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create)。
  • 异地与快照容灾:定期将备份同步至异地存储/对象存储;在具备条件的环境使用 LVM/ZFS 快照作为快速回滚手段。
  • 恢复演练:定期验证备份的可用性与完整性,确保真实故障场景下可快速恢复。

五 运行监控与审计

  • 日志集中与告警:启用并集中 GitLab 日志(如 /var/log/gitlab 下各组件日志),结合 Prometheus/Grafana 建立监控与阈值告警,覆盖服务可用性、登录异常、CI 资源使用等关键指标。
  • 合规审计:启用 账户与权限变更审计、关键操作审计,并保留可追溯记录;对异常行为(频繁失败登录、权限突增等)设置告警处置流程

0