写在前面:
今天出了门,带着我的小电脑,到目的地后准备写一些python代码,打开电脑发现它自检不通过,我知道问题应该是内存条没装好导致,但手里没有螺丝刀,正好旁边有公用的电脑,另外我想到之前我在UCLOUD上买过一台云主机,于是想要通过这台公用电脑的浏览器写代码,这就是这篇随笔诞生的原因。
基本配置要求:
python: 2.6+ or 3.2+
不能用4.0之前的tornado,会造成GateOne无法安装,也不能用最新的5.0版本,因为在5.0之后就废弃了io_loop参数,会造成GateOne安装后无法启动。
说明:
gateone是使用python语言开发的,框架是tornado
1.检查python版本
python -V
# 版本是2.7.5
2.安装pip
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python get-pip.py
#会自动检测运行此脚本的python解释器的版本,会自动安装对应版本的pip
3.安装virtualenv
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com virtualenv
4.创建python虚拟环境
mkdir -p /pythonvenv
cd /pythonvenv
virtualenv gateone_venv -p /usr/bin/python
5.安装tornado
source /pythonvenv/gateone_venv/bin/activate
pip install tornado==4.1
6.验证tornado环境
pip freeze
python -c "import tornado; print(tornado.version)"
7.安装git
yum -y install git
8.获取gateone源码
mkdir -p /opt/source
cd /opt/source
git clone https://github.com/liftoff/GateOne.git gateone
9.安装gateone
cd /opt/source/gateone
python setup.py install --record logName
#该命令执行后,做的工作如下:
* 会自动安装需要的模块
* 在python虚拟环境的bin目录下产生一个gateone.py启动脚本:/pythonvenv/gateone_venv/bin/gateone
* 在systemd中添加了一个gateone.service服务
* 自动生成了配置文件/etc/gateone/conf.d/10server.conf
10.启动gateone
#临时启动的命令,此时我们可以退出python虚拟环境,然后执行:
/pythonvenv/gateone_venv/bin/gateone
#后台运行的命令:
systemctl enable gateone
systemctl start gateone
systemctl status gateone
这个软件本身的核心功能真的很不错,但还不能用于公网环境,因为它还没有权限控制,直接安装这个软件会导致自己的服务器很轻易的成为别人的肉鸡。截图你就能明白了,别人完全可以通过我这个平台去登陆别人的服务器:
Host/IP or ssh:// URL [localhost]: 10.19.xx.xx
Port [22]:
User: root
Connecting to ssh://root@10.19.xx.xx:22
root@10.19.xx.xx's password:
Last login: Sat Oct 5 15:39:42 2019 from localhost
[root@ops ~]#
到这里,不得不说,我要卸载它了。希望以后自己能使用它进行二次开发。这个软件不仅仅是一个web版的ssh模拟器,它本身的定位是一个开源堡垒机,支持操作日志回放等运维安全需要的功能。
卸载:cat logName | xargs rm -rf