阅读(3924)
赞(12)
Securing Jenkins
2017-08-18 17:14:01 更新
在Jenkins 1.x的默认配置中,Jenkins不执行任何安全检查。这意味着Jenkins启动流程和访问本地文件的能力可供任何可以访问Jenkins Web UI和更多内容的用户使用。
Securing Jenkins 有两个方面。
- 访问控制,用于确保用户在访问Jenkins并对其活动进行授权时进行身份验证。
- 保护Jenkins 免受外部威胁
访问控制
您应该锁定对Jenkins UI的访问权限,以便用户进行身份验证,并向他们提供适当的权限。此设置主要由两个轴控制:
- 安全领域,它决定了用户及其密码,以及用户所属的组。
- 授权策略,决定谁可以访问什么。
这两个轴是正交的,需要单独配置。例如,您可以选择使用外部LDAP或Active Directory作为安全领域,并且您可以选择“每次登录后的所有人都可以访问”模式进行授权策略。或者您可以选择让Jenkins运行自己的用户数据库,并根据权限/用户矩阵执行访问控制。
- 快速简单的安全性 - 如果你正在运行Jenkins java -jar jenkins.war,只需要一个非常简单的设置
- 标准安全设置 ---讨论了Jenkins运行自己的用户数据库并进行更细粒度的访问控制的最常见的设置
- Apache前端的安全性 - 在Apache后面运行Jenkins,并在Apache中执行访问控制,而不是Jenkins
- 验证脚本客户端 ---如果您需要以编程方式访问启用安全性的Jenkins Web UI,请使用BASIC auth
- 基于矩阵的安全性|基于矩阵的安全性 - 授予和拒绝更细粒度的权限
保护Jenkins的用户免受其他威胁
Jenkins还有其他安全子系统可以保护Jenkins和Jenkins的用户免受间接攻击。
以下主题讨论默认关闭的功能。我们建议您先阅读并对它们采取行动。
- CSRF保护 ---防止对防火墙内运行的Jenkins进行远程攻击
- 建立管理的安全隐患 - 保护Jenkins管理免受恶意构建
- 从属于主访问控制 ---保护Jenkins管理免受恶意构建代理
以下主题讨论默认情况下已启用的其他安全功能。当他们造成问题时,您只需要查看它们。
- 配置内容安全策略 ---保护Jenkins的用户免受恶意构建
- 标记格式 ---保护Jenkins的用户免受Jenkins恶意用户的伤害
Disabling Security
人们可能会意外地建立安全领域/授权,使您无法再重新配置Jenkins。
当这种情况发生时,您可以通过以下步骤解决此问题:
- 停止Jenkins(最简单的方法是窃取servlet容器。)
- 转到$JENKINS_HOME在文件系统中找到config.xml文件。
- 在编辑器中打开此文件。
- 查找<useSecurity>true</useSecurity>此文件中的元素。
- 替换true为false
- 删除元素authorizationStrategy和securityRealm
- 开始Jenkins
- 当Jenkins回来时,它将处于不安全的模式,每个人都可以完全访问系统。
如果这仍然不起作用,请尝试重命名或删除config.xml。