溫馨提示×

ubuntu下gitlab如何進行安全加固

小樊
46
2025-09-29 21:10:15
欄目: 智能運維

Ubuntu下GitLab安全加固指南

1. 基礎安全配置

1.1 配置防火墻

使用ufw(Ubuntu默認防火墻工具)限制僅允許必要端口訪問,防止非法IP連接GitLab服務。執行以下命令:

sudo ufw allow http  # 允許HTTP(80端口,若使用HTTPS可省略)
sudo ufw allow https # 允許HTTPS(443端口)
sudo ufw allow OpenSSH # 允許SSH(22端口,用于遠程管理)
sudo ufw enable # 啟用防火墻

若使用iptables,可添加規則允許GitLab端口并通過iptables-save保存規則,確保重啟后生效。

1.2 啟用HTTPS加密

使用Let’s Encrypt免費證書或自有證書,配置GitLab的external_urlhttps://格式,并指定證書路徑。編輯/etc/gitlab/gitlab.rb文件:

external_url 'https://your-domain.com' # 替換為你的域名或IP
nginx['ssl_certificate'] = "/etc/letsencrypt/live/your-domain.com/fullchain.pem" # 證書路徑
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your-domain.com/privkey.pem" # 私鑰路徑

執行sudo gitlab-ctl reconfigure使配置生效,重啟GitLab服務。

1.3 配置SSH密鑰認證

禁用密碼認證,強制使用SSH密鑰登錄,提升賬戶安全性。編輯/etc/ssh/sshd_config文件:

PubkeyAuthentication yes # 啟用公鑰認證
PasswordAuthentication no # 禁用密碼認證
Port 2222 # 可選:更改默認SSH端口(減少自動化攻擊)

重啟SSH服務:sudo systemctl restart ssh。
為用戶生成SSH密鑰對(若未生成):ssh-keygen -t rsa -b 4096 -C "your_email@example.com",將公鑰(id_rsa.pub)添加到GitLab賬戶的SSH密鑰設置中。

1.4 強制使用強密碼策略

通過PAM模塊設置密碼復雜度要求(至少8位,包含大小寫字母、數字和特殊字符),并定期提醒用戶更改密碼。編輯/etc/pam.d/common-password文件,添加或修改以下行:

password requisite pam_pwquality.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

在GitLab管理后臺(Admin Area → Settings → Password Policy)啟用密碼策略,要求用戶定期更新密碼。

1.5 定期更新GitLab及依賴

及時安裝GitLab安全補丁,修復已知漏洞。執行以下命令更新GitLab:

sudo apt update
sudo apt upgrade gitlab-ce # 升級GitLab社區版
sudo gitlab-ctl reconfigure # 重新配置
sudo gitlab-ctl restart # 重啟服務

同時,定期更新Ubuntu系統和依賴包(sudo apt update && sudo apt upgrade)。

2. 高級安全措施

2.1 啟用雙因素認證(MFA)

為GitLab賬戶添加MFA,提升賬戶安全性。在GitLab管理后臺(Admin Area → Settings → Two-Factor Authentication)啟用MFA,選擇認證方式(如TOTP、短信或硬件令牌)。用戶登錄時需輸入驗證碼,防止賬戶被盜。

2.2 限制文件上傳

通過.gitignore文件忽略敏感文件(如*.pem、*.key、*.env),防止敏感信息上傳至倉庫。在項目根目錄創建或編輯.gitignore文件,添加以下內容:

*.pem
*.key
*.env
*.secret

在GitLab管理后臺(Admin Area → Settings → Repository)啟用“Scan for sensitive files”功能,自動檢測并阻止敏感文件上傳。

2.3 監控與日志審計

開啟GitLab日志記錄(默認開啟),定期檢查訪問日志和錯誤日志,及時發現異常行為。使用LogwatchFail2ban工具自動化監控:

sudo apt install logwatch fail2ban # 安裝工具
sudo systemctl enable logwatch # 啟用Logwatch
sudo systemctl start logwatch

配置Fail2ban監控SSH和GitLab登錄失敗次數,自動封禁惡意IP。

2.4 系統加固

  • 禁用root登錄:編輯/etc/ssh/sshd_config文件,設置PermitRootLogin no,禁止root用戶直接SSH登錄,使用普通用戶+sudo管理服務器。
  • 啟用SELinux/AppArmor:Ubuntu默認使用AppArmor,編輯/etc/apparmor.d/usr.sbin.gitlab-runsvdir文件,添加自定義規則限制GitLab進程權限,防止越權訪問。

3. 用戶與權限管理

3.1 精細控制訪問權限

通過GitLab的用戶組、項目角色(Guest、Reporter、Developer、Maintainer、Owner)精細分配權限,避免過度授權。例如,限制Guest角色僅能查看項目,Developer角色可推送代碼,Maintainer角色可合并請求。

3.2 定期審計用戶賬戶

定期檢查GitLab用戶列表(Admin Area → Users),移除離職或不再需要的用戶,禁用閑置賬戶(超過90天未登錄)。通過“User Activity”功能查看用戶操作記錄,發現異常行為。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女