文章目录
Teleport 开源堡垒机安装使用
一、介绍
Teleport是一款简单易用的开源堡垒机系统,具有小巧、易用的特点,支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理。
Teleport由两大部分构成:
跳板核心服务
WEB操作界面
Teleport非常小巧且极易安装部署:仅需一分钟,就可以安装部署一套您自己的堡垒机系统!!
因为Teleport内建了所需的脚本引擎、WEB服务等模块,因此不需要额外安装其他的库或者模块,整个系统的安装与部署非常方便。
二、特点
Teleport 开源堡垒机具有如下特点,适合中小企业使用:
- 极易部署:简洁设计,小巧灵活,无额外依赖,确保您可以在5分钟内完成安装部署,开始使用。
- 安全增强:配置远程主机为仅被您的teleport服务器连接,可有效降低嗅探、扫描、暴力破解等攻击风险。
- 单点登录:只需登录您的teleport服务器,即可一键连接您的任意远程主机,无需记忆每台远程主机的密码了。
- 按需授权:可以随时授权指定运维人员访问指定的远程主机,也可随时回收授权。仅仅需要几次点击!
- 运维审计:对远程主机的操作均有详细记录,支持操作记录录像、回放,审计工作无负担。
三、安装
1、安装跳板核心服务
(1)下载安装
跳板核心服务需要安装在CenOS7环境下,切换到 root 身份:
[root@cnkanon ~]# wget https://tp4a.com/download/get-file/teleport-server-linux-x64-3.2.2.tar.gz
[root@cnkanon ~]# tar -zxvf teleport-server-linux-x64-3.2.2.tar.gz
[root@cnkanon ~]# cd teleport-server-linux-x64-3.2.2
# 执行setup.sh脚本安装
[root@cnkanon teleport]# ./setup.sh
安装进度如下图,系统默认安装到 /usr/local/teleport 目录下:
[root@cnkanon teleport]# ll
total 32
drwxrwxr-x 3 root root 4096 Jan 23 15:30 bin
drwxr-xr-x 6 root root 4096 Jun 27 21:30 data
-rwxr-xr-x 1 root root 1118 Jun 27 21:30 start.sh
-rwxr-xr-x 1 root root 568 Jun 27 21:30 status.sh
-rwxr-xr-x 1 root root 779 Jun 27 21:30 stop.sh
drwxrwxr-x 4 root root 4096 Jan 23 15:30 www
(2)数据库配置
Teleport-3.2.3 版本支持 sqlite3、mysql两种数据库,为方便后续账号管理、维护及迁移,本例使用 mysql 数据库,配置如下:
[root@cnkanon ~]# vi /usr/local/teleport/data/etc/web.ini
; codec: utf-8
[common]
; ip=0.0.0.0
; port listen by web server, default to 7190.
; DO NOT FORGET update `common::web-server-rpc` in core.ini if you modified this setting.
port=7190
; log file of web server, default to /var/log/teleport/tpweb.log
; log-file=/var/log/teleport/tpweb.log
; `log-level` can be 0 ~ 4, default to 2.
; LOG_LEVEL_DEBUG 0 log every-thing.
; LOG_LEVEL_VERBOSE 1 log every-thing but without debug message.
; LOG_LEVEL_INFO 2 log information/warning/error message.
; LOG_LEVEL_WARN 3 log warning and error message.
; LOG_LEVEL_ERROR 4 log error message only.
log-level=2
; 0/1. default to 0.
; in debug mode, `log-level` force to 0 and display more message for debug purpose.
debug-mode=0
; `core-server-rpc` is the rpc interface of core server.
; default to `http://127.0.0.1:52080/rpc`.
; DO NOT FORGET update this setting if you modified rpc::bind-port in core.ini.
core-server-rpc=http://127.0.0.1:52080/rpc
[database]
; database in use, should be sqlite/mysql, default to sqlite.
; type=sqlite
; sqlite-file=/usr/local/teleport/data/db/teleport.db
type=mysql
mysql-host=192.168.56.3
mysql-port=3306
mysql-db=teleport
mysql-prefix=tp_
mysql-user=teleport
mysql-password=123456
(3)启动
输入如下指令启动teleport
![6](D:\dev\平台运维\teleport\images\6.png)# 服务方式
[root@cnkanon ~]# service teleport start
[root@cnkanon ~]# service teleport stop
[root@cnkanon ~]# service teleport status
# 或者直接运行脚本
[root@cnkanon ~]# /usr/local/teleport/start.sh
[root@cnkanon ~]# /usr/local/teleport/stop.sh
[root@cnkanon ~]# /usr/local/teleport/status.sh
(4)初始化配置
安装完成后,在浏览器输入 http://192.168.56.3:7190,开始配置:
(4)核心服务经常崩溃解决办法
有时候在进行远程连接时,WEB页面提示“核心服务未启动”,官方文档说法是,不是核心服务未启动,应该是核心服务崩溃了,常见于执行一些无法进行的RDP远程连接(例如远程主机地址无法连接之类的)之后,因为核心服务的bug导致核心服务崩溃。此问题正在想办法解决。目前只能重启核心服务,或者在teleport服务器上开启定时执行核心服务启动脚本(核心服务启动脚本会自己检查是否已经启动了,如果当前没有启动,则会启动,否则忽略)。
在 /usr/local/teleport 目录下创建 check.sh 脚本,用来检测核心服务是否崩溃,并加入 crontab 服务中定时检测:
# 创建 check.sh 检测脚本
[root@cnkanon ~]# vi /usr/local/teleport/check.sh
#!/bin/bash
############################################################
# $name: check.sh
# $version: v1.0
# $function: check teleport status
# $author: cnkanon
# date: 2019-06-28
# $crond: */1 * * * * root /usr/local/teleport/check.sh
############################################################
# 注意此脚本未加文件锁
tp_cmd=/etc/init.d/teleport
# 日志文件路径
tp_log=/usr/local/teleport/data/log/check.log
tp_web=`${tp_cmd} status | grep 'web' | grep 'not' | wc -l`
tp_core=`${tp_cmd} status | grep 'core' | grep 'not' | wc -l`
# output log
echo "" >> ${tp_log}
echo "$(date +%Y-%m-%d,%T) - check teleport web/core server:" >> ${tp_log}
# check web server
if [ $tp_web -eq 1 ]; then
echo "teleport web server status: not running"
echo "teleport web server status: not running" >> ${tp_log}
$tp_cmd start web
else
echo "teleport web server status: running" >> ${tp_log}
echo "teleport web server is running"
fi
# check core server
if [ $tp_core -eq 1 ]; then
echo "teleport core server status: not running"
echo "teleport core server status: not running" >> ${tp_log}
$tp_cmd start core
else
echo "teleport core server status: running" >> ${tp_log}
echo "teleport core server is running"
fi
echo "$(${tp_cmd} status)" >> ${tp_log}
# 定时删除产生的日志备份文件,防止过大导致磁盘空间爆满
rm -rf /usr/local/teleport/data/log/tpcore.log.*.bak
echo "delete tpcore backup log file" >> ${tp_log}
# 加入 crontab 定时任务
[root@cnkanon ~]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root /usr/local/teleport/check.sh # 每隔1分钟检测一次
0 */1 * * * root /etc/init.d/teleport restart # 每隔1小时完整重启一次teleport服务
2、安装助手工具
在windows系统中下载 https://tp4a.com/download/get-file/teleport-assist-windows-3.2.2.exe 助手工具并使用超级管理员权限安装,以win7为例,助手工龄会自动安装在 C:\Users\%username%\AppData\Roaming\TP4A\Teleport-Assist 目录下。
安装成功后,刷新管理界面,会有如下提示:
点击windows右下角图片中“配置”或者 登录运维平台后点击“助手设置”,会打开如下界面,说明运维助手安装成功:
四、自定义工具配置
如果不习惯使用putty和winscp,可在助手设置中修改为SecureCRT或FlashFXP(前提本机需要安装并破解),设置参数如下截图。
注意::使用自定义的SSH、SFTP工具需要使用超级管理员运行助手客户端。
五、附件
官方完整的安装及使用手册见:https://docs.tp4a.com。