加固 Debian 上的 Jenkins 是提升 CI/CD 环境安全性的关键步骤。以下是一套从系统到 Jenkins 本身的加固建议,按优先级和层次组织,适合生产环境。
确保 Jenkins 不是以 root 运行。
ps aux | grep jenkins
如果不是 jenkins 用户:
sudo systemctl edit jenkins
确认:
User=jenkins
Group=jenkins
sudo chsh -s /usr/sbin/nologin jenkins
sudoers 白名单setuid只允许可信 IP 访问 Jenkins。
sudo ufw allow from 10.0.0.0/8 to any port 8080
sudo ufw enable
进入:
Jenkins → Manage Jenkins → Security
✅ 勾选 Enable security
推荐顺序:
路径:
Manage Jenkins → Security → Authorization
✅ 选择 Matrix-based security 或 Role-Based Strategy
建议插件:
Role-based Authorization Strategy
Anonymous 的:
不要直接暴露 HTTP 8080。
server {
listen 443 ssl;
server_name jenkins.example.com;
ssl_certificate /etc/ssl/certs/jenkins.crt;
ssl_certificate_key /etc/ssl/private/jenkins.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
并关闭外部直接访问 8080。
Manage Jenkins → Security
✅ 启用 CSRF Protection
sudo apt update
sudo apt upgrade jenkins
在 Web UI:
Manage Jenkins → Manage Plugins → Available/Updates
⚠️ 插件是 Jenkins 最大攻击面
高风险功能:
✅ 建议:
sudoManage Jenkins → Manage Nodes
插件推荐:
Audit Trail
记录:
将 Jenkins 日志接入:
ls -ld /var/lib/jenkins
建议:
drwxr-x--- jenkins jenkins
备份目录:
/var/lib/jenkins
/etc/default/jenkins
工具:
thinBackup 插件sudo apt update && sudo apt upgrade
| 项目 | 状态 |
|---|---|
| 非 root 运行 | ✅ |
| 启用安全 | ✅ |
| HTTPS | ✅ |
| 无匿名权限 | ✅ |
| 插件最小化 | ✅ |
| 禁用 Script Console | ✅ |
| 定期更新 | ✅ |
| 审计日志 | ✅ |
如果你愿意,我可以:
直接告诉我你的部署方式即可。