服务器管理神器 开源堡垒机 jumpserver 实战教程

一.简介

前面我们聊到了openvpn的部署和使用,它能够实现从互联网通过openvpn连接到公司内网服务器,从而进行远程管理。

但openvpn有一个缺点不能记录用户内部网服务器上操作了什么,拥有客户端的证书和私钥以及ca的证书和客户端配置,就可以直接连接到公司内网,这从某些角度讲不是一个安全的解决方案。


今天我们来聊了一台和openvpn有类似功能的软件jumpserver。jumpserver和openvpn都可以让用户从互联网连接公司内部网服务器,但通常jumpserver都不会放在互联网上。

它主要用于运维、开发,以及测试相关人员来利用它连接公司内部网服务器,从而实现集中管理公司内部网服务器。同时跳转服务器还具有权限管理,用户管理以及监控重定向等功能。


二.jumpserver架构图



三.jumpserver服务器安装

环境说明:

主机名称

角色

ip地址

节点01

Jumpserver网站

192.168.0.41

节点02

mysql/redis

192.168.0.42

1.在node02上部署mariadb

(版本最低5.5.6,如果是mysql版本最低5.6)

配置mariadbyum仓库:

[root@node02~]

安装MariaDB服务器:

[root@node02~];or\:10.1.46-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,'help;'or'\h''\c'[(none)]createdatabasejumpserverdefaultcharset'utf8'collate'utf8_bin';QueryOK,1rowaffected(0.00sec)MariaDB[(none)]grantallonjumpserver.*to'jumpserver'@'%'identifiedby'';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]flushprivileges;QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]

验证:使用jumpserver登录数据库:

[root@node02~]

到此,数据服务就准备好了。

2.在node02上部署redis

安装redis:

[root@node02~]grep-Ei"^(bind|requirepass)"/etc/[root@node02~]:6379KEYS*(error):6379:6379KEYS*(emptylistorset)192.168.0.42:6379exit[root@node02~]cat/etc//[docker-ce-stable]name=DockerCEStable-$basearchbaseurl=$basearch/stableenabled=1gpgcheck=1gpgkey=[docker-ce-stable-debuginfo]name=DockerCEStable-Debuginfo$basearchbaseurl=$basearch/stableenabled=0gpgcheck=1gpgkey=[docker-ce-stable-source]name=DockerCEStable-Sourcesbaseurl=[docker-ce-edge]name=DockerCEEdge-$basearchbaseurl=$basearch/edgeenabled=0gpgcheck=1gpgkey=[docker-ce-edge-debuginfo]name=DockerCEEdge-Debuginfo$basearchbaseurl=$basearch/edgeenabled=0gpgcheck=1gpgkey=[docker-ce-edge-source]name=DockerCEEdge-Sourcesbaseurl=[docker-ce-test]name=DockerCETest-$basearchbaseurl=$basearch/testenabled=0gpgcheck=1gpgkey=[docker-ce-test-debuginfo]name=DockerCETest-Debuginfo$basearchbaseurl=$basearch/testenabled=0gpgcheck=1gpgkey=[docker-ce-test-source]name=DockerCETest-Sourcesbaseurl=[docker-ce-nightly]name=DockerCENightly-$basearchbaseurl=$basearch/nightlyenabled=0gpgcheck=1gpgkey=[docker-ce-nightly-debuginfo]name=DockerCENightly-Debuginfo$basearchbaseurl=$basearch/nightlyenabled=0gpgcheck=1gpgkey=[docker-ce-nightly-source]name=DockerCENightly-Sourcesbaseurl=[root@node01~]yuminstall-ydocker-ce

启动docker:

[root@node01~]dockerinfoClient:DebugMode:falseServer:Containers:0Running:0Paused:0Stopped:0Images:0ServerVersion:19.03.13StorageDriver:overlay2BackingFilesystem:xfsSupportsd_type:trueNativeOverlayDiff:trueLoggingDriver:json-fileCgroupDriver:cgroupfsPlugins:Volume:localNetwork:bridgehostipvlanmacvlannulloverlayLog:awslogsfluentdgcplogsgelfjournaldjson-filelocallogentriessplunksyslogSwarm:inactiveRuntimes:runcDefaultRuntime:runcInitBinary:docker-initcontainerdversion:8fba4e9a7d01810a393d5d25a3621dc101981175runcversion:dc9208a3303feef5b3839f4323d9beb36df0a9ddinitversion:fec3683SecurityOptions:seccompProfile:defaultKernelVersion:3.10.0-693._64OperatingSystem:CentOSLinux7(Core)OSType:linuxArchitecture:x86_64CPUs:2TotalMemory:1.781GiBName::JQY2:LCCM:EU6J:ARI7:UCEL:5HUV:FGE4:6RTY:PWR3:NKJI:EA3K:BKSADockerRootDir:/var/lib/dockerDebugMode:falseRegistry:[root@node01~]cat/etc/docker/{"registry-mirrors":["",""]}[root@node01~]systemctlrestartdocker

使用dokerinfo命令验证加速器地址是否应用:


下载jumpserver网站:

[root@node01~]dockerpulljumpserver/jms_all::Pullingfromjumpserver/jms_all75f829a71a1c:Pullcompletef9c494d6df5d:Pullcomplete5135b4193f02:Pullcomplete918e815b1dc8:Pullcomplete0334369c4479:Pullcomplete64a0f2a7663a:PullcompleteDigest:sha256:2081c88eca6dffb41bc42d8fe06d18c4379eacdbb354fa56dffd2a918738274dStatus:Downloadednewerimageforjumpserver/jms_all:/jumpserver/jms_all:[root@node01~]

编写生成SECRET_KEY和BOOTSTRAP_TOKEN的脚本:

[root@node01~]!/bin/bashif[!"$SECRET_KEY"];thenSECRET_KEY=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c50`;echo"SECRET_KEY=$SECRET_KEY"~/.bashrc;echo$SECRET_KEY;elseecho$SECRET_KEY;fiif[!"$BOOTSTRAP_TOKEN"];thenBOOTSTRAP_TOKEN=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c16`;echo"BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN"~/.bashrc;echo$BOOTSTRAP_TOKEN;elseecho$BOOTSTRAP_TOKEN;fi[root@node01~]bashkey_OkiCq[root@node01~]mkdir/data/jumpserver/-pvmkdir:createddirectory‘/data’mkdir:createddirectory‘/data/jumpserver/’[root@node01~]dockerrun--namejms_all-d\-v/data/jumpserver/:/opt/jumpserver/data\-p80:80\-p2222:2222\-eSECRET_KEY=wIUaeZtCbtTNUDL9igEIImALjjaMo9ygPwfMWmPZcyWD0c3K9Q\-eBOOTSTRAP_TOKEN=Lx15DW9xDxqOkiCq\-eDB_HOST=192.168.0.42\-eDB_PORT=3306\-eDB_USER=jumpserver\-eDB_PASSWORD=\-eDB_NAME=jumpserver\-eREDIS_HOST=192.168.0.42\-eREDIS_PORT=6379\-eREDIS_PASSWORD=\--privileged=true\jumpserver/jms_all:e3[root@node01~]ss-tnlStateRecv-QS-QLocalAddress:PortPeerAddress:PortLISTEN0128*:22*:*:25*:*LISTEN0128:::2222:::*LISTEN0128:::80:::*LISTEN0128:::22:::*LISTEN0100::1:25:::*[root@node01~]#

提示:以上启动容器主要指定了maradb和redis服务器的相关地址和密码端口信息,其中在主机上暴露了80和2222端口。

查看日志:


提示:使用dockerlogs-f容器id能够看到上图中的信息,说明jumpserver容器就跑起来了。

访问jumpserver:


提示:访问jumpserver容器所在主机的ip地址即可访问到jumpserver,设置用户名和密码都是admin。


提示:第一次登陆时,它将为我们重设密码。


提示:重设密码后,重新登录,jumpserver的家就是上图这样。后续我们就可以在这个界面来管理内网服务器了。

到此,jumpserver服务器就建造好了。


四.jumpserver使用

1.jumpserver基本设置:


提示:基本设置是必须设置当前jumpserver的网址和邮件主题前缀,这样在用户收到邮件中的链接都会指向这个jumpserver的网址。

2.配置jumpserver发邮件的邮件服务器和用户名密码:


提示:在系统设置---邮件设置,把对应的帐户信息,邮件服务器信息都填写好。然后测试连接,如果可以正常收到邮件,说明邮件服务器信息和邮件用户名密码没有问题,最后点提交即可。

3.创建用户:





4.创建用户组,并把测试用户添加到对应的组中:


5.jumpserver资产管理---管理用户创建:


6.创建系统用户,这里的系统用户是指我们使用jumpserver登录到对应的被管控主机时用的用户:



提示:资产管理---系统用户---新建,填充好用户名,切换自动推和自动生成密钥,单击最下方的提交即可。

这里填充的用户会使用jumpserver上登录对应的主机用到用户,如果被管控端没有这个用户,jumpserver就会利用我们刚才添加的管理用户去创建一个这里的系统用户。

7.创建资产:



提示:提交完成后,我们就可以在资产列表中看到我们刚才添加到主机。

8.资产授权:


提示:权限管理---资产授权---创建,填充好名称后,要选择用户和组以及资产和系统用户,然后单击最下方的提交,到此一个资源就授权给测试用户和测试组中的成员了。

这里需要注意一点,一个例程中有很多服务器,如果你只想授权单台服务器给某个用户,下面的例程就留空。如果你想授权一个例程给用户你可以选择分组,上面的资产就可以留空。

如果你又想授权代理资产和某处给用户,就选择对应的资产和中断即可。如果这里选择默认实例,则表示将默认上游下的所有主机都授权给用户,默认默认包含所有主机。

验证:使用test用户登录jumpserver,看看test用户是否能够看到我们创造的资源?


提示:首次登陆,它将为我们更新用户的信息,然后同一些条款,这个我们按照实际信息来修改即可。在我的资产中可以看到当前用户有点资产。

验证:使用test用户连接node01看看是否可以连接到node01?



提示:可以看到测试用户是可以正常使用我们配置的jumpserver用户正常正常的连接到node01。

9.查看用户操作预览:



版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐