Jenkins在CentOS上的安全配置指南
系统更新与依赖管理
安装前确保CentOS系统及依赖包为最新版本,减少已知漏洞风险:
sudo yum update -y
安装Jenkins运行必需的Java环境(推荐OpenJDK 11及以上):
sudo yum install java-11-openjdk-devel -y
java -version # 验证安装(需显示Java版本信息)
用户与权限强化
root和运维账户。/etc/login.defs文件,设置口令复杂度要求(长度≥10位,包含大小写字母、数字、特殊字符),并通过chage命令强制用户定期修改口令。chattr +i命令锁定/etc/passwd、/etc/shadow、/etc/group等口令文件,防止未授权修改:sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,仅允许wheel组成员使用su切换至root。/etc/inittab文件(或systemd配置),注释或删除ca::ctrlaltdel:/sbin/shutdown -t3 -r now行,防止误操作重启系统。安装与初始安全设置
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins
启用全局安全控制
进入Jenkins管理界面(http://<服务器IP>:8080),依次操作:
admin账号),并分配“Administrator”角色。防火墙与端口管理
使用firewalld配置防火墙,仅开放Jenkins必要端口(默认HTTP 8080、Agent通信50000):
sudo firewall-cmd --permanent --add-port=8080/tcp # Jenkins Web界面
sudo firewall-cmd --permanent --add-port=50000/tcp # Agent节点通信
sudo firewall-cmd --reload
若使用HTTPS,需开放443端口并将Jenkins绑定至443端口(需配置SSL证书)。
安全插件安装
进入“Manage Jenkins → Manage Plugins”,安装以下安全插件:
加密传输配置(HTTPS)
为避免数据传输被窃听,建议配置HTTPS:
/etc/pki/tls/certs/jenkins.crt),私钥保存至/etc/pki/tls/private/jenkins.key。URL为https://<服务器IP>,并在“Keystore”中配置证书路径。SSH安全访问配置(可选)
若需通过SSH远程管理Jenkins,可配置SSH密钥认证:
sudo yum install openssh-server -y
sudo systemctl start sshd
sudo systemctl enable sshd
sudo adduser jenkins
sudo passwd jenkins
/etc/ssh/sshd_config文件:AllowUsers jenkins # 仅允许jenkins用户登录
PasswordAuthentication no # 禁用密码登录(仅用密钥)
id_rsa.pub)添加至/home/jenkins/.ssh/authorized_keys,重启SSH服务:sudo systemctl restart sshd
定期更新与备份
Manage Jenkins → Manage Plugins → Available),及时升级至最新版本(修复已知漏洞)。/backups/jenkins),使用cron每日凌晨2点备份Jenkins主目录(/var/lib/jenkins):sudo mkdir -p /backups/jenkins
sudo crontab -e
# 添加以下内容(每日凌晨2点执行)
0 2 * * * tar -czvf /backups/jenkins/$(date +\%F).tar.gz /var/lib/jenkins
监控与审计
/var/log/jenkins/jenkins.log)及系统日志,关注异常登录、构建失败等行为;使用auditd工具监控/var/lib/jenkins目录的访问。