Jenkins 是一種流行的持續集成與持續交付(CI/CD)工具,廣泛應用于自動化構建、測試和部署流程。然而,為了確保其在生產環境中的安全性,需要進行細致的配置。本文將詳細介紹如何在 Debian 系統上安裝和配置 Jenkins,并重點討論安全相關的配置步驟。
確保你的 Debian 系統滿足以下要求:
Debian 10 或更新版本
推薦使用 OpenJDK 11 或更高版本
確保系統已更新至最新版本:
sudo apt update && sudo apt upgrade -y
添加 Jenkins 倉庫:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
安裝依賴:
sudo apt install -y daemon
安裝 Jenkins:
sudo apt install jenkins -y
啟動 Jenkins 服務:
sudo systemctl start jenkins
啟用 Jenkins 開機自啟:
sudo systemctl enable jenkins
檢查 Jenkins 狀態:
sudo systemctl status jenkins
第一次訪問 Jenkins 時,需要輸入初始管理員密碼??梢酝ㄟ^以下命令找到初始密碼:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
成功解鎖 Jenkins 后,建議安裝以下插件:
進入 Manage Jenkins -> Plugin Manager -> Advanced,將 Update Site 替換為國內鏡像(如清華源),以加速下載。
插件安裝完成后,創建一個新的管理員用戶,填寫必要的用戶名、密碼和聯系信息,并保存設置。
進入 Manage Jenkins -> Configure Global Security,勾選 Enable security,啟用安全配置。
在 Manage Jenkins -> Security -> Enable security 中,確保 Logged-in users can do anything 已被勾選,以禁用匿名用戶訪問。
如果服務器啟用了防火墻(如 UFW),確保允許 HTTP 和 HTTPS 流量通過:
sudo ufw allow 8080
sudo ufw allow 443
為防止密碼窮舉攻擊,建議使用 SSH 密鑰對進行身份認證。將客戶端生成的公鑰添加到服務器端用戶的 ~/.ssh/authorized_keys 文件中。
編輯 /etc/ssh/sshd_config 文件,將 PermitRootLogin 設置為 no,禁止 root 用戶遠程登錄:
PermitRootLogin no
在 /etc/ssh/sshd_config 中設置 PermitEmptyPasswords no,禁止使用空密碼登錄:
PermitEmptyPasswords no
通過以上步驟,你可以有效地提高 Jenkins 在 Debian 系統上的安全性,確保持續集成與持續交付流程的順利進行。