jenkins安全
安全建议
- 使用最新版的jenkins
- 关闭匿名访问
- 关闭用户注册功能
- 用户严格授权
- 最小化插件,相关插件使用最新版
- 使用nginx代理jenkins,不要直接暴露在公网
添加全局安全管理
限制非登录用户权限
默认的 允许任意账户注册 带来的安全问题
访问http://jenkins-host/manage
,在「系统管理」可以看到没有任何限制可以直接访问
关闭注册
添加按角色定制权限
安装插件:
Role-based Authorization Strategy
到设置页面:jenkins -> 全局安全配置 ,选择Role-Based Strategy
可以管理角色权限等等的操作:先创建jenkins用户,然后再到插件里面添加其他信息。
如果搞得没权限进jenkins了删除下面的行:然后重启jenkins。
vim /var/lib/jenkins/config.xml
<useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup><enableCaptcha>false</enableCaptcha> </securityRealm>
命令行工具
访问http://jenkins-host/script
;或在「系统管理」->「脚本命令行」中可以执行Groovy脚本。
在Groovy脚本中还可以调用系统命令:
例:执行系统命令
println "whoami".execute().text
例:写webshell
new File("/var/www.html/shell.php").write('<?php phpinfo(); ?>');
所以一定要在「全局安全设置」中,限制至少要以登录用户才能操作命令行