Jenkins在CentOS上的安全配置
导读:Jenkins在CentOS上的安全配置指南 一、系统级基础安全加固 系统更新与依赖管理 安装前确保CentOS系统及依赖包为最新版本,减少已知漏洞风险: sudo yum update -y 安装Jenkins运行必需的Java环境...
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 - 限制su命令:编辑
/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,仅允许wheel组成员使用su切换至root。 - 禁用Ctrl+Alt+Delete:修改
/etc/inittab文件(或systemd配置),注释或删除ca::ctrlaltdel:/sbin/shutdown -t3 -r now行,防止误操作重启系统。
- 禁用非必要超级用户:清理系统中无用的超级用户账户,仅保留必要的
二、Jenkins应用层安全配置
-
安装与初始安全设置
- 添加Jenkins官方仓库:导入GPG密钥并添加YUM仓库,确保软件来源可信:
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 - 安装Jenkins:通过YUM安装最新稳定版:
sudo yum install jenkins -y - 启动服务并设置开机自启:
sudo systemctl start jenkins sudo systemctl enable jenkins
- 添加Jenkins官方仓库:导入GPG密钥并添加YUM仓库,确保软件来源可信:
-
启用全局安全控制
进入Jenkins管理界面(http://< 服务器IP> :8080),依次操作:- Manage Jenkins → Configure Global Security:
- 勾选Enable security(启用安全)。
- 认证方式:选择“Built-in user database”(内置用户库)或集成LDAP/GitHub等第三方认证(推荐用于企业环境)。
- 授权策略:选择Role-Based Strategy(基于角色的访问控制),点击“Save”保存配置。
- 创建管理员用户:在“Manage Jenkins → Manage Users”中创建新用户,设置强密码(避免使用默认
admin账号),并分配“Administrator”角色。
- Manage Jenkins → Configure Global Security:
-
防火墙与端口管理
使用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”,安装以下安全插件:- Role-based Authorization Strategy:细化权限控制(如按项目、团队分配权限)。
- Matrix Authorization Strategy:支持矩阵式权限分配(用户/组×操作×资源)。
- OWASP Markup Formatter:防止XSS攻击(用于构建日志或描述文本)。
- Credentials Binding Plugin:安全管理敏感凭证(如密码、API密钥)。
-
加密传输配置(HTTPS)
为避免数据传输被窃听,建议配置HTTPS:- 申请SSL证书(可通过Let’s Encrypt免费获取)。
- 将证书上传至服务器(如
/etc/pki/tls/certs/jenkins.crt),私钥保存至/etc/pki/tls/private/jenkins.key。 - 进入“Manage Jenkins → Configure System”,找到“Jenkins Location”部分,修改
URL为https://< 服务器IP>,并在“Keystore”中配置证书路径。
-
SSH安全访问配置(可选)
若需通过SSH远程管理Jenkins,可配置SSH密钥认证:- 安装OpenSSH服务器:
sudo yum install openssh-server -y sudo systemctl start sshd sudo systemctl enable sshd - 创建Jenkins专用用户并设置密码:
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
- 安装OpenSSH服务器:
三、持续安全维护
-
定期更新与备份
- 更新Jenkins及插件:每周检查Jenkins更新(
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
- 更新Jenkins及插件:每周检查Jenkins更新(
-
监控与审计
- 启用日志记录:进入“Manage Jenkins → System Log”,添加日志记录器(如“ALL”级别),记录所有操作。
- 定期审计:检查Jenkins日志(
/var/log/jenkins/jenkins.log)及系统日志,关注异常登录、构建失败等行为;使用auditd工具监控/var/lib/jenkins目录的访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在CentOS上的安全配置
本文地址: https://pptw.com/jishu/739337.html
