技术领域
[0001] 本
发明涉及计算机技术领域,尤其涉及一种服务器管理方法及系统。
背景技术
[0002] 如何安全高效地管理企业中大量的服务器是每个系统运维人员或开发人员的必要工作。目前,管理服务器最基本的方式就是通过SSH(Secure Shell)远程连接,查看服务器的运行情况。
[0003]
现有技术中,通过电脑连接到服务器时,用户需要在终端电脑上打开SSH
软件或者命令行,输入用户名、要连接的服务器的IP地址或域名,并输入连接相应的服务器时所需的账号和密码,上述账号和密码预先配置好后分配给用户。为了保证安全性,每台服务器具有与其相对应的账号和密码。操作人员在终端电脑发起SSH连接后,服务器验证账号和密码信息以决定是否允许该用户连接。当需要连接多台服务器时,操作人员需要输入多台服务器的账号和密码,并一个一个地与相应服务器建立连接。显然,这种连接方式非常耗时,使得连接效率低下;且操作人员需要管理大量的账号和密码,操作繁琐,也容易发生账号和密码的泄露,不能保证服务器的安全性。
发明内容
[0004] 本发明旨在提供一种服务器管理方法及系统,能够方便快捷地对服务器进行连接查看,且能够保证服务器的安全性。
[0005] 为达到上述目的,本发明采用的技术方案如下:
[0006] 一种服务器管理方法,包括:建立LDAP服务器和跳板机;在所述跳板机上配置SSH和LDAP网络服务;用户通过终端与所述跳板机建立SSH连接;其中,同一类用户配置有相同的公共账号和密钥,所述公共账号和密钥用于登录
应用服务器;所述公共账号和密钥存储于所述跳板机中;所述跳板机从所述终端获取用户信息,所述跳板机从所述LDAP服务器获取所述用户信息对应的用户权限;所述跳板机根据所述用户权限生成用户可
访问的应用服务器列表,并将所述应用服务器列表发送给所述终端;所述用户在所述终端上从所述应用服务器列表中选择目标应用服务器,并将所述目标应用服务器发送给所述跳板机;所述跳板机采用所述用户对应的公共账号和密钥,SSH远程登录到所述目标应用服务器。
[0007] 优选地,所述用户通过终端与所述跳板机建立SSH连接的方法为:用户通过终端向所述跳板机发送SSH远程连接
请求;所述跳板机接收到所述远程连接请求后,向所述LDAP服务器发送验证请求;所述验证请求中包含用户信息;所述LDAP服务器接收到所述验证请求后,验证所述用户信息,并将验证结果反馈给所述跳板机;验证成功后,跳板机允许用户登录。
[0008] 进一步地,在用户通过终端与所述跳板机建立SSH连接之后,还包括:所述跳板机创建审计日志;所述审计日志用于记录所述跳板机、LDAP服务器、终端、应用服务器之间的会话;所述审计日志还用于记录与所述跳板机建立SSH连接的用户的用户信息和终端信息。
[0009] 优选地,采用创建子shell的方式,通过
命令行界面在所述终端上将所述应用服务器列表展示给用户。
[0010] 优选地,所述密钥为基于RSA加密的非对称密钥。
[0011] 优选地,所述跳板机采用所述用户对应的公共账号和密钥,采用创建子shell的方式,SSH远程登录到所述目标应用服务器。
[0012] 一种服务器管理系统,包括:终端,跳板机,LDAP服务器,应用服务器;所述应用服务器有一个以上;所述跳板机包括:权限校验模
块,列表生成模块;所述终端用于与所述跳板机建立SSH连接;所述LDAP服务器用于存储预先分配的用户信息和用户权限;所述跳板机上配置有SSH和LDAP网络服务;所述跳板机中存储有用户的公共账号和密钥,所述公共账号和密钥用于登录所述应用服务器;同一类用户配置有相同的公共账号和密钥;所述权限校验模块从所述终端获取用户信息,并从所述LDAP服务器获取所述用户信息对应的用户权限;所述列表生成模块根据所述用户权限生成用户可访问的应用服务器列表,并将所述应用服务器列表发送给所述终端;所述终端还用于显示所述应用服务器列表供用户选择,获取目标应用服务器;所述终端还用于将所述目标应用服务器发送给所述跳板机;所述跳板机还用于采用用户对应的公共账号和密钥,SSH远程登录到所述目标应用服务器。
[0013] 进一步地,所述终端还用于向所述跳板机发送SSH远程连接请求;所述跳板机还用于接收所述远程连接请求;所述跳板机还用于向所述LDAP服务器发送验证请求;所述验证请求中包含用户信息;所述LDAP服务器还用于接收所述验证请求,验证所述用户信息,并将验证结果反馈给所述跳板机。
[0014] 进一步地,所述跳板机还包括:日志审计模块,用于创建审计日志;所述审计日志用于记录所述跳板机、LDAP服务器、终端、应用服务器之间的会话;所述审计日志还用于记录与所述跳板机建立SSH连接的用户的用户信息和终端信息。
[0015] 优选地,采用创建子shell的方式,通过命令行界面在所述终端上将所述应用服务器列表展示给用户;所述密钥为基于RSA加密的非对称密钥;所述跳板机采用所述用户对应的公共账号和密钥,采用创建子shell的方式,SSH远程登录到所述目标应用服务器。
[0016] 本发明
实施例提供的服务器管理方法及系统,通过基于LDAP的跳板机远程登录的方法,让跳板机作为应用服务器的入口,即所有的应用服务器只能通过跳板机进行登录访问。且对同一类用户配置相同的公共账号和密钥,密钥对用户不可见,不同用户拥有不同的服务器登录权限。对用户而言,实现了免密码登录应用服务器,用户只需记住自己的用户信息,而不需再记录和管理每个应用服务器对应的登录账号和密码,简化了服务器的管理流程,也提升了服务器的安全性。同时,本发明采用LDAP服务器来管理用户信息和用户权限,简化了连接过程,也提高了连接速率。此外,本发明中用户的每一项操作均通过审计日志记录,进一步提高了服务器管理
质量。可见,本发明提供的技术方案,能够方便快捷地对服务器进行连接查看,且能够保证服务器的安全性。
附图说明
[0018] 图2为本发明实施例的系统结构图。
具体实施方式
[0019] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。
[0020] 图1为本发明实施例的方法流程图,包括以下步骤:
[0021] 步骤101,建立LDAP服务器和跳板机;在所述跳板机上配置SSH和LDAP网络服务;
[0022] SSH为Secure Shell的缩写,由IETF的网络工作小组Network Working Group所制定。SSH为建立在应用层和传输层
基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH服务是当前广泛使用的网络服务程序,在主流Linux发行版中都可以部署安装,它传输的数据进行加密和压缩,连接速度快,可以有效避免“中间人”的攻击;LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是企业常用的统一身份认证及资源管理和访问控制系统,利用LDAP,用户管理变得更为高效和安全。上述所说的两项网络服务,往往一般企业现成就具备,即使没有,也可以在短时间内利用OpenSSH和OpenLDAP等开源资源快速新建,十分便捷。
[0023] 本步骤中,在跳板机上配置SSH Server及基于LDAP认证的授权连接,使得跳板机作为LDAP客户端连接到LDAP服务器,以此控制跳板机上的SSH登录验证和授权。
[0024] 步骤102,用户通过终端与所述跳板机建立SSH连接;其中,同一类用户配置有相同的公共账号和密钥,所述公共账号和密钥用于登录应用服务器;所述公共账号和密钥存储于所述跳板机中;
[0025] 本实施例中,不同用户配置有不同的用户信息和用户权限;所述密钥为基于RSA加密的非对称密钥。所述用户通过终端与所述跳板机建立SSH连接的方法为:用户通过终端向所述跳板机发送SSH远程连接请求;所述跳板机接收到所述远程连接请求后,向所述LDAP服务器发送验证请求;所述验证请求中包含用户信息;所述LDAP服务器接收到所述验证请求后,验证
数据库中的所述用户信息,并将验证结果反馈给所述跳板机;验证成功后,跳板机允许用户登录。
[0026] 在用户通过终端与所述跳板机建立SSH连接之后,还包括:所述跳板机创建审计日志;所述审计日志用于记录所述跳板机、LDAP服务器、终端、应用服务器之间的会话;所述审计日志还用于记录与所述跳板机建立SSH连接的用户的用户信息和终端信息。用户SSH子shell命令行界面输出内容,包括显示的应用服务器列表内容和用户选项操作都记录到审计日志文件内容中。所述审计日志的文件名包括:终端的IP地址,终端网卡的MAC地址,用户通过终端输入的ID,终端与跳板机连接时的时间戳信息等。
[0027] 本实施例中,从所述终端获取用户信息,并从所述LDAP服务器获取所述用户信息对应的用户权限,通过跳板机中的权限校验模块实现;根据所述用户权限生成用户可访问的应用服务器列表,并将所述应用服务器列表发送给所述终端,通过跳板机中的列表生成模块实现;创建审计日志通过跳板机中的日志审计模块实现。
[0028] 步骤103,所述跳板机从所述终端获取用户信息,所述跳板机从所述LDAP服务器获取所述用户信息对应的用户权限;
[0029] 步骤104,所述跳板机根据所述用户权限生成用户可访问的应用服务器列表,并将所述应用服务器列表发送给所述终端;
[0030] 本实施例中,所述终端显示接收到的应用服务器列表,具体地,采用创建子shell的方式,通过命令行界面(CLI,command-line interface)在所述终端上将所述应用服务器列表展示给用户。
[0031] 步骤105,所述用户在所述终端上从所述应用服务器列表中选择目标应用服务器,并将所述目标应用服务器发送给所述跳板机;
[0032] 步骤106,所述跳板机采用所述用户对应的公共账号和密钥,SSH远程登录到所述目标应用服务器。
[0033] 本实施例中,所述跳板机采用所述用户对应的公共账号和密钥,采用创建子shell的方式,SSH远程登录到所述目标应用服务器。
[0034] 本实施例中,所述公共账号,是应用服务器上预先配置的权限差异的账户,比如:初级运维公共账户,高级运维公共账户,开发人员公共账户等。所述密钥是通过ssh-keygen等工具生成的基于RSA加密的非对称密钥对,包括公钥和私钥,其中,私钥和公共账号存储于跳板机中,公钥在应用服务器上;利用不同账户的私钥可以免密码SSH连接到应用服务器上对应的公共账户。
[0035] 通过公共账户SSH远程到应用服务器上,也是通过子shell的方式建立连接,并且用户后续在应用服务器上命令行的操作都会记录到上述日志审计模块生成的审计日志中;与应用服务器建立SSH的过程中用户无需获得私钥,保证了密钥的安全性,也让用户对密钥无感。上述需要用户参与的步骤,包括:步骤102,步骤103和步骤105,从用户发起访问到用户成功通过跳板机远程到应用服务器,整个过程中,都是基于命令行CLI的交互,请求响应速度快,用户操作简单,十分便捷。
[0036] 本发明还公开一种服务器管理系统,包括:终端,跳板机,LDAP服务器,应用服务器;所述应用服务器有一个以上;所述跳板机包括:权限校验模块,列表生成模块;以上各个装置和各个模块的功能、连接关系等在上述服务器管理方法中已公开,此处不再赘述。
[0037] 现以电脑作为用户终端,web服务器集群作为要远程连接的应用服务器,用户通过电脑远程连接到web服务器集群查看服务运行情况为例进一步说明本发明的原理及效果。当用户在终端电脑上打开SSH软件或者命令行,输入要连接的web服务器的IP地址或域名,以及连接使用的用户名,由于web服务器都在互联网上,所以,需要由管理员先配置服务器集群SSH开放到公网,并预先配置用户连接的密钥或者账号密码,并分配给用户。用户在终端发起SSH连接后,web服务器验证用户的账号密码信息,或密钥信息。有多台服务器需要查看运行情况的场景下,用户需要保存和配置输入了多个服务器的账号及密码,如此一来,SSH连接服务器变得耗时而且复杂;若多台服务器配置统一的密码或密钥,就会带来密码管理问题和密钥泄露的安全问题。那么使用以下方法则能有效解决这一问题。
[0038] 如图2,在web服务器所在
数据中心搭建基于LDAP的跳板机,再通过跳板机远程登录web服务器。包括以下步骤:
[0039] (1)配置基于LDAP的远程跳板机,仅开放跳板机的远程SSH服务端口到公网;
[0040] (2)在web应用服务器集群上配置预先规划的公共账号的密钥和权限;
[0041] (3)在web应用服务器集群上配置仅允许跳板机的内网IP登录访问;
[0042] (4)用户使用个人的LDAP账户信息利用电脑远程连接到跳板机;
[0043] (5)跳板机返回给用户web服务器列表供用户选择;
[0044] (6)用户根据列表选择要登录的web服务器;
[0045] (7)跳板机使用公共账户跳转用户SSH会话登录到目标web服务器;
[0046] (8)用户访问列表中的其他web服务器,只需退出当前服务器,返回到服务器选择列表,再次选择。
[0047] 在上述实施例中,web服务器无需再单独开放SSH服务到公网,只需配置唯一的准许跳板机发起的SSH连接,使SSH配置策略变得简单而SSH服务也更加安全。
[0048] 本发明实施例提供的服务器管理方法及系统,通过基于LDAP的跳板机远程登录的方法,让跳板机作为应用服务器的入口,即所有的应用服务器只能通过跳板机进行登录访问。且对同一类用户配置相同的公共账号和密钥,密钥对用户不可见,不同用户拥有不同的服务器登录权限。对用户而言,实现了免密码登录应用服务器,用户只需记住自己的用户信息,而不需再记录和管理每个应用服务器对应的登录账号和密码,简化了服务器的管理流程,也提升了服务器的安全性。同时,本发明采用LDAP服务器来管理用户信息和用户权限,简化了连接过程,也提高了连接速率。此外,本发明中用户的每一项操作均通过审计日志记录,进一步提高了服务器管理质量。本发明采用命令行列表选择的方式,进一步简化连接过程、提高连接速率。可见,本发明提供的技术方案,能够方便快捷地对服务器进行连接查看,且能够保证服务器的安全性。
[0049] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。