你花了一周精心编写的代码,就因为Jenkins没设密码,在深夜被莫名其妙地部署到了生产环境——这种噩梦只需要一杯咖啡的时间就能避免。
一、为什么你的Jenkins需要安全防护?
Jenkins的强大毋庸置疑,但能力越大,责任越大——安全责任。默认安装的Jenkins就像刚出厂的手机,基本功能都有,但缺少个性化设置和保护。在Jenkins 2.0之前,许多安装实例默认就没有启用安全配置,导致了无数潜在风险。
当你把Jenkins暴露在公司网络甚至互联网上时,没有安全防护就等同于公开邀请陌生人进入你的CI/CD流程。持续集成不应该变成持续风险。
安全防护的核心目标很简单:确保只有合适的人才能做合适的事。开发者应该能够触发构建和查看结果,但不一定需要权限去修改系统配置或访问敏感凭证。系统管理员则需要全局控制权。通过精细的权限划分,你不仅提升了安全性,还降低了人为错误导致的生产事故。
二、Jenkins安全从安装开始
1. 安全安装Jenkins
安全的故事要从安装讲起。假设我们在Linux环境下操作,首先需要安装Java环境,因为Jenkins是基于Java开发的。
# 更新系统包管理器
sudo apt update
# 安装Java 11(Jenkins要求Java 8或11,推荐11)
sudo apt install openjdk-11-jdk
# 导入Jenkins仓库的GPG密钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 添加Jenkins软件仓库
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# 安装Jenkins
sudo apt update
sudo apt install jenkins
安装完成后,Jenkins服务会自动启动,默认监听在8080端口。你可以通过http://你的服务器IP:8080来访问它。
2. 基础系统加固
安装完成后,别急着欢呼,先进行一些基础安全设置:
# 防火墙设置,仅允许可信IP访问Jenkins端口(Ubuntu)
sudo ufw allow from 192.168.1.0/24 to any port 8080
# 或者,如果暂时无法限制IP范围,至少限制端口暴露
sudo ufw allow 8080/tcp
# 创建专用的Jenkins用户,避免使用root权限运行
sudo useradd -r -s /bin/false jenkins
通过这些基础步骤,你已经为Jenkins建立了一个相对安全的运行环境。安全就像洋葱,需要一层一层地构建,现在我们已经有了第一层防护。
三、激活Jenkins安全的核心配置
1. 初始安全设置
当你第一次访问Jenkins时,它会要求你输入初始管理员密码。这个密码通常位于/var/lib/jenkins/secrets/initialAdminPassword。输入后,Jenkins会引导你进行初步配置。
真正重要的是完成安装后,立即进入“Manage Jenkins” > “Configure Global Security”来启用安全设置。
2. 启用安全并配置认证
在全局安全配置页面,你需要勾选“Enable security”复选框。这是Jenkins安全的大门开关,令人欣慰的是,从Jenkins 2.0开始,这个选项默认是启用的。

最低0.47元/天 解锁文章
459

被折叠的 条评论
为什么被折叠?



