游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

一种跳板机的实现思路

  本文介绍了一种跳板机实现思路,阐述了基本原理,并讲解了特点和相对优势。
  一、跳板机思路简介
  本文所描述的跳板机(下文称为jmp)支持:Linux服务器Windows服务器其他终端(MySQL终端、Redis终端、网络设备终端等等)
  有别于市面上常见的jumpserver方案,使用本文所搭建的跳板机将不会存储任何Linux服务器的账号、密码、密钥等信息,杜绝了信息泄露的可能。本文最大的特点是借助Linux的PAM机制,通过修改Linux服务器系统层配置,部分接管了Linux系统的身份认证能力,关于这一点,下文将详细描述。
  二、背景知识
  2。1Linux的PAM机制
  PAM(PluggableAuthenticationModules)机制,是一种广泛应用于当代Unix、Linux发行版的系统层身份认证框架。通过提供一系列动态链接库和两套编程接口(ServiceProgrammingInterface和ApplicationProgrammingInterface),将系统提供的服务与该服务的认证方式分离,从而使得可以根据需要灵活地给不同的服务配置不同的认证方式而无需更改服务程序。
  2。2PAM的核心能力功能应用程序API服务模块SPI
  认证管理
  pamauthenticate
  pamsmauthenticate
  pamsetcred
  pamsmsetcred
  账号管理
  pamaccmgmt
  pamsmaccmgmt
  会话管理
  pamopensession
  pamsmopensession
  pamclosesession
  pamsmclosesession
  口令管理
  pamchauthok
  pamsmchauthok
  2。3PAM模块类型auth用来对用户的身份进行识别,如:提示用户输入密码,或判断用户是否为root等。account对帐号的各项属性进行检查,如:是否允许登录,是否达到最大用户数,或是root用户是否允许在这个终端登录等。session这个模块用来定义用户登录前的,及用户退出后所要进行的操作,如:登录连接信息、用户数据的打开与关闭、挂载文件系统等。password使用用户信息来更新,如:修改用户密码。
  2。4常见PAM模块pamunix。so模块【auth】提示用户输入密码,并与etcshadow文件相比对,匹配返回0(PAMSUCCESS)。【account】检查用户的账号信息(包括是否过期等),帐号可用时,返回0。【password】修改用户的密码,将用户输入的密码,作为用户的新密码更新shadow文件。pamcracklib。so模块这个模块可以插入到一个程序的密码栈中,用于检查密码的强度。pamloginuid。so模块用来设置已通过认证的进程的uid,以使程序通过正常的审核。pamsecuretty。so模块如果用户要以root登录时,则登录的tty必须在etcsecuretty中之前。pamrootok。so模块pamrootok模块用来认证用户id是否为0,为0返回PAMSUCCESS。pamconsole。so模块当用户登录到终端时,改变终端文件文件的权限。在用户登出后,再将它们修改回来。pampermit。so模块该模块任何时候都返回成功。pamenv。so模块pamenv允许设置环境变量;默认下若没有指定文件,将依据etcsecuritypamenv。conf进行环境变量的设置pamxauth。so模块pamxauth用来在用户之间转发xauthkey。pamstack。so模块pamstack可以调用另一个服务;即多个服务可以包含到一个设置中,当需要修改时只修改一个文件就可以了。pamwarn。so模块pamwarn用来记录服务、终端用户、远程用户和远程主机的信息到系统日志,模块总是返回PAMIGNORE、指不希望影响到认证处理。
  三、跳板机系统架构
  3。1微服务和高可用设计3。1。1微服务设计
  整个跳板机系统可拆分为5个服务,和1个组件。jmpapi服务监听8080端口,提供http接口能力认证某个账号是否存在且正常认证某个账号对某台服务器是否有登录权限认证某个账号对某台服务器是否有sudo权限数据拉取:账号、主机、危险命令库等是jmp访问数据库的唯一入口jmpssh服务监听2200端口,提供ssh代理能力可直接访问Linux服务器、其他终端jmpsocket服务监听8080端口,提供websocketsocket。io连接能力通过ssh协议转发socket。io的流量到jmpssh支持网页终端的连接和访问jmprdp服务监听8080端口,提供socket。io连接能力实现rdp代理,以便于操作Windows服务器支持基于网页的远程桌面服务jmpsftp服务提供文件上传下载能力,支持在jmp中通过sftp命令,支持任意sftp客户端连接访问S3,以便存取文件jmpagent组件部署在每台Linux服务器中jmpagent常驻进程
  定时从jmpapi拉取服务和权限信息,缓存到本地文件
  根据需要检测文件改动,确保配置文件不被恶意修改jmp专用pam模块
  提供jmp。so动态库,为pam模块
  安装脚本释放配置文件,修改etcpam。dxxx文件,生效jmp的pam模块
  接管身份识别和权限认证,调用jmpapi接口以完成鉴权3。1。2高可用设计
  jmp中任何一个服务都是无状态的,因而支持异地多机房部署
  http协议的服务(jmpapi、jmpsocket、jmprdp),通过Nginx配置路由,且配置自动负载均衡策略。
  非http的服务(jmpssh、jmpsftp),通过4层负载均衡(lvs、vgw)实现高可用。
  自动降级策略
  危险命令识别能力存在耗时久的可能性,因此当发现识别危险命令的接口超时,则自动忽略危险命令识别。
  身份认证接口超时的情况下,则使用jmpagent本地缓存的身份信息,如获取不到本地缓存,则使用配置项的默认策略(全部通过或者全部拒绝)。
  jmpagent组件的高可用
  由于jmpagent部署在业务服务器上,所处环境可能随时发生变化,因此必须具备较强的适应性(磁盘空间不足、inode满、内存不足、网络不稳定、域名解析异常等等)。
  针对磁盘空间或inode不足,jmpagent可能无法使用本地文件缓存,因此此时选择降级,忽略缓存。
  针对网络不稳定问题,jmpagent选择增加同jmpapi、jmpssh的通信超时,同时可降级鉴权,确保操作不受影响。
  针对解析异常问题,jmpagent无法通过域名同服务交互,此时使用内置的固定ip同服务交互。
  3。2跳板机各子服务交互图
  从图中可见,作为核心服务的jmpssh承载了ssh流量的代理转发,将来自用户ssh客户端、jmpsocket服务的ssh流量转发到目标服务器上,并将来自目标服务器的返回结果送达回ssh客户端、jmpsocket服务。因此,可在jmpssh服务上识别来自用户的危险命令,在送达目标服务器之前就给出告警或者直接拦截,避免恶意操作或者误操作给业务造成影响。
  图中的jmpapi作为同数据库和缓存直接交互的服务,在整个系统中承担数据接口和管理端的角色,接受来自全量服务器中jmpagent组件的用户身份鉴别和权限校验请求,是整个系统中的控制中枢。
  jmpapi也同时提供的权限设置能力,通过与流程系统对接,可方便的为人员部门申请机器服务项目的登录权限或root权限,此外,jmpapi也对登录权限和root权限的可申请人做出限制,针对不同项目服务,对权限有效时间做出限制,严格控制权限粒度。
  由于同一个项目服务往往由同一个组的人维护,因此jmpapi内置了默认的权限策略,可允许项目服务的负责人对项目服务直接拥有登录权限,而无需申请;仅支持对应项目服务的运维负责人默认拥有root权限,其他所有人如果希望获取root权限,则必须经过申请,由对应服务的运维负责人审批。
  图中的jmpagent是部署在每一台Linux服务器上的,通过在Linux上修改etcpam。dsshd、etc
  pam。dremote、etcpam。dsudo等等文件,让jmp。so(属于jmpagent。rpm或jmpagent。deb的一部分)接管ssh服务、sudo程序等关键系统程序的身份识别、权限认证。从而使得在不增加etcpasswd、etcshadow内容的前提下实现了在任意一台服务器上识别出所有人员身份的能力。
  图中的jmprdp仅作为Windows服务器的rdp代理服务,并提供基于web的远程桌面能力。
  图中的jmpsocket则提供基于web的Linux服务器操作终端,从而让用户不使用ssh客户端也能够方便地登录服务器。
  四、核心设计思路
  4。1登录跳板机用户使用ssh客户端登录到jmpssh服务,与jmpssh服务交互。jmpssh服务获得ssh会话建立过程中的账号、加密后密码、二次认证信息。jmpssh服务访问jmpapi服务,提交账号、加密后密码、二次认证信息,以便知晓该用户是否有登录jmp的权限。
  4。2登录目标服务器仅当用户已经登录到jmpssh或者已经通过了jmpsocket的前端身份认证时方可登录目标服务器。用户在jmpssh提供的伪终端下输入sshxxxx(xxxx为目标服务器的主机名或者IP地址)。jmpssh通过ssh连接到目标服务器,自动携带用户名信息,尝试建立会话。由于目标服务器上的jmpagent接管了sshd的身份识别和权限认证,因此jmp。so获取ssh会话建立过程中的用户名,将用户名和本机IP地址信息加密,调用jmpapi接口进行权限认证。jmpapi根据内置的策略,以及查询授权表,断定该用户对该机器是否有登录权限。jmpagent得到鉴权结果,对有权限的,则ssh会话建立成功,否则会话建立失败。jmpssh获得会话建立结果和原因,返回给用户ssh终端。
  4。3命令交互仅当用户已经登录到某台机器时,才可命令交互。当用户在ssh客户端上敲入字符,传递到jmpssh,jmpssh判断语句是否结束。当语句结束,则jmpssh根据该机器的危险命令规则,匹配用户输入的语句,决定告警、拦截、通过。jmpssh将通过的语句或需要告警的语句传递到目标服务器,目标服务器执行并返回结果。
  4。4切换用户特权账号仅当用户已经登录到某台机器时,才可能触发切换用户的行为。当用户在ssh客户端执行sudoxxxx、su、id等等命令时,jmpssh透传命令到目标服务器上。目标服务器上的sshd进程执行sudoxxxx、su、id等等命令,由于目标服务器上已经被jmpagent接管了身份失败和权限认证,因此由jmp。so获取登录用户名、当前用户名、本机地址信息、目标用户名信息,调jmpapi的接口进行sudo权限认证。jmpapi判断该用户是否拥有对该机器切换到xx账号的权限(如是否有root权限)。sudo、su、id等进程通过jmp。so获得了鉴权结果,决定是否切换用户。
  4。5使用网页交互仅针对用户已经通过网页完成了登录(如sso)的情况。用户通过网页访问jmpsocket服务。jmpsocket服务获取用户名信息、网页登录sso信息,提交给jmpapi,生成一个临时登录凭证。jmpsocket访问jmpssh,提交临时登录凭证。jmpssh发起登录的二次认证,等待用户完成二次认证。jmpsocket在用户完成二次认证后,承担了ssh客户端的角色,与jmpssh交互。
  4。6危险命令拦截jmpssh在用户已经登录到目标服务器后,在该会话内,加载目标机器对应服务的危险命令规则,初始化正则匹配逻辑。jmpssh在用户输入语句结束后,根据该机器的危险命令规则,匹配用户输入的语句。jmpssh根据危险命令规则匹配后策略,决定对该输入做如下处理:告警、拦截、通过。对于通过的,jmpssh传递命令到目标服务器。对于告警的,jmpssh传递命令到目标服务器,但是向用户、用户的直属领导、jmp系统管理员发送危险命令告警。对于拦截的,jmpssh拒绝传递命令,同时向用户、用户的直属领导、jmp系统管理员发送危险命令告警。
  4。7非Linux服务器的跳板机Windows服务器对于Windows服务器,使用jmprdp服务,将rdp协议数据转成由socket。io承载的应用数据(依赖ApacheGuacamole),并通过web页面的Canvas展示实时图像并接受键盘鼠标事件。MySQL终端和Redis终端仅支持部署在Linux服务器上的MySQL和Redis。在服务器上通过mysql。sock,使jmpagent连接到本地MySQL服务,jmpagent转发标准输入和标准输出到jmpssh。在服务器上通过redis。sock,使jmpagent连接到本地Redis服务,jmpagent转发标准输入和标准输出jmpssh。该方法理论上支持任意可通过unixsocket连接的服务。网络设备管理终端对于网络终端,则jmpssh读取jmpapi接口,获取对应网络设备的连接信息(协议类型、账号信息等),实现连接和操作。
  五、权限规则和审批链路设计
  5。1默认拥有的权限
  无需申请,即可拥有的权限。授权的主体权限的目标权限的类型
  服务负责人
  服务的线上主机
  登录权限
  服务的线下主机
  登录权限ROOT权限
  项目负责人
  项目的线上主机
  登录权限
  项目的线下主机
  登录权限ROOT权限
  服务的运维
  服务的线上主机
  登录权限ROOT权限
  服务的线下主机
  项目的运维
  项目的线上主机
  登录权限ROOT权限
  项目的线下主机
  5。2权限申请的审批链路如果没有默认权限,但是需要登录机器,或者需要使用ROOT权限,则需要申请。如果为组织申请权限,则该组织(部门)下所有成员均有锁申请的权限。
  这里明确了申请流程的审批链路:
  六、这种实现思路的优点
  6。1操作方便,体验较好
  通过该思路所建设的跳板机系统,操作上比较方便,即支持了ssh、又兼容了rdp,同时提供了网页端操作入口,体验较好。同时,由于采用微服务架构,服务间耦合较小,比较容易做到高可用,从而很少出现卡顿、延时等现象,整体稳定性可靠,体验上有保证。
  6。2安全可靠,容易审计
  本文的最大特点就是在目标服务器上使用了pam机制,通过jmp。so接管多个服务的身份识别和权限认证,从而做到了在不修改标准命令的基础上,统一接管权限,统一管控。并且做到了在登录到目标机器上后,可以进一步ssh到其他服务器,所有的交互过程全程记录,所有的操作命令都会被记录下来。
  由于通过该思路所实现的跳板机直接将用户名作为目标服务器ssh会话的登录名,所以在系统内部所记录的日志里也是直接的用户名,而不是如jumpserver等方案的统一账号,这种方式下,更容易定位到操作轨迹的真实执行人,一目了然。
  危险命令拦截功能,更是可以很大程度上避免恶意操作或者破坏性强的误操作,为业务稳定性增加一层保障。
  6。3服务间职责明确
  由于采用了微服务架构,可以做到每个服务的横向扩展,从而做到了通过扩容服务的方式管控更多的机器。服务间职责明确,可根据需要裁减jmprdp、jmpsocket、jmpsftp,也可以根据需要增加新的服务,适配性较好。
  七、总结与展望
  随着服务器规模的扩大,如何管理这些服务器成为一个越来越重要的问题。针对服务器的登录访问,本文介绍了跳板机的一种实现思路,并描述了该思路的优点和独特之处。通过该思路可以一定程度上构建简单、易用且高可用的跳板机,从而解决服务器登录问题。如果读者对这个实现思路感兴趣,或者有任何疑问,欢迎与我们沟通。我们也非常愿意与各位一起学习,研究技术。
  作者:YangLei
  来源:微信公众号:vivo互联网技术
  出处:https:mp。weixin。qq。coms?bizMzI4NjY4MTU5Nwmid2247493879idx2sn7af0fb33d5efb3768b0ab168e19bd4df

早起发圈正能量图片语录新的一天,怀揣希望继续出发只要努力,未来会无限美好!早上好,周日!把人生当旅程的人,遇到的永远是风景,淡而远;而把人生当战场的人,遇到的永远是争斗,激而烈。早上好,周日!内心富有,眼睛里才能……IT之家评测室惠普VICTUS光影精灵7体验全新外观,高性价惠普今年更新了光影精灵产品线,推出了全新的惠普VICTUS光影精灵7游戏本产品,这一产品主要面向主流游戏玩家,NVIDIARTX3050笔记本电脑GPU配合11代酷睿H45处理……中学生的第一辆自动驾驶小车?商汤推多款AI教育产品5月15日上午消息,在2019商汤人工智能峰会上,商汤科技在智慧城市、教育、医疗、AR、智慧零售几个领域发布多款人工智能相关产品。在教育方面,商汤发布全国版AI教材《人工……明星十大尴尬场面,穷叉叉是小意思,陈晓连线袁姗姗当场愣住最近的网络热歌全明星版的穷叉叉大家听了吗?你哈哈穷叉叉想必听过这首歌的人脑袋里都会有这样的旋律。这首歌搞怪的风格以及欢快的旋律让其在各大社交平台迅速走红,然而这首歌……雷蛇发布幻彩头枕支持RGB灯效,999元IT之家1月26日消息,据雷蛇官方消息,新款幻彩头枕现已发布,支持雷蛇CHROMARGB幻彩技术,售价999元。雷蛇表示,这款头枕通过一个功能强大的平台控制约1680万种……车长4。05米纯电续航322km,顶配售价6。88万,带你看要说现在国内的新能源汽车市场竞争有多激烈,除了一些新势力造车品牌外,一些传统车企同样开始布局自己的电气化产品,不过大部分传统车企都是推出一个独立子品牌,就比如今天要介绍的EX3……怀孕8个月的蕾哈娜,冒严寒出席巴黎时装周迪奥秀,准备出新专辑据《镜报》报道,怀孕八个月的超级巨星蕾哈娜冒着严寒只穿内衣参加时装周。我相信她肚子里的婴儿很快就会不怕寒冷。早些时候,这对夫妇在下雪的纽约拍了一张照片,并宣布了他们怀孕的……这个奇葩打字外设火了,一分钟500词比直接说话还快,甚至被打你有没有见过这样奇形怪状的打字机。看着更像是手柄,但是这键也太多了emmmm这玩意儿也能打字?对,你没看错,这种新型打字机(CharaChorder)没有按键,而是靠每个……有一种退网叫做罗永浩式退网1000万的观看量直接成为当晚淘宝直播的顶流,一晚上直播间涨粉超过100万,此时距离入驻还不到4天罗永浩一在淘宝直播,果不其然又炸了。10月24号晚上的这场罗永浩淘……油价调价窗口今日开启,或迎年内第七跌中新网9月21日电(中新财经葛成)油价刚涨又降,或将迎来年内第七跌。9月21日24时,国内新一轮成品油调价窗口将开启。受国际油价变化影响,国内成品油价格或迎来一次小幅下调……酒店里的剧本杀你们玩过吗?随着旅游市场逐渐趋于年轻化,年轻人最爱的剧本杀也逐渐渗透到了酒店,而酒店与剧本杀的强强联手也成为了一种新的潮流。12月12日,记者经调查发现,最近越来越多的酒店开始引入剧本杀。……索尼发布Xperia1IV专用配件,游戏风扇扩展坞Xperi本月初,索尼举办了Xperia新品全球发布会,全新索尼微单手机Xperia5IV正式亮相。据悉,Xperia5IV配备了一块6。1英寸的OLED显示屏,仍旧是21:9屏幕……
天气转凉,孩子穿衣有讲究,牢记3暖1凉,孩子不生病导语:天气转凉,孩子穿衣有讲究,牢记3暖1凉,孩子不生病秋分节气一过,气温下降了不少,而且温差特别差,一早一晚冷得像冬天,而且经常忽冷忽热,天气变化莫测,让人捉摸不透。……无缘逆转,老詹309扭头就走!湖人意中人285,威少148塔北京时间3月15日湖人主场对阵猛龙,全场比赛结束湖人以103114输给了猛龙。上场比赛湖人遭遇惨败,本场比赛湖人背靠背作战不说,而且他们面对的还是实力不俗的猛龙,所以这场比赛湖……九华山景区挑夫堵路向游客要钱,称给多少都是心意?景区回应绝不3月5日,据后浪视频报道,近日,在安徽池州,网曝九华山景区一挑夫堵路向游客要钱,引发关注。视频中,挑夫将扁担横在路上向游客要钱,称给我们进点生意,给多少都是心意。游客无奈……梁杏麻绎文软件调整可能尚未结束,但长期依然看好摘要:年初我们在大科技成长板块里选择软件ETF作为年度主线,一个很重要原因就是,我们看到了政策持续支持的力度,以及今年基本面业绩落地的可能性较大,软件公司的业绩有望随着经……日本球队的梦想是在本届比赛里直入八强世界杯,日本队,八强,小组赛,出线在亚洲地区当中,估计日本球队算是一个比较厉害的球队,相对来说,日本球队的整体竞争就比较厉害,而且日本球队,这次能够顺利晋级到2022年世……行走的丹拿音箱?一加BudsPro2轻享版发布售799元3月7日,一加发布会正式举行,这场发布会的焦点无疑是新机一加Ace2V,但另外一款耳机产品同样也值得注意,那就是一加BudsPro2轻享版,号称配置拉满的真无线耳机音质代表作,……桐城市唐湾镇三色融合描绘乡村振兴新图景来源:人民网安徽频道原创稿唐湾镇位于桐城西部山区,这里生态环境优美、特色资源丰富。近年来,该镇坚持生态立镇、特色强镇、旅游活镇、人文兴镇战略,以建设红色引领,绿色发展,古……清华等高校自研卫星载荷成功发射将组网联合观测伽马暴新华社北京1月16日电(记者魏梦佳)记者从清华大学获悉,天格计划合作组4所高校研制的4颗卫星载荷于15日成功发射,截至16日状态良好,载荷成功完成上电初测。据悉,此次成功发射的……暖春季节登场,该是针织衫大显身手的时候了,休闲舒适又百变小姐姐想要在初春季节穿得既舒适又洋气吗?那你一定不能错过的搭配单品就是针织衫了,这种每年初春季节都会流行起来的单品在款式的设计上非常多变,加上百搭性也非常好,因此就算是非常简单……有公积金的人恭喜了!2022年迎来新变化,换一种方式涨工资?很多人在找工作的时候,很看重公司的五险一金,对于没买房的人,公积金尤为重要,要知道目前的商业贷款利率还维持在5左右,而公积金的贷款利率只有3。25,员工用公积金买房,不仅月供压……好命之人,天必赐苦别担心,这些苦,是老天用来考验你的01hr老子说过,福兮祸之所伏,祸兮福之所倚。这所谓的福气和祸患,都是相互转换的。就跟日月阴阳一般,有白天,就一定会有黑夜。有光明,就一定会有黑暗。你没有见识过清冷……迪马利亚梅西给你俩窝窝,因为荷兰队挑衅在先,干扰我们罚点球1月29日消息,日前,阿根廷球员迪马利亚接受阿根廷媒体《奥莱报》的采访,谈到了对世界杯上与荷兰队的争议庆祝,他表示,梅西对对方前锋韦霍斯特爆粗等是因为荷兰队冒犯在先。在卡……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网