在Debian系統上設置GitLab的安全配置是一個涉及多個方面的過程,包括系統更新、安裝必要的軟件包、配置網絡設置、設置訪問控制等。以下是一些關鍵步驟:
確保系統和所有軟件包都是最新版本,以修補已知的安全漏洞。
sudo apt update && sudo apt upgrade
安裝GitLab所需的基本依賴軟件包,如 curl
、openssh-server
、ca-certificates
和 postfix
(用于郵件服務)。
sudo apt install curl openssh-server ca-certificates tzdata perl
使用 iptables
或 ufw
(Uncomplicated Firewall)來限制對GitLab端口的訪問。
使用iptables:
sudo apt-get install iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允許HTTP流量
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允許HTTPS流量
sudo iptables -A INPUT -j DROP # 拒絕所有其他入站連接
sudo service iptables save
sudo service iptables start
使用ufw:
sudo apt-get install ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
禁止root用戶通過SSH登錄,使用普通用戶登錄后再切換到root。啟用公鑰認證,禁用密碼登錄。
編輯 /etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
將以下行修改為:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart sshd
修改GitLab的外部URL以使用HTTPS:
編輯 /etc/gitlab/gitlab.rb
文件,找到并修改以下配置項:
external_url 'https://yourdomain.com'
保存并退出編輯器。
為GitLab設置SSL證書:
使用Let’s Encrypt免費證書。安裝Certbot及其Nginx插件:
sudo apt update
sudo apt install certbot python3-certbot-nginx
獲取并安裝SSL證書:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
這個命令會自動配置Nginx并安裝SSL證書。你需要將 yourdomain.com
和 www.yourdomain.com
替換為你的實際域名。
重新配置并重啟GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
創建普通用戶并限制其對GitLab資源的訪問權限。遵循最小權限原則,刪除不必要的默認用戶和用戶組。
sudo useradd -m git
sudo usermod -aG sudo git yourusername
定期檢查GitLab的日志文件,以便及時發現和響應任何異?;顒?。
sudo tail -f /var/log/gitlab/gitlab-rails/production.log