Securing Jenkins

2018-08-26 10:55 更新

在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。

当这种情况发生时,您可以通过以下步骤解决此问题:

  1. 停止Jenkins(最简单的方法是窃取servlet容器。)
  2. 转到$JENKINS_HOME在文件系统中找到config.xml文件。
  3. 在编辑器中打开此文件。
  4. 查找<useSecurity>true</useSecurity>此文件中的元素。
  5. 替换true为false
  6. 删除元素authorizationStrategy和securityRealm
  7. 开始Jenkins
  8. 当Jenkins回来时,它将处于不安全的模式,每个人都可以完全访问系统。

如果这仍然不起作用,请尝试重命名或删除config.xml。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号