温馨提示×

如何在centos上安全部署jenkins

小樊
45
2025-11-22 03:06:17
栏目: 智能运维

在 CentOS 上安全部署 Jenkins 的实操指南

一 环境准备与最小化安装

  • 更新系统并安装 Java 11(推荐)或 Java 8,验证版本:java -version
  • 添加 Jenkins 官方仓库并导入 GPG 密钥,安装 RPM 包:
    • 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 -y jenkins
  • 启动服务并设为开机自启:sudo systemctl start jenkins && sudo systemctl enable jenkins
  • 防火墙放行访问端口(默认 8080):sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 获取初始管理员密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword,随后通过 http://<服务器IP>:8080 完成初始化。

二 系统与服务加固

  • 以最小权限运行:保持服务以 jenkins 系统用户运行,避免以 root 运行 Jenkins 进程(不建议将运行用户改为 root)。
  • 目录与文件权限:确保 /var/lib/jenkins 归属 jenkins 用户,权限最小化(例如 chown -R jenkins:jenkins /var/lib/jenkins,谨慎设置 755/750 等)。
  • 系统登录安全:仅保留必要账户、设置强口令策略、限制 su 使用、设置 root 会话超时(如 TMOUT=300)、禁用 Ctrl-Alt-Delete 重启、必要时对关键文件设置不可变属性(如 chattr +i /var/lib/jenkins/secrets/initialAdminPassword,变更前务必评估备份与恢复流程)。
  • 网络安全:仅开放必要端口(如 808050000 代理端口),并限制来源 IP(如使用 firewalld 的富规则或云安全组)。

三 Jenkins 安全配置

  • 启用安全与认证:在 Manage Jenkins → Security 勾选 Enable security,选择 Logged-in users can do anything,创建管理员并设置强密码,禁用匿名访问。
  • 代理与端口:如需修改默认端口,编辑 /etc/sysconfig/jenkins 中的 JENKINS_PORT;如部署 Jenkins Agent,在防火墙放行 50000/tcp
  • 通信加密:为管理界面启用 HTTPS/TLS(可使用反向代理如 Nginx/Apache 或云负载均衡的证书),避免明文传输凭据与构建产物。
  • 安全特性:启用 CSRF 保护;在插件管理中仅安装必要插件,并定期更新 Jenkins 与插件 以获取安全修复。

四 备份与监控

  • 备份策略:定期备份 $JENKINS_HOME(如 /var/lib/jenkins),建议采用全量+增量方式,保留多份历史副本并异地存放;可结合脚本与 cron 实现自动化(变更前先演练恢复流程)。
  • 日志与审计:持续关注 /var/log/jenkins/jenkins.log,并结合系统日志与监控告警,及时发现异常登录、权限变更与构建异常。

五 快速安全清单

项目 建议
Java 版本 使用 OpenJDK 11(或至少 Java 8
运行用户 jenkins 用户运行,避免 root
访问端口 仅开放 8080(Web)与 50000(Agent)
身份认证 启用安全、禁用匿名、强密码与 MFA(可用插件)
加密通信 启用 HTTPS/TLS
防火墙 仅放行业务所需来源 IP 与端口
插件与更新 最小化安装、及时更新
备份 定期备份 $JENKINS_HOME 并验证可恢复
日志 集中收集与告警,定期审计

0