作者:田逸(formyz)
跳板服务器Jumpserver部署起来非常容易,但由于其组件多,组件之间关联复杂,一旦出现故障,恢复起来就比较费事。为了解决这个麻烦,本人通常是将Jumpserver部署到Proxmox VE 上的虚拟机,然后对整个虚拟机备份,如果有需要,直接从PBS 用备份进行完整恢复。
Proxmox VE 8安装Opensuse 15
JumpServer官方文档指出,JumpServer支持主流的Linux操作系统,比如Debian/RedHat/Ubuntu等,本人试着在FreeBSD 部署JumpServer,多次尝试没有成功,主要原因是安装Itables存在障碍。综合考虑,最终选择OpenSuse来部署JumpServer。
在Proxmox VE 8 Web管理后台创建虚拟机,命名为jmp104,挂接OpenSuse 15.4,分配好磁盘空间、内存等(如下图所示)。
启动虚拟机,进行操作系统安装引导,光标移动到第二项,进行下一步操做,如下图所示。
连续鼠标单击几次“Yes”或“Next”按钮,选择安装程序给出的默认值,直到系统角色(System Role)这个交互界面,单选“Server”(最小化安装模式,节省时间和空间)进入下一步,如下图所示。
由于整个OpenSuse系统只用于部署JumpServer,因此就无需对目标磁盘进行分区,直接使用默认的设置即可,如下图所示。
时区设定“chongqing”,接着单选“Skip Create User”,意思是不创建普通用户。并给超级管理员“root”账户设置两次相同的复杂密码。
返回到安装主界面,单击链接“Network Configuration”设置网络参数,包括“静态IP地址、子网掩码、网关、DNS服务器、主机名”这几个主要项目,如下图所示。
在默认情况下,网络的IP地址由DHCP分配,做为服务器,应该使用固定IP地址,因此需要将其进行变更。单击底部“edit”(如下图所示)。
将网络地址设置为“172.16.35.102”,掩码“255.255.255.0”,主机名jmp102,如下图所示。
类似的方法,设置DNS服务器地址为“223.6.6.6”,默认网关为“172.16.35.254”。默认网关的默认值是一个横线“-”,输入本地网关时,需要将横线删除,如下图所示。
预览主安装界面的汇总信息,如果没有需要对设置进行修改,单击右下侧按钮“Install”进行正式安装。
OpenSuse 安装完毕,重启系统,SSH客户端远程连接,验证安装的正确性,比如用指令“curl”访问外网。
OPenSuse 15部署JumpServer
如果以传统的方式,一个一个地用源码安装JumpServer所需的组件(包括JumpServer Core、Lina、Luna、Koko、Magnus、MySQL/Redis和Nginx),会很麻烦而且易于出错。幸运的是,官方提供一键式在线安装脚本,将这些组件以Docker镜像方式进行安装部署,极大的简化了操作,提高了效率。
登录OpenSUSE,确保系统网络通达,并可以访问JumpServer - 开源堡垒机 - 官网,如下图所示。
接着从官网拷贝在线安装的命令行:
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash |
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
只要操作系统的环境没有问题,剩下的安装任务交给时间,安装过程部分截图如下所示。
脚本运行完毕,屏幕输出最后的为容器启动成功的显示,如下图所示。
在命令提示符下,执行指令”ps、netstata”初步验证安装的正确性。然后再从远端的浏览器访问JumpServer所在系统的IP地址,如果能出现登录界面,输入用户“admin”,密码“admin”,会要求修改密码。设置一个复杂的密码,登录进去可以正常对JumpServer进行各种管理操作,则表明JumpServer安装完全正确。
JumpServer 备份与恢复
在Proxmox VE 平台部署的JumpServer备份非常容易,当然恢复也一样容易,点点鼠标就可轻松完成工作,相关的内容,可自行网上搜索,这里不再赘述。
如果不是以虚拟机部署,或者JumpServer被部署在别的虚拟化平台,用工具MondoSecue 一样可以进行整个系统的备份和恢复。
默认情况下,用OpenSuse的包管理器“zypper”是不能对MondoSecue进行安装的,需要添加MondoSecue的软件源。通过本人的一番努力,找到与之相关的官方发布的url为ftp://ftp.mondorescue.org/opensuse/15.4/x86_64.
在部署好JumpServer的宿主系统OpenSuse系统命令行,执行如下指令将MondoSecue源添加到系统。
zypper ar ftp://ftp.mondorescue.org/opensuse/15.4/x86_64 mondo |
zypper ar ftp://ftp.mondorescue.org/opensuse/15.4/x86_64 mondo
指令运行完毕,执行指令“zypper lr”查验是否被正常添加,如下图所示。
新添加的源“mondo”,以文本文件的方式保存在目录“/etc/zypp/repos.d”,如下图所示。
准备就绪,试着输入命令“zypper install mondo”,欧耶!没报错呢,输入字母“a”试试,如下图所示。
紧接上一步,输入字母“y”,进行下一步操作,如下图所示。
非常顺利,MondoSecue及其依赖(如afio、mindi等)全部被正确安装。根据屏幕输出,可了解到OpenSuse(也包括Suse),包管理工具使用的二进制安装包也是“rpm”。
为方便管理,避免系统盘被塞满,另外准备一个磁盘空间,用来存放备份的系统归档后的ISO文件,将其挂接到系统目录“/data”。
在正式进行进行JumpServer备份之前,需要修改文件“/etc/mindi/mindi.conf”,追加文本行“EXTRA_SPACE= 8015200”,不然执行备份操作时,会因为空间不足而退出。
一切准备妥当(备份文件存储空间,ramdisk存储空间),郑重输入命令“mondoarchive”,进行交互式备份。
将系统备份到硬盘,这里备份的路径是“/mnt/data”,实施者可以根据自己的情况自行选择。
输入全全路径(或者绝对路径)“/mnt/data/cache/mondo”,如下图所示。
压缩类型,选“gzip”,也可以选“bzip”,如下图所示。
选最大压缩率(Maximum),也就是默认值,如下图所示。
接下来几步,用默认值即可,到排除路径“Exclude paths”这步,把备份存储这个目录、临时目录等填写上,如下图所示。
接下来的几个目录选择,用默认值或者自定义的值都可以。询问是否备份扩展,也选默认值“Yes”。
原来备份扩展,是对操作系统的内核做处理,如下图所示。
询问是否需要校验,是否真的要处理(备份),直接回车。
到这里,交互过程全部完成,程序开始自动备份,可以实时看到备份的进度(如下图所示),以可以用“tail -f /var/log/ mondoarchive.log”了解详细的执行过程。
备份完毕后,点击按钮“ok”返回OpenSuse命令提示符。进入备份前指定的ISO存储目录,将“mondoarchive”执行过程中生成的ISO复制到目标机或者刻录成可引导U盘或者DVD光盘备用。
用准备好的JumpServer可引导U盘,或者直接将ISO镜像文件挂接到创建好的虚拟机,启动机器(或者虚拟机),进入引导界面,输入命令“nuke”,系统自动执行完全恢复操作,如下图所示。
自动恢复完毕后,重启系统,有浏览器访问JumpServer,验证恢复的正确性。