环境
- CentOS 7.4
- python 2.7.5+
准备
安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
如果您使用的是由您的操作系统或其他软件包管理器管理的Python安装,请务必小心。get-pip.py不与这些工具协调,可能会使系统处于不一致状态。
安装依赖
此处内容需要评论回复后方可阅读
安装 dtach
安装 Gate One
下载开源项目
cd /usr/local
git clone https://github.com/liftoff/GateOne.git
安装
cd GateOne
python setup.py install
帮助信息
gateone --help
运行
gateone #前台运行
systemctl start gateone #后台运行
配置文件
简单介绍一些配置文件的内容,如有错误请指正,更多内容请查看官方文档
- 配置文件会在第一次运行 gateone 时创建
- 默认配置文件目录:/etc/gateone/
- 主要配置文件:/etc/gateone/conf.d/10server.conf
- 配置文件除最后一条配置项其余以逗号结尾
日志
服务运行
身份验证
证书
缓存
调试
用户和组
语言
会话
url
用户文件
"log_file_max_size": 104857600 # 设置日志最大大小(字节),注意:Web 服务器日志设置不适用于 Gate One 的用户会话日志记录功能。
"log_file_max_size": 10 # 设置日志的最大备份数量
"log_file_prefix": "/var/log/gateone/gateone.log" # 日志保存位置
"log_to_stderr": False # 此选项告诉 Gate One 将 Web 服务器日志发送到 stderr(而不是日志文件)
"logging": "info" # 指定记录日志级别,分别有 (info|warning|error|none)
"address": "" # 监听地址,为空表示本机所有 ip,多个时使用;号来作为分隔符
"port": 443 # 监听端口
"api_keys": {
"ZWVkOWJjZ23yNjNlNDQ1YWE3MThiYmI0M72sujFhODFiZ": "NTg5NTllOTIyMD1lNGU1MzkzZDM4NjVkZWNGNDdlN2RmO"
} #指定在使用 Gate One 的身份验证 API 执行时可以使用的 API 密钥列表(键:值对)
"api_timestamp_window": "30s" # 此设置控制 API 身份验证对象在过期之前将持续多长时间,如果 auth 选项设置为 api,则默认为 30 秒,接受 [s/m/h/d] 时间符号。
如果 Gate One 服务器与嵌入它的 Web 服务器之间的时钟漂移值过小,则可能导致 API 身份验证失败。
如果设置太高,则会提供更长的时间窗口,攻击者可以在重新启动 Gate One 服务器时重新使用该令牌。
重要提示: Gate One 会跟踪已使用的身份验证对象,但仅限于内存中。
如果重新启动服务器,则会有一个窗口,其中可以重用 API 身份验证对象(也称为身份验证重放攻击)。
这就是为什么你希望 api_timestamp_window 是短的但不能太短以至于如果时钟有点不同步会导致问题。
"auth": "none" # 指定 Gate One 如何对客户端进行身份验证,使用其中一个 [none/pam/google/kerberos/api]
"ca_certs": "/opt/gateone/ca_certs.pem" #默认为无,CA 证书的路径,在 ssl_auth 选项设置为 [optional/required] 时用来验证客户端
"certificate": "/etc/gateone/ssl/certificate.pem" #SSL 证书的路径,必须使用 PEM 格式
"keyfile": "/etc/gateone/ssl/keyfile.pem" #SSL 证书 key 文件路径,必须使用 PEM 格式
"disable_ssl": false #true 为禁用 Gate One 中的 SSL 支持
"https_redirect": false # 如果启用了 https_redirect,则 Gate One 将侦听端口 80 并使用 HTTPS 将传入连接重定向到 Gate One 的已配置端口
"cache_dir": "/tmp/gateone_cache" # 缓存路径
"cookie_secret": "MTc5MWFmMDkxMjk4NDg0ZDg5ZDJhZWZmZWM5MjBkNjIzY" #45 字符的字符串,加密客户端的 cookie,第一次运行时随机生成一个
"debug": false
"gid": "0"
"uid": "0"
"locale": "en_US" # 此选项告诉 Gate One 在渲染字符串时使用哪种本地翻译(本机语言)。
第一次运行 Gate One 时,它将尝试使用 $LANG 环境变量自动检测您的语言环境。如果未设置此变量,则将回退使用 en_US
"session_dir": "/tmp/gateone" #Gate One 应该保留临时用户会话信息的路径。默认为 /tmp/gateone(如果不存在,将自动创建)。
"session_timeout": "5d" #会话超时时间,接受 [s/m/h/d] 时间符号
"url_prefix": "/" # 这指定了 Gate One 从浏览器访问时将存在的 URL 路径。默认情况下,Gate One 将使用 “/” 作为其基本
"user_dir": "/var/lib/gateone/users" #指定将保留持久用户文件的位置。会话日志,ssh 文件(known_hosts,密钥等)等内容存储在此处。
"user_logs_max_age": "30d" # 此设置控制 Gate One 在清除旧用户会话日志之前等待的时间,接受 [s/m/h/d] 时间符号
配置 nginx 代理
首先修改 gateone 配置文件:/etc/gateone/conf.d/10server.conf
"address": "127.0.0.1", #只监听本地
"disable_ssl": true, #禁用ssl
"port": 1200, #本地监听端口
"url_prefix": "/gateone" #这里要跟nginx设置的一样,例如域名是www.example.com,那么访问就是www.example.com/gateone
修改 nginx 配置,添加一个 server
server {
listen 443 ssl;
server_name <域名>;
ssl_certificate cert/<证书.pem>;
ssl_certificate_key cert/<证书.key>;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#下面是有关于代理GateOne的配置
location /gateone/ { #这里/gateone跟"url_prefix": "/gateone"一样
proxy_pass http://127.0.0.1:1200; #指定本地监听的GateOne
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $http_address;
proxy_set_header X-Scheme $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
|版权声明:如果没有其他说明,则 搭建GateOne详细流程 为蒸汽天下原创文章,转载请注明出处!
学习一下
学习一下
感谢
感谢分享
非常感谢 学习一下如何使用
我确认
非常感谢