Rundeck(四)安全配置

news2024/10/7 12:29:34

自动化运维工具rundeck

GitHub - rundeck 是java开发的开源自动化服务,具有 Web 控制台、命令行工具和 WebAPI。它使您可以轻松地跨一组节点运行自动化任务,适合运维自动化管理、自动发布管理、运维数据分析等

  • 网站:https://www.rundeck.com
  • 最新文档:Rundeck | Process Automation Documentation
  • 新手引导:Rundeck | tutorial
  • 最佳实践:Rudeck | howto

系统环境

#环境要求:
    https://docs.rundeck.com/docs/administration/install/system-requirements.html

测试环境:
    openjdk version "11.0.22"
    CentOS Linux release 7.4.1708 (Core) 
    rundeck-5.2.0.20240410-1
    Database:mysql Server

内置的认证模块

jaas-loginmodule.conf --加载---> realm.properties
realm.properties 文件定义了用户/密码、权限以及acl策略的管理
realm.properties 文件是自动加载的不需要重启服务
配置文档: Authenticating Users
内置的role
内置的role 有:
普通用户(默认)
超级管理员role: admin
系统管理员role: ops_admin
应用管理员 role: app_admin
认证模式
sso 单点认证需要企业版本支持
这里讨论jaas模块和Preauthenticated预认证模块
jaas模块
支持ldap、PAM
realm.properties 是动态加载的;
jaas-loginmodule.conf 控制是否热加载,函数功能测试与官方文档说明有出入
realm.properties配置文件格式:
<username>: <password>[,<rolename> ...]
#// rundeck-config.properties
#安全参数
#rundeck.security.jaasRolePrefix:添加到通过JAAS 身份验证确定的每个角色的前缀字符串。默认值:无。
#rundeck.security.requiredRole: roleName。如果设置此属性,则所有用户都必须是指定角色的成员。
#rundeck.login.localLogin.enabled:  false为禁止本地用户登录
添加其他用户
密码尽量避免使用明文,推荐使用bcrypt加密, 配置有见有说明可以使用哪些加密方式,
工具自带了生产密码的方法, md5类型 不是密码直接md5加密
[root@tserver121 bootstrap]# su - rundeck
-bash-4.2$ cd /var/lib/rundeck/bootstrap/
-bash-4.2$ java -jar rundeck-5.2.0-20240410.war  --encryptpwd Jetty
Required values are marked with: * 
Username (Optional, but necessary for Crypt encoding):
readonly     <-----username
*Value To Encrypt (The text you want to encrypt):
*********    <-----password

==ENCRYPTED OUTPUT==
bcrypt: BCRYPT:$2a$10$ohiX0erHSnGlpJk7lTWJx.MX5BSAQNLhrgr1SDmfd5RTO3yS7MZY6
obfuscate: OBF:1ua11u2y1qhg1wgk1ltu1w9j19pz1nc81ndi19qf1w871lq41wfe1qju1u2c1u9h
md5: MD5:47d96eab402994bbdab1a691e0118501
crypt: CRYPT:re/1M9PpjIm4k

配置文件中realm.properties添加
readonly: MD5:47d96eab402994bbdab1a691e0118501,user

新添加的readonly普通用户权限

LDAP

第 1 步:设置 LDAP 登录模块配置文件

创建/etc/rundeck/jaas-ldap.conf 文件

步骤2:指定登录模块

#// /etc/rundeck/profile
#添加
JAAS_LOGIN=true
LOGIN_MODULE=ldap
JAAS_CONF=/etc/rundeck/jaas-ldap.conf

第 3 步:重新启动 rundeckd 与尝试登录 Authenticating Users

Preauthenticated预认证模块
预认证的好处是,多个系统集成在一个平台之后 只要平台认证过后之后,各个系统之间就通过认证了。
类似于有一个代理 提前将你的身份进行验证,比sso简单
undeck.security.authorization.preauthenticated.enabled=true
rundeck.security.authorization.preauthenticated.attributeName=REMOTE_USER_GROUPS
rundeck.security.authorization.preauthenticated.delimiter=,
rundeck.security.authorization.preauthenticated.userNameHeader=X-Forwarded-Uuid
rundeck.security.authorization.preauthenticated.userRolesHeader=X-Forwarded-Roles

#sync user info headers
rundeck.security.authorization.preauthenticated.userSyncEnabled=true
#these are the default headers for passing user details
rundeck.security.authorization.preauthenticated.userFirstNameHeader=X-Forwarded-User-FirstName
rundeck.security.authorization.preauthenticated.userLastNameHeader=X-Forwarded-User-LastName
rundeck.security.authorization.preauthenticated.userEmailHeader=X-Forwarded-User-Email
ACL-访问控制策略
ACL授予用户和用户组某些权限,以针对 项目、作业、节点、命令和 API等执行操作。用户请求的每项操作都会进行记录下来以用于报告和审计。
语法格式 ACLPOLICY
文件与热加载
配置文件生成: /etc/rundeck/*.aclpolicy ,默认有admin.aclpolicy、与 apitoken.aclpolicy
配置文件是热加载的不需要重新启动

也可以通过页面添加和编辑

客户端命令 -rd-acl
企业版本提供了很好GUI,社区版本可以使用rd-acl帮助创建、测试和验证语法。
rd-acl 使用方法: rd acl
授权规范 - 语法选项

可以参考:Access Control Policy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【golang-ent】go-zero框架 整合 ent orm框架实现一对一 一对多 多种姿势查询方式

一、ent的 O2O 问题 官方文档如下: https://entgo.io/zh/docs/schema-edges#o2o-same-type 1、ent O2O问题 官方提供了三种 one2one的方式,可以看到他全部使用了 mysql的 foregionKey 的方式进行关联,虽然举例了单表和双表的不同使用方式,但是我们实际使用mysql中是不创建…

flutter笔记-webrtc使用1:依赖本地包socket.io-client

文章目录 1. 示例工程2. yaml 修改3. 使用4. socketio 关于自定义服务器自定义签名的问题封装成async和await方式 本文开始介绍webrtc的使用&#xff0c;阅读本文的前提是假设你已经使用过webrtc&#xff0c;了解webrtc的交互机制&#xff0c;不了解的可以看之前的文章&#xf…

【Python】全面掌握 Collections Deque:队列与栈的高效实现及动态内存管理指南

文章目录 第一章&#xff1a;deque 的定义和特性1. 什么是双端队列&#xff08;deque&#xff09;2. deque 与普通列表&#xff08;list&#xff09;的性能差异 第二章&#xff1a;构造函数1. 如何创建一个 deque2. 可选参数 maxlen 的作用和使用场景 第三章&#xff1a;添加和…

信息泄露后担心被恶意点了网贷怎么办?

在当今信息时代&#xff0c;个人信息泄露已成为一个普遍现象&#xff0c;而泄露的信息可能被不法分子用于进行恶意行为&#xff0c;如恶意申贷。一旦被恶意申贷&#xff0c;可能会导致信用受损、法律责任等一系列问题。那么&#xff0c;信息泄露后担心被恶意申贷了怎么办呢?本…

金三银四面试题(二十三):装饰器模式知多少?

什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许动态地向对象添加新的行为&#xff0c;而无需修改原始对象的结构。通过将对象包装在一个或多个装饰器对象中&#xff0c;装饰器模式可以增强原始对象的功能。 装…

Swift - 枚举

文章目录 Swift - 枚举1. 枚举的基本用法2. 关联值&#xff08;Associated Values&#xff09;3. 关联值举例4. 原始值5. 隐式原始值&#xff08;Implicitly Assigned Raw Values&#xff09;6. 递归枚举&#xff08;Recursive Enumeration&#xff09;7. MemoryLayout Swift -…

ESP32-C3第二路串口(非调试)串口打通(2)

接前一篇文章&#xff1a;ESP32-C3第二路串口&#xff08;非调试&#xff09;串口打通&#xff08;1&#xff09; 本文内容参考&#xff1a; ESP32爬坑之旅②——初识FreeRTOS_esp32 xtaskcreate-CSDN博客 特此致谢&#xff01; 上一回讲解了ESP32-C3系列芯片UART引脚复用的细…

安卓常用组件(启停活动页面、活动之间传递信息、收发应用广播、操作后台服务)

启停活动页面 Activity的启动和结束 页面跳转可以使用startActivity接口&#xff0c;具体格式为startActivity(new Intent(this, 目标页面.class));。 关闭一个页面可以直接调用finish();方法即可退出页面。 Activity的生命周期 页面在安卓有个新的名字叫活动&#xff0c;因…

指导网友完成一起Linux服务器系统文件删除导致不能启动情况下的数据恢复案例

昨日有网友在微信群发起救助&#xff0c;Linux系统不能启动&#xff0c;使用救援U盘也无法恢复&#xff0c;协助他进行了数据恢复&#xff0c;本文记录了处置过程。 图片为网友提供&#xff0c;照得歪歪扭扭的&#xff0c;将就着看看吧。 一、问题现象 1、报错信息 Linux服…

Linux 第十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

比较美观即将跳转html源码

源码介绍 比较美观即将跳转html源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 源码截图 比较美观的一个跳转界面&#xff0c;修改方法如上&…

【Spring】IOC/DI中常用的注解@Lazy、@Scope与@Conditional

目录 1、Lazy 懒加载bean 1.1、与component配合使用 1.2、与Bean注解配合使用 2、Scope bean的作用域 2.1、不指定Scope 2.2、指定Scope为 prototype 3、Conditional 条件注解 1、Lazy 懒加载bean Lazy用于指定单例bean实例化的时机&#xff0c;在没有指定此注解时&…

异常处理Exception(一)

文章目录 1、添加异常捕捉2、链式CATCH3、一个CTACH捕捉多个异常4、捕捉所有异常总结 有些代码可以通过语法检查&#xff0c;但运行时会发生错误而崩溃&#xff0c;比如除数是0的情况。对于这类代码&#xff0c;需要使用 TRY&#xff0c; CATCH进行异常捕捉&#xff0c;避免代…

ubuntu24.04 正式放弃VNC

1、ubuntu22.04支持情况 去年9月在22.04中测试发现由于gnome启用Wayland桌面&#xff0c;然而Wayland和vnc兼容不佳&#xff0c;就已经黑屏等问题&#xff0c;当时是vnc和ms-rd(微软远程桌面)两个菜单。 Ubuntu22.04 vnc远程黑屏_ubuntu 远程桌面vnc黑屏-CSDN博客文章浏览阅读…

FreeRTOS之列表

1.FreeRTOS的列表和列表项十分重要。列表类相当于链表&#xff0c;列表项则相当于链表中的节点。列表项的地址是非连续的&#xff0c;列表项的数量可随时修改。在OS中的任务状态和数量会发生改变&#xff0c;因此使用列表可以很好的满足需求。 列表和列表项的相关定义与操作函…

基于51单片机的8路抢答器—计分功能

基于51单片机的8路抢答器 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.主持人按下复位后数码管依次显示选手的编号和分数&#xff1b; 2.显示结束后主持人才可以按开始按键&#xff1b; 3.数码管倒计时10秒&#xff0c;选手开始抢答&a…

Jenkins邮件发送失败问题解决

如下提示为 Extended E-mail Notification开启Debug模式下显示的错误信息&#xff0c; (Debug模式设置方法&#xff1a;Dashboard-> manage Jenkins->configure System)DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM XOAUTH2 DEB…

Qt窗口

QMainWindow Qt 窗⼝ 是通过 QMainWindow类 来实现的。 QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类&#xff0c;继承⾃ QWidget 类&#xff0c;并且提供了⼀个预定义的 布局。QMainWindow 包含 ⼀个菜单栏&#xff08;menu bar&#xff09;、多个⼯具栏(tool bars)、多个浮动…

HarmonyOS NEXT应用开发之适配挖孔屏案例

介绍 本示例介绍使用屏幕属性getDefaultDisplaySync、getCutoutInfo接口实现适配挖孔屏。该场景多用于沉浸式场景下。 效果图预览 使用说明 加载完成后顶部状态栏时间和电量显示位置规避了不可用区域。 实现思路 通过setWindowLayoutFullScreen、setWindowSystemBarEnable…

自制贪吃蛇小游戏

此片文章涉及到到控制台设置的相关操作&#xff0c;虚拟键码&#xff0c;宽字符输出等&#xff0c;有些地方大家可能会看不懂&#xff0c;可以阅读以下文章来进一步了解&#xff1a; 控制台程序设置-CSDN博客 效果展示&#xff1a; QQ2024428-181932 源码已放在文章结尾 目录 …