ubuntu gitlab 安全设置怎么做
小樊
39
2025-11-15 04:39:22
Ubuntu 上 GitLab 安全设置清单
一 基础网络与访问控制
- 仅开放必要端口:建议仅放行 HTTP 80/HTTPS 443 与 SSH 22。示例(UFW):
sudo ufw allow 80,443,22/tcp && sudo ufw enable。如使用云厂商安全组,同样仅放行上述端口。
- 强制 HTTPS:在 /etc/gitlab/gitlab.rb 中设置
external_url "https://your_domain",并开启 nginx['redirect_http_to_https'] = true。
- 证书部署:优先使用 Let’s Encrypt 自动证书(Certbot),证书路径通常为:
nginx['ssl_certificate'] = "/etc/letsencrypt/live/your_domain/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your_domain/privkey.pem"
修改后执行 sudo gitlab-ctl reconfigure 使配置生效。
二 身份与访问控制
- 启用 双因素认证 2FA:管理员在 Admin Area → Settings → General 启用 2FA,强制或鼓励用户开启,显著降低账号被盗风险。
- 强化 密码策略:在 GitLab 管理界面配置复杂度与定期更换策略,减少弱口令带来的风险。
- 最小权限与项目可见性:按“最小权限原则”配置 用户/组/项目 权限,公开项目按需收紧,避免敏感信息外泄。
- 系统侧加固:在 Ubuntu 上通过 PAM 等机制设置系统级密码复杂度与登录安全策略,作为账号安全的第二道防线。
三 系统与进程加固
- 保持更新:定期执行
sudo apt update && sudo apt upgrade -y 并及时 sudo gitlab-ctl reconfigure 应用安全补丁,降低被已知漏洞利用的风险。
- 运行身份与目录权限:确保 GitLab 以专用 git:git 运行,数据目录(如 /var/opt/gitlab)属主与权限正确:
sudo chown -R git:git /var/opt/gitlab && sudo chmod -R 755 /var/opt/gitlab。
- 强制 SSH 密钥登录:禁用密码登录,统一使用 SSH 密钥;用户侧私钥权限设为 600(
chmod 600 ~/.ssh/id_rsa)。
- 可选加固:在条件允许时启用 AppArmor/SELinux 等强制访问控制,减少进程越权访问的可能性。
四 数据安全与备份恢复
- 配置自动备份:在 /etc/gitlab/gitlab.rb 中设置备份目录与保留时间,例如:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800(保留 7 天)
- 定时任务备份:例如每天 02:00 执行
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
- 异地与快照:定期将备份同步到 异地存储,并结合 LVM/ZFS 快照 做快速回滚与冗余保护。
五 审计监控与人员安全
- 日志与告警:集中收集与监控 GitLab 日志(路径:/var/log/gitlab),结合 Prometheus/Grafana 建立关键指标与异常告警,及时发现暴力登录、异常克隆等行为。
- 提交安全:通过 .gitignore 与提交前扫描,避免将 密钥、证书、配置文件 等敏感信息提交入仓;必要时对必须上传的敏感文件进行加密。
- 定期审计与培训:定期审计 用户、权限、项目 与访问记录,清理闲置账号;开展 安全意识培训,防范钓鱼与社会工程学攻击。