【LDAP生产实战】JumpServer采用LDAP统一账户认证体系应用实践
#文章首发挑战赛# #2023年度创作挑战#
统一认证系统:OpenLdap+Phpldapadmin搭建及应用
一文教你如何用Openssh和LDAP打造安全登录认证系统!
一文教你如何用OpenLDAP实现账户统一管理与TLS加密通信!
JumpServer
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。
JumpServer 堡垒机支持的资产类型包括:
- SSH (Linux / Unix / 网络设备 等)
- Windows (Web 方式连接 / 原生 RDP 连接)
- 数据库 (MySQL / MariaDB / Oracle / SQLServer / PostgreSQL / ClickHouse 等)
- NoSQL (Redis / MongoDB 等)
- GPT (ChatGPT 等)
- 云服务 (Kubernetes / VMware vSphere 等)
- Web 站点 (各类系统的 Web 管理后台)
- 应用 (通过 Remote App 连接各类应用)
环境要求
OS/Arch | Architecture | Linux Kernel | Offline Name |
linux/amd64 | x86_64 | >= 4.0 | jumpserver-offline-installer-v3.9.3-amd64.tar.gz |
linux/arm64 | aarch64 | >= 4.0 | jumpserver-offline-installer-v3.9.3-arm64.tar.gz |
linux/loong64 | loongarch64 | == 4.19 | jumpserver-offline-installer-v3.9.3-loong64.tar.gz |
yum update
yum install -y wget curl tar gettext iptables
内核检查
检查当前内核发现是3.10,需要升级到4.0以上
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
内核升级
#导入仓库源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#安装 LT 版本
yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
# 查看内核启动序号
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.265-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.105.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-4896cbe4842441d5812d660e7d69f2da) 7 (Core
# 设置启动序号
[root@localhost ~] grub2-set-default 0
# 重启
reboot
# 检查内核版本
[root@localhost ~]# uname -r
5.4.265-1.el7.elrepo.x86_64
安装部署
JumpServer 可以通过在线和离线安装,本文主要通过在线安装方式实现,
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
安装结果
[root@localhost ~]# jmsctl --help
JumpServer Deployment Management Script
Usage:
./jmsctl.sh [COMMAND] [ARGS...]
./jmsctl.sh --help
Installation Commands:
install Install JumpServer
upgrade [version] Upgrade JumpServer
check_update Check for updates JumpServer
reconfig Reconfiguration JumpServer
Management Commands:
start Start JumpServer
stop Stop JumpServer
restart Restart JumpServer
status Check JumpServer
down Offline JumpServer
uninstall Uninstall JumpServer
More Commands:
load_image Loading docker image
backup_db Backup database
restore_db [file] Data recovery through database backup file
raw Execute the original docker-compose command
tail [service] View log
[root@localhost ~]# jmsctl status
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
jms_celery docker.io/jumpserver/core-ce:v3.9.3 "./entrypoint.sh sta…" celery 6 minutes ago Up 6 minutes (healthy) 8080/tcp
jms_chen docker.io/jumpserver/chen:v3.9.3 "./entrypoint.sh" chen 6 minutes ago Up 6 minutes (healthy) 8082/tcp
jms_core docker.io/jumpserver/core-ce:v3.9.3 "./entrypoint.sh sta…" core 6 minutes ago Up 6 minutes (healthy) 8080/tcp
jms_kael docker.io/jumpserver/kael:v3.9.3 "./entrypoint.sh" kael 6 minutes ago Up 6 minutes (healthy) 8083/tcp
jms_koko docker.io/jumpserver/koko:v3.9.3 "./entrypoint.sh" koko 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:2222->2222/tcp, :::2222->2222/tcp, 5000/tcp
jms_lion docker.io/jumpserver/lion:v3.9.3 "./entrypoint.sh" lion 6 minutes ago Up 6 minutes (healthy) 4822/tcp, 8081/tcp
jms_magnus docker.io/jumpserver/magnus:v3.9.3 "./entrypoint.sh" magnus 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:33061-33062->33061-33062/tcp, :::33061-33062->33061-33062/tcp, 0.0.0.0:63790->63790/tcp, :::63790->63790/tcp
jms_mysql jumpserver/mariadb:10.6 "docker-entrypoint.s…" mysql 8 minutes ago Up 8 minutes (healthy) 3306/tcp
jms_redis jumpserver/redis:6.2 "docker-entrypoint.s…" redis 8 minutes ago Up 8 minutes (healthy) 6379/tcp
jms_web docker.io/jumpserver/web:v3.9.3 "/docker-entrypoint.…" web 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp
- 首次安装后需要修改配置文件,定义 DOMAINS 字段后即可正常使用
- 如果服务器是一键安装并且旧版本就已经使用 JumpServer 开启了 HTTPS,则不需要进行任何更改。
- 需要使用 IP 地址来访问 JumpServer 的场景,可以根据自己的 IP 类型来填写 config.txt 配置文件中 DOMAINS 字段为公网 IP 还是内网 IP。
# 打开config.txt 配置文件,定义 DOMAINS 字段
vim /opt/jumpserver/config/config.txt
# 可信任 DOMAINS 定义,
# 定义可信任的访问 IP, 请根据实际情况修改, 如果是公网 IP 请改成对应的公网 IP,
# DOMAINS="demo.jumpserver.org" # 使用域名访问
# DOMAINS="172.17.200.191" # 使用 IP 访问
# DOMAINS="demo.jumpserver.org,172.17.200.191" # 使用 IP 和 域名一起访问
DOMAINS=
相关命令
cd /opt/jumpserver-installer-v3.9.3
# 启动
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸载
./jmsctl.sh uninstall
# 帮助
./jmsctl.sh -h
访问
地址: http://:<服务运行端口>
用户名: admin
密码: admin
LDAP认证方式配置
1、登录phpLDAPadmin 客户端新增用户
2、登录JumpServer :系统设置->认证设置->LDAP 进行配置。
测试连接提示测试成功
3、测试登录报错误,原因是刚配置完成未进行提交导致,测试登录必须先提交。
4、导入LDAP用户
5、同步设置,每日定时同步LDAP用户
校验
使用LDAP用户进行登录,在来源中可以明确LDAP,自此JumpServer采用LDAP统一账户认证体系的配置完成