初始安全设置:首次访问Jenkins时,通过sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取初始密码解锁。安装后立即创建管理员用户(避免使用默认“admin”账号),禁用匿名访问(进入“Manage Jenkins”→“Configure Global Security”,勾选“Logged-in users can do anything”)。
2. 用户认证与权限管理
选择认证方式:在“Configure Global Security”的“Security Realm”部分,优先选择LDAP(集中管理用户身份)或Jenkins自有用户数据库(小型团队适用);若需与GitHub等平台集成,可选择OAuth认证。
基于角色的权限控制:安装“Role-Based Strategy”插件(Jenkins默认插件库),进入“Manage Jenkins”→“Manage and Assign Roles”→“Manage Roles”,创建角色(如“admin”“developer”“viewer”),并为角色分配权限(如“admin”拥有全局配置权限,“developer”仅能查看和触发自己项目的构建);再通过“Assign Roles”将用户关联至对应角色。
3. 网络与通信安全
配置防火墙:使用UFW限制Jenkins端口(默认8080)的访问,仅允许可信IP段。执行sudo ufw allow from <trusted_ip> to any port 8080(替换为实际IP),再启用防火墙sudo ufw enable。
启用SSL加密:为避免数据传输泄露,配置HTTPS。可使用Let’s Encrypt免费证书(sudo apt install certbot python3-certbot-nginx),或通过“Manage Jenkins”→“Configure Global Security”上传自定义证书,强制Jenkins使用HTTPS访问。
禁用root远程登录:编辑SSH配置文件sudo vim /etc/ssh/sshd_config,设置PermitRootLogin no(禁止root远程登录),PermitEmptyPasswords no(禁止空密码登录),重启SSH服务sudo systemctl restart sshd。
4. Jenkins服务与插件安全
启用CSRF保护:在“Configure Global Security”的“CSRF Protection”部分,确保“Enable CSRF Protection”已勾选(防止跨站点请求伪造攻击);若使用反向代理,可勾选“Enable proxy compatibility”。