一、背景笔者最近想起了之前公司用的堡垒机系统,觉得用起来很方便,但是目前公司还没有搭建这样的系统,想着以后可能会用到,最近有点时间,所以对搭建堡垒机系统产生了兴趣。搭建过程中参考了很多文档,其中最详细的是官方文档,地址如下:Jumpserver文档2.操作总结1.系统运行2.配置介绍3.测试验证3.系统运行官方文档中介绍了多种安装堡垒机的方法,让笔者有些纠结。另外,不同系统的安装方式也不一致,但是我四处游荡发现一种常见的安装方式是使用docker安装,所以本文以docker安装为例。3.1下载镜像jumpserver没有包含在docker官方镜像库中,所以下载镜像命令如下:dockerpullregistry。jumpserver.org/public/jumpserver:1.0.0的下载过程可能很慢。笔者用了大约14分钟的时间来下载它。Afterthedownloadiscomplete,theresultisasfollows1.0.0:Pullingfrompublic/jumpserveraf4b0a2388c6:Pullcompleteaa66a3d10fd2:Pullcomplete1d4c6a27f2ac:Pullcomplete2490267572de:Pullcompleteb00f1599768d:Pullcomplete398fc903cdc3:Pullcompletef8490bbfc09a:Pullcomplete86d238b365f5:Pullcomplete2cd3b1ef59b2:Pullcomplete4a21434eeb73:Pullcompleteae8cf3e909e0:拉完成7c440776471a:拉完成0a5e895f91af:拉完成b86672241685:拉完成af16a4945f95:拉完成0374e723cd6c:拉完成e18b86849df9:拉完成648aa832cb74:Pullcompleteb52364a5c704:PullcompleteDigest:sha256:0f26e439c492ac52cbc1926aa950a59730607c947c79557ab3da51bfc2c7b5d4Status:Downloadednewerimageforregistry.jumpserver.org/public/jumpserver:1.0.03.2运行镜像下载之后笔者需要将下载下来的容器运行起来,为了防止80端口被宿主机其他进程Occupied,somapthecontainerportto8011ofthehostmachine,runthecommandasfollows:dockerrun--namejms_server-d-p8011:80-p2222:2222registry.jumpserver.org/public/jumpserver:1.0.0isincludedintheparametersbecausethebackgroundrunningparameter-disadded,theterminalwillnotenterthecontainerbashafterthecontainerisrunning,andwhenthecommandisexecutedsuccessfully,dockerwillreturnthecontainerID,ifitreturnsinformation,theremaybeanabnormalerror,normalThereturnedresultsareasfollows:4709a7d85af28bf05a63fb3e42541a41c30edda6668fd54a446cfab006c35b9e3.3Afterrunningandcheckingthecontainer,Ineedtocheckittoensurethatitrunssuccessfully.Therearetwowaystocheck.First,observewhetherthecontainerisrunningnormally,andthencheckwhetherthebastionmachinecanbeaccessedbythebrowser.Usethefollowingcommandtoviewthecurrentlyrunningcontainerdockerps.Ifthecontainerisrunningnormally,thecontainerIDofthebastionmachinethatIjustranwillappear.Forthenormalreturnresults,refertothefollowingCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES4709a7d85af2registry.jumpserver.org/public/jumpserver:1.0.0"/opt/start_jms.sh"8分钟前Up8分钟443/tcp,0.0.0.0:2222->2222/tcp,0.0.0.0:8011->80/tcpjms_server在返回的结果中可以看到docker返回的容器ID正在运行。可以确认容器运行正常,接下来笔者需要通过浏览器查看是否运行成功。用浏览器打开如下地址http://127.0.0.1:8011/当浏览器出现如下界面时基本就代表成功了。4.开始配置在确认系统运行正常后,您就可以对系统进行一些配置了。堡垒机的配置比较简单。以下配置将是使用堡垒机最基本的配置。配置主要是添加一些资产进行管理。然后需要添加管理用户、系统普通用户、账号授权等操作。4.1登录系统在之前的试运行截图中可以看到需要登录,但是账号和密码我在官方文档中没有看到,所以随便试了下,发现用户名和密码分别为admin和admin,如下图,登录成功后,进入系统看到的界面如下图所示4.2管理用户接下来,我需要添加一些资产,该管理用户是资产最高权限的账户。堡垒机将使用该账号登录和管理资产,获取一些统计信息。在用户管理页面,如下图,可以看到在表单中必须填写用户名,以及用于认证的密码或私钥,根据实际情况填写。比如笔者资产权限最高的账号是song,密码是123456Ab,那就如实填写。4.3资产管理添加管理用户后,可以添加资产。添加资产也非常简单。点击资产列表中的创建资产按钮,即可进入添加资产的页面。如下图,添加资产需要填写,以及资产的IP地址,以及ssh的端口号,以及选择资产的操作系统类型,使用哪个管理用户4.4系统用户资产管理下还有一个系统用户管理。这个系统用户的使用场景是,有时候需要在很多目标资产中创建一个普通账户,这时候一定很麻烦;此时可以在堡垒机上通过系统用户管理创建系统用户;然后发送到目标资产,这样就不用去目标主机一个一个登录再创建,非常方便。添加系统用户,如下图,创建系统用户,需要输入要创建的账号,选择认证方式。默认是密钥方法。您也可以删除选择框并传递密码。进行验证。5.测试验证前面的配置步骤完成后,可以进行一些常规的功能验证,加深对jumpserver系统的理解。这些功能测试点包括资产连接测试、用户授权、Web终端、在线会话、命令记录等功能。5.1连接测试连接测试的目的是检查资产是否可以被堡垒机访问。您可以在资产列表中点击资产名称,进入资产详情页面。右侧有两个按钮。单击刷新按钮。正确配置的参考效果如下图,如果能看到左边的硬件信息有变化,说明之前配置的管理用户没有问题,否则会出现错误提示框弹出窗口;5.2用户授权配置资产后,如果想直接连接堡垒机中的终端,也需要对用户进行授权。授权分为两步。第一步,授权web端账号,在会话管理->终端管理,如下图。第二步是给用户自己授权,在授权管理->资产权限->创建权限规则并进行相应配置,如下图5.3Web终端用户授权后,用户可以在中与系统进行交互SessionManagement->WebTerminal,如下图5.4在线会话有时候想看看谁在操作服务器,可以通过在线会话功能轻松查看当前有哪些用户在操作终端,在会话中查看management->onlinesessionlist,如下图所示5.5命令记录笔者认为堡垒机最大的功能之一就是审计。如果想知道用户在系统中执行过哪些命令,可以在会话管理->命令记录中轻松查看,如下图。如果你对实用文章感兴趣,可以关注作者的新书《PHP Web安全开发实战》,现已在各大平台发售。封面如下图作者:唐庆松微信:songboy8888日期:2018-10-30
