前言
由于最近处理了一个jumpserver问题,刚好想起填一下openldap的坑.
Jumpserver是国内流行的开源堡垒机,被很多公司在使用.并且我在2018年写过0.5.0版的搭建方式。截至到现在已经出到2.14.2了,功能是越来越强大,可适用于多云环境,可配置连接阿里云或其他网络环境,部署和迁移也越来越便捷,并且它也提供了 LDAP 的用户认证方式.下面介绍的是OpenLDAP集成到Jumpserver操作
演示的jumpserver版本:v2.1.5 openldap 2.4.44
登录过程
登录用户
<1>当配置了LDAP认证方式时,无需在jumpserver去创建用户
LDAP的用户会出现在用户列表,可以使用统一的账号和密码登录Jumpserver Web页面和终端(COCO) 的用户认证
然后使用Jumpserver 创建的系统用户,跳到目标主机
<2>当使用普通用户登录时,需要去jumpserver上进行用户的创建。这种方式会在跳板机的/etc/passwd /etc/passwd- /etc/shadow /etc/shadow- /etc/group /etc/group- 上写入用户的信息,想当于useradd创建了用户,之后的登录同样要使用系统用户跳到目标主机.(如果要迁移这种jumpserver,这些文件也得拷贝过去)
系统用户
系统用户是 JumpServer跳转登录资产时使用的用户,可以理解为登录资产用户,如 web,sa,dba(ssh web@some-host
),而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host
); 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。 系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。
系统用户可以根据需要配置不同权限,限制该系统用户下的用户可使用的命令
系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行, 如果规则的动作是禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
如果没配置命令过滤,可以不选择
SFTP路径是文件管理中上传文件可到达的根目录
Sudo内是sudo后可使用的命令,ALL为可使用所有命令
OpenLDAP集成到Jumpserver
系统设置
基本设置
邮件设置,邮箱需开启smtp,配置后进行测试连接
邮件内容
可设置,可不设置
LDAP设置
LDAD地址 你的LDAP服务器的访问地址
可使用IP或配置域名, 但是使用域名有可能会有解析问题,使用域名便于达到高可用
DN 设置认证用户的信息, jumpserver会使用这个用户去校验ldap的信息是否正确(完整的DN)
用户OU 设置用来登录jumpserver的组织单元, 即使用 某个ou 的 用户 来登录jumpserver
(用户OU可以只写顶层OU, 不写子OU;单个ou只能导入1000个user;可以添加多个ou,用 | 隔开)
ou=jumpserver,dc=jumpserver,dc=com | ou=People,dc=op,dc=com
关于ou和用户的创建,如果有需求可以像jenkins一样配置自己这个服务专用的ou,也可以配置已有的ou
用户过滤器 筛选需要的用户。根据规则到OU里面去检索用户,支持memberof,注意不能有多余的空格
(uid=%(user)s)
or
(cn=%(user)s)
or
(sAMAccountName=%(user)s)
LADP属性映射 把ldap用户的属性映射到jumpserver上(username name email 这三项不可修改删除)
{"username": "uid", "name": "sn", "email": "mail"}
or
{"username": "cn", "name": "sn", "email": "mail"}
or
{"username": "sAMAccountName", "name": "cn", "email": "mail"}
备注:
用户过滤器用什么筛选,LDAP属性映射字段要与其一致,过滤器用 uid,LDAP属性映射也要用 uid
终端设置
安全设置
安全设置可根据需求设置,密码过期时间为了安全建议设置一周,最小长度16位