开源堡垒机GateOne的安装、配置笔记(详细步骤)
gateone简介
gateone是一款基于html5的开源终端模拟器/ssh客户端,同时内置强大的插件功能。它自带的插件使其成为一款令人惊艳的ssh客户端,但是,它可以用于运行任何终端应用。用户可以将gateone嵌入其他应用程序从而提供各类终端访问界面,它也支持各类基于web的管理界面……后面的大家自己看吧~~
因为内部临时需要这么一套系统,所以搜搜查查,搞定了系统部署,使用pam认证的配置,做了个简单的管理界面。
gateone部署
系统初始化是使用centos 6.5 mini x64版本 + 默认配置。
首先exports http_proxy和https_proxy,做好上网准备。
其次查看下安装需求。
http://liftoff.github.io/gateone/about/index.html#prerequisites
这里有相关的包下载:
https://github.com/liftoff/gateone/downloads
yum install -y http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum install -y python-devel gcc dtach python-pip python-imaging python-kerberos
yum install -y https://github.com/downloads/liftoff/gateone/tornado-2.4-1.noarch.rpm
cd /usr/local/src
git clone https://github.com/liftoff/gateone.git
cd gateone
python setup.py isntall
service gateone start
service gateone stop
gateone配置
vi /etc/gateone/conf.d/10server.conf
origins = ["x.x.x.x"]
address = "x.x.x.x"
https_redirect = true
vi /etc/gateone/conf.d/20authentication.conf
auth = "pam"
pam_realm = "accessgateway1"
pam_service = "gateone"
vi /etc/sysconfig/iptables
增加80和443端口
service iptables reload
nohup python gateone.py &
在safari下无法使用,报错如下:
the websocket connection was closed. will attempt to reconnect every 5 seconds...
note: some web proxies do not work properly with websockets.
pc和android中的chrome正常。
vi /etc/pam.d/gateone
#%pam-1.0
# login using a htpasswd file
#@include common-sessionauth
required pam_pwdfile.so pwdfile=/etc/gateone/passwd
required pam_permit.so
auth = "pam"
pam_realm = "accessgateway1"
pam_service = "gateone"
https://github.com/liftoff/gateone/issues/118
这里提到是pypam,别安装错了。
yum install git pam-devel pam pypam pam-devel
git https://github.com/tiwe-de/libpam-pwdfile.git
make && make install
ln /lib/security/pam_pwdfile.so /lib64/security/pam_pwdfile.so
密码生成用在线工具就行,记得选择crypt方式:http://tool.oschina.net/htpasswd
将生成的信息加入密码文件就行。
vi /etc/gateone/passwd
[go]
cry:wk463n25yhoqs
[esc]
[:wq]
关于gateone中log的管理
时间比较紧,查看gateone的文档中也未发现有统一管理的配置。所以让新员工临时用bootstrap+web.py写了个管理界面。