一、基础环境准备
sudo yum update -y(CentOS)或sudo apt update && sudo apt upgrade -y(Ubuntu)更新系统;安装Java(Jenkins依赖,推荐1.8及以上版本)、wget等工具:sudo yum install -y java-1.8.0-openjdk-devel wget(CentOS)或sudo apt install -y openjdk-11-jdk wget(Ubuntu)。sudo wget https://pkg.jenkins.io/redhat-stable/jenkins.repo && sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key;Ubuntu下运行wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -并编辑/etc/apt/sources.list.d/jenkins.list添加deb http://pkg.jenkins.io/debian-stable binary/。sudo yum install -y jenkins(CentOS)或sudo apt install -y jenkins(Ubuntu)。sudo systemctl start jenkins启动服务,sudo systemctl enable jenkins设置开机自启。二、访问控制与身份认证
http://<服务器IP>:8080),进入Manage Jenkins→Configure Global Security,勾选Enable security。Manage Jenkins→Manage Users→Create User)。Security Realm为LDAP,填写LDAP服务器地址、绑定DN等信息(如ldap://ldap.example.com:389)。GitHub Authentication plugin)实现单点登录(SSO)。Role-based Authorization Strategy插件(Manage Jenkins→Manage Plugins→Available中搜索安装),配置步骤:
Configure Global Security→Authorization,选择Role-Based Strategy。Manage and Assign Roles→Manage Roles,创建角色(如Admin、Developer、Viewer),分配权限(如Overall: Administer给Admin,Job: Build给Developer)。Assign Roles,将用户与角色关联(如用户dev1分配Developer角色)。三、网络安全配置
sudo firewall-cmd --permanent --add-port=8080/tcp(开放Jenkins端口),sudo firewall-cmd --reload。sudo ufw allow 8080/tcp,sudo ufw enable。sudo certbot certonly --standalone -d jenkins.example.com。/etc/sysconfig/jenkins(CentOS)或/etc/default/jenkins(Ubuntu),修改JENKINS_PORT=8443,添加JENKINS_HTTPS_PORT=8443、JENKINS_HTTPS_KEYSTORE=/etc/letsencrypt/live/jenkins.example.com/keystore.jks、JENKINS_HTTPS_KEYSTORE_PASSWORD=<证书密码>。sudo systemctl restart jenkins,后续通过https://jenkins.example.com:8443访问。/etc/ssh/sshd_config:AllowUsers jenkins(仅允许jenkins用户登录),PasswordAuthentication no(禁用密码登录,启用公钥认证),重启SSH服务:sudo systemctl restart sshd。四、插件与功能安全
Manage Jenkins→Manage Plugins→Available筛选所需插件(如Git、Pipeline、Role-based Authorization Strategy),避免安装来源不明或不再维护的插件。Manage Plugins→Updates中检查并更新插件,修复已知漏洞。Configure Global Security→CSRF Protection中,勾选Enable CSRF Protection,保持Enable proxy compatibility打钩,防止跨站请求伪造攻击。五、数据与系统安全
/var/lib/jenkins(Jenkins主目录,包含作业配置、构建记录等)、/var/cache/jenkins(缓存目录)。sudo crontab -e添加0 2 * * * tar -czvf /var/backup/jenkins_$(date +\%F).tar.gz /var/lib/jenkins /var/cache/jenkins(每天凌晨2点备份)。/etc/ssh/sshd_config,设置PermitRootLogin no,重启SSH服务。passwd命令提示用户设置强密码。/etc/pam.d/su,添加auth required pam_wheel.so use_uid,仅允许wheel组用户使用su切换到root。六、持续维护与监控
sudo yum update -y jenkins(CentOS)或sudo apt update && sudo apt upgrade -y jenkins(Ubuntu)更新Jenkins;通过Manage Plugins更新插件,及时修复安全漏洞。Manage Jenkins→Script Console运行org.jenkinsci.plugins.audit2db.AuditTrailLogger.setEnabled(true)开启审计日志,记录用户操作(如作业创建、配置修改)。/var/log/jenkins/jenkins.log(默认日志路径),监控异常行为(如频繁的登录失败、未经授权的访问)。