在CentOS上安全设置Jenkins主要包括以下步骤:
Jenkins需要Java环境,因此首先需要安装Java。可以使用以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel
验证Java安装是否成功:
java -version
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo yum install jenkins
nohup java -jar /path/to/jenkins.war --httpport=8080 --httpsport=8443 > /dev/null 2>&1 &
使用以下命令启动Jenkins服务,并设置为开机自启:
sudo systemctl start jenkins
sudo systemctl enable jenkins
配置防火墙以允许访问Jenkins的端口(默认是8080):
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
打开浏览器,访问服务器的IP地址和端口(默认是8080),你将看到Jenkins的初始设置页面。输入初始密码(可以在/var/lib/jenkins/secrets/initialAdminPassword
文件中找到)以完成设置。
进入Jenkins管理界面,选择 Manage Jenkins
-> Security
-> 勾选 Enable security
。选择 Logged-in users can do anything
,创建管理员用户并设置强密码,避免使用默认账号“admin”。
编辑 /etc/sysconfig/jenkins
文件,修改 JENKINS_PORT
为其他未被占用的端口。
安装OpenSSH服务器并配置Jenkins用户:
sudo yum install -y openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
sudo adduser jenkinssudo passwd jenkins
编辑 /etc/ssh/sshd_config
文件,添加以下行:
AllowUsers jenkins
重启SSH服务:
sudo systemctl restart sshd
使用 chattr
命令给Jenkins相关文件加上不可更改属性:
sudo chattr +i /var/lib/jenkins/secrets/initialAdminPassword
修改 /etc/profile
文件中的 TMOUT
参数,设置root账户的自动注销时限:
export TMOUT=300
删除不必要的默认账户,如 adm
, lp
, sync
等。
设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。
进入 Manage Jenkins
-> Manage Plugins
,安装推荐的插件,如 Pipeline
, GitHub Integration
, Docker
, Kubernetes CLI
, Credentials Binding
等。
为了保证数据传输的安全性,建议使用SSL证书对Jenkins进行加密。
定期审查和更新Jenkins的安全设置,以保证系统的安全性和稳定性。
以上步骤涵盖了在CentOS上安全设置Jenkins的基本流程,包括安装、配置、防火墙设置、用户权限管理、安全插件与配置、加密传输、定期备份、监控和日志记录、安全审计以及高级安全措施。通过这些措施,可以显著提高Jenkins在CentOS上的安全性,保护你的持续集成和持续部署流程不受未授权访问和潜在攻击的影响。