一种跳板机的实现思路

本文详述了一种利用Linux PAM机制构建的跳板机实现,该系统不存储服务器凭证,提高安全性。通过微服务架构,包括jmp-api、jmp-ssh等服务,提供ssh、rdp代理,支持网页终端。跳板机强调了权限管理和危险命令拦截,确保操作便捷且安全可控。同时,系统具有高可用性和扩展性,适用于大规模服务器管理。

本文介绍了一种跳板机实现思路,阐述了基本原理,并讲解了特点和相对优势。

一、 跳板机思路简介

本文所描述的跳板机(下文称为“jmp”)支持:

  • Linux服务器
  • Windows服务器
  • 其他终端(MySQL终端、Redis终端、网络设备终端 等等)

有别于市面上常见的jumpserver方案,使用本文所搭建的跳板机将不会存储任何Linux服务器的账号、密码、密钥等信息,杜绝了信息泄露的可能。本文最大的特点是 借助Linux的PAM机制,通过修改Linux服务器系统层配置,部分接管了Linux系统的身份认证能力 ,关于这一点,下文将详细描述。

二、背景知识

2.1  Linux 的 PAM 机制

PAM(Pluggable Authentication Modules)机制,是一种广泛应用于当代Unix、Linux发行版的系统层身份认证框架。通过提供一系列动态链接库和两套编程接口(Service Programming Interface 和 Application Programming Interface),将系统提供的服务与该服务的认证方式分离,从而使得可以根据需要灵活地给不同的服务配置不同的认证方式而无需更改服务程序。

2.2 PAM 的核心能力

2.3 PAM 模块类型

  • auth

用来对用户的身份进行识别,如:提示用户输入密码,或判断用户是否为root等。

  • account

对帐号的各项属性进行检查,如:是否允许登录,是否达到最大用户数,或是root用户是否允许在这个终端登录等。

  • session

这个模块用来定义用户登录前的,及用户退出后所要进行的操作,如:登录连接信息、用户数据的打开与关闭、挂载文件系统等。

  • password

使用用户信息来更新,如:修改用户密码。

2.4 常见 PAM 模块

  • pam_unix.so模块

【auth】提示用户输入密码,并与/etc/shadow文件相比对,匹配返回0(PAM_SUCCESS)。【account】检查用户的账号信息(包括是否过期等),帐号可用时,返回0。【password】修改用户的密码,将用户输入的密码,作为用户的新密码更新shadow文件。

  • pam_cracklib.so模块

这个模块可以插入到一个程序的密码栈中,用于检查密码的强度。

  • pam_loginuid.so模块

用来设置已通过认证的进程的uid,以使程序通过正常的审核。

  • pam_securetty.so模块

如果用户要以root登录时,则登录的tty必须在/etc/securetty中之前。

  • pam_rootok.so模块

pam_rootok模块用来认证用户id是否为0,为0返回PAM_SUCCESS。

  • pam_console.so模块

当用户登录到终端时,改变终端文件文件的权限.在用户登出后,再将它们修改回来。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值