1. 系统基础安全加固
sudo yum update -y更新Linux系统及依赖包(如Java),及时修补已知安全漏洞;安装Jenkins前确保已安装必要依赖(如java-1.8.0-openjdk-devel或更高版本),避免因依赖缺失导致的安全风险。firewall-cmd命令仅开放Jenkins必需端口(默认HTTP 8080、Agent通信50000),例如:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload;可通过--add-rich-rule限制访问IP(如仅允许公司内网IP),减少非法访问。2. Jenkins服务安全配置
Manage Jenkins -> Security,勾选Enable security;选择Logged-in users can do anything(或更严格的授权策略),避免未授权用户查看或操作构建任务。/etc/sysconfig/jenkins文件,修改JENKINS_PORT为非标准端口(如9090),降低端口扫描攻击概率;将Jenkins启动用户改为专用用户(如jenkins_admin),并修改对应目录所有权(/var/lib/jenkins、/var/cache/jenkins等),确保最小权限原则。3. 用户权限精细化管理
Role-based Authorization Strategy插件(通过Manage Jenkins -> Manage Plugins搜索安装);进入Manage Jenkins -> Configure Global Security,选择Role-Based Strategy,创建三类角色:
dev-team-*可访问特定项目);docker-node-*可访问Docker agent节点)。4. 通信与数据传输安全
Manage Jenkins -> Configure System -> Jenkins URL(如https://jenkins.example.com),并勾选Use HTTPS,确保Web界面通信加密,防止数据泄露。5. 插件与依赖安全管理
Manage Jenkins -> Manage Plugins,检查并更新所有插件(尤其是安全相关插件,如Security Plugin);定期执行sudo yum update jenkins更新Jenkins核心,修补已知漏洞。6. 日志与监控审计
Manage Jenkins -> System Log,添加日志记录器(如org.jenkinsci.plugins),记录用户操作、构建过程及系统事件;将日志发送到集中式日志服务器(如ELK Stack),便于后续分析。7. 数据备份与恢复
/backups/jenkins),使用cron任务定期备份/var/lib/jenkins(核心数据)、/var/cache/jenkins(缓存)等目录,例如每天凌晨2点执行:0 2 * * * tar -czvf /backups/jenkins_$(date +\%F).tar.gz /var/lib/jenkins /var/cache/jenkins。8. 高级安全增强(可选)
chcon -R -t jenkins_exec_t /var/lib/jenkins),限制其对系统资源的访问,增强安全性。Manage Jenkins -> Manage Nodes,禁用JNLP端口,减少攻击面。