简易版跳板机-teleport使用



1 环境搭建

实验环境拓扑如下:

客户端windows主机在互联网上通过teleport堡垒机平台对内网主机nginx进行登录维护。

image

注意:如果使用teleport的免密登录nginx主机,需要提前实现teleport主机的针对nginx主机基于秘钥的验证。

2 teleport工具搭建

  • teleport下载地址:https://tp4a.com/download

  • 首先下载服务端安装包,放到指定目录中,然后解压安装:

    [root@xuzhichao ~]# ll teleport-server-linux-x64-3.2.2.tar.gz 
    -rw-r--r-- 1 root root 23137304 Jul 29 22:00 teleport-server-linux-x64-3.2.2.tar.gz
    
    [root@xuzhichao ~]# tar xf teleport-server-linux-x64-3.2.2.tar.gz 
    
    [root@xuzhichao ~]# ll teleport-server-linux-x64-3.2.2
    total 4
    drwxrwxr-x 2 xu xu  80 Sep 17  2018 daemon
    drwxrwxr-x 5 xu xu  39 Jan 23  2019 data
    drwxrwxr-x 3 xu xu  33 Jan 10  2019 script
    -rwxrwxr-x 1 xu xu 320 Jan 23  2019 setup.sh
    
    [root@xuzhichao ~]# cd teleport-server-linux-x64-3.2.2/
    
    [root@xuzhichao teleport-server-linux-x64-3.2.2]# ./setup.sh 
    
    []===========================================================================[]
     | Teleport Server Installation                                              |
     |===========================================================================|
     |    ver: 3.2.2                                                             |
     | author: apex.liu@qq.com                                                   |
    []===========================================================================[]
    
    Welcome to install Teleport Server!
    
    NOTICE: There are a few steps need you enter information or make choice,
            if you want to use the DEFAULT choice, just press `Enter` key.
            Otherwise you need enter the highlight character to make choice.
    
    Prepare installation...
     - check local installation ... [not exists]
    
    Set installation path [/usr/local/teleport]:     <==指定程序的安装路径;
     - copy [/root/teleport-server-linux-x64-3.2.2/data/bin]
         -> [/usr/local/teleport/bin]
     - copy [/root/teleport-server-linux-x64-3.2.2/data/www]
         -> [/usr/local/teleport/www]
     - copy [/root/teleport-server-linux-x64-3.2.2/data/tmp/etc]
         -> [/usr/local/teleport/data/etc]
    process [daemon.in] to [/etc/init.d/teleport]
    process [start.sh.in] to [/usr/local/teleport/start.sh]
    process [stop.sh.in] to [/usr/local/teleport/stop.sh]
    process [status.sh.in] to [/usr/local/teleport/status.sh]
    
    start services...
    starting teleport web ... [done]
    starting teleport core server ... [done]
    
    check services status...
    teleport web server is running.
    teleport core server is running.
    
    --==[ ALL DONE ]==--
    
  • Teleport 有两个服务:核心服务 core 和网页服务 web。两个服务可以同时启动、停止、重启,也可单独操作其中的一个。

    • 操作完整的 teleport 服务:

      • 启动: /etc/init.d/teleport start
      • 停止: /etc/init.d/teleport stop
      • 重启: /etc/init.d/teleport restart
      • 查看运行状态: /etc/init.d/teleport status
    • 仅操作核心服务 core:

      • 启动: /etc/init.d/teleport start core
      • 停止: /etc/init.d/teleport stop core
      • 重启: /etc/init.d/teleport restart core
    • 仅操作网页服务 web:

      • 启动: /etc/init.d/teleport start web
      • 停止: /etc/init.d/teleport stop web
      • 重启: /etc/init.d/teleport restart web
    #安装完成teleport后自动启动服务:
    [root@xuzhichao ~]# ss -ntlp | grep tp_
    LISTEN     0      128    127.0.0.1:52080                    *:*                 users:(("tp_core",pid=1415,fd=6))
    LISTEN     0      128          *:7190                     *:*                   users:(("tp_web",pid=1397,fd=5))
    LISTEN     0      8            *:52089                    *:*                   users:(("tp_core",pid=1415,fd=23))
    LISTEN     0      10           *:52189                    *:*                   users:(("tp_core",pid=1415,fd=14))
    LISTEN     0      8            *:52389                    *:*                   users:(("tp_core",pid=1415,fd=25))    
    
  • WEB登录teleport:http://192.168.50.17:7190

    填写系统账号密码,点击开始配置即可:

image

image

  • 登录页面如下,输入上面填写的用户名密码即可登录:

image

  • 管理员登录后可以看到teleport服务器的系统总览:

image

3 teleport使用示例

3.1 资产管理-添加主机

  • 点击“资产”,“主机及账号”,点击“添加主机”:

image

  • 填写被管理主机的信息,包括系统,远程主机的地址,连接方式,名称等:

    • 其中“连接模式”一项,如果此远程主机可以由teleport服务器直接连接,则可以选择“直接连接”模式,例如远程主机与teleport服务器处于同一个局域网中,或者远程主机是开放了远程连接端口的云端服务器等。

    • 如果远程主机与teleport服务器之间需要通过其他网络设备进行端口映射方可连接的,则需要选择“端口映射”模式。在这种模式下,teleport服务器实际上连接的是配置的路由主机的地址和映射端口,而非远程主机地址。

    • 端口映射模式常用于以下场景:

      • teleport服务器处于公司内网,被维护的远程主机在云端且没有公网IP,需要通过一台有公网IP的服务器进行跳转。集群服务器常使用这种方式。
      • 使用teleport服务器管理运行docker的主机以及进入docker内部进行管理。

image

3.2 资产管理-添加账号

  • 添加完主机后,还需要为此主机设置远程登录的账号,点击主机的账号数量,或者右侧操作菜单中的“管理远程账号”,会显示远程账号管理对话框。

image

  • 点击“添加账号”

image

  • 填写远程主机的登录方式:

    • 连接协议:可以选择ssh,telnet,rdp;

    • 协议的端口;

    • SSH的认证方式,用户名密码和秘钥认证;

    • 远程账号:填写登录被管理主机的账户;

    • SSH私钥:填写teleport主机的私钥文件/root/.ssh/id_rsa:

      [root@xuzhichao ~]# cat /root/.ssh/id_rsa
      -----BEGIN RSA PRIVATE KEY-----
      MIIEpAIBAAKCAQEA5wjd4t7en6FxqPFymV2Z2iWOIIJsBgzP1WrfEA9KHSizgdJf
      vJZ9G38Tj30xAW56By3f6d3A1abMffnpCv7ijkiqachQuCshRBamVr9Y3RcLfihm
      dEhIJ6PTH0/lw1eu9DBGeusoluIJ/aIJv8bSSGojDRgP/qXIfuZmuTKb7HjQuA3I
      K9xKHG4P+0w8wej1HvBBI/7bcTFT4oy3fJbXcRleJu1KcSjotG5hcgtMRtNlY3Dj
      Gz1jwXiHGLle983hmUtdezYWqYpHXVtERR3kgmWEuCT1VMnJ+W4s7YYHauUAgFwF
      2DvNf4vBuXsqxA7ugwG78mbMScFYCJ6C6zZ43QIDAQABAoIBAAEJUyV/ZnRE3yOo
      4aC6gMQvwvF2ZFGqoQwODK4fw29aDWQZs4A/FJSY/1d3ck7VVgrOM+Dys7jBpM0z
      383C0vVcchdDZMlOuDl7+IcPGLD1N4H7YGpJILm8zGepjhhQPmKuDMLkZyw2G2Fd
      5rlLhQn6H+ohH4E+8SVQl0lhZr2q0uYGOvcTBdjsrXzR0WkKEhbCOxh72/dREEU6
      tdTSh1eBlpaGQD6A/c3R5v1bQj5I4Oks2UtFIlIZMrETxcKCJxpw9dS3FEfwrna0
      nReWPuBRdg+AFSWlFWleLfhCXQJlutfr7EUTsdMBdO0IEPI7e+D7UvkWffxO2caX
      pcVYFykCgYEA+rd8ve0Swv3ZslpbnarMM4CaAaeUbHEsYB3RI01WwxNOF2sAdeQz
      aHHDDsOqMxaEyYuA3ZWQy8US1CdmtWSEB+EfV0pFJjUdq6d76+87ezBrmTu6hu6C
      /uJKduLUCYOR9oPDVchA5zLPQ4YyaqeH8hzBRFrHQU5BJiqsHAPJZtcCgYEA6+cz
      4Q4JKR/dJlapBReQdEU9/m2m/oU30K77FzQpTBBbvQ7JVMOcaqfuiVAfRR+oICaD
      o+UVcJmNEL5qUIOw79d2q+p9IhIP9Q99/1gz28SfCEEUiMJf/vEuvKAsiI+bGfa0
      YpDhu+TfYelHB0C5ZHvYBEt2jcTJQ8RTnAbky2sCgYEAsV9wm/mGJXdsNVbhq/jy
      wJkB25vQUKv8hf9yPzRu5lHZFI455C3PBNw+8EoTNlN/HAta3uj6aH8DJB6/9iKn
      md91yc6cfzxiwlcaP7+faDbIWL895koFWQeFQPiWpCh18l4jqqOi7y4uHgppzrS5
      Y9teC9rhTt1rD/Jukt9G9D8CgYEAsNEQ/6UnlJ1/g1b9RQXOjne/6c6Cls9/cHlX
      VqMQOSUhvekxWslrmj3Y+y8E4SjDOaXkkZoJoeZV57DxuvuaSYs0NdOCi2ECeOpt
      xFB2Pkl38hXlsEQQ8+QO5e8gshMBbEqQFjkGGXGJRbg2Nud6jiiNV1rAt65CNPsY
      uCAqqZUCgYAGtEF9Y+8GXmGGfS8BsJBCXPoFxd5lyVt3ouuYvEasgw4rOfExNXni
      IReLDiIK2whXIcfFv3yKv5YzIXG2nziBJSBzQ9rmAtqxbsCFDTZ8X/4xp4Y0/8H0
      NAO8495nX8H66VtDb/ATzzYxQ+gvkQaPjPdKfM0QW9UaRpZeYklWdg==
      -----END RSA PRIVATE KEY-----
      

image

  • 为便于管理(例如运维授权或者审计授权时),可以将主机进行分组。

    分组操作非常简单,在“资产-主机分组管理”页面,点击右上角的“创建主机分组”按钮并填写分组名称,即可建立一个新的分组。

    分组建立之后,点击某个分组的名称,即可进入对应分组的主机成员列表页面,管理此分组中的主机。在此页面中可以添加或者删除主机。

    向分组中添加主机,或者删除分组,均不影响现存的主机数据,但如果此分组已经在运维策略或者审计策略中被授权了,那么删除分组会影响到分组中所有主机的授权。

image

3.3 创建用户

  • 点击“用户”,“用户管理”,“创建用户”:

image

  • 填写用户相关信息:

!image

  • 为用户设置密码:

image

3.4 运维授权

  • 点击展开左侧菜单“运维”项目,然后点击“运维授权”,即可打开运维授权管理页面。只有具备运维授权权限的用户可以查看此界面,并进行授权管理。

image

  • 点击“新建授权策略”,创建一个授权策略:

image

  • 点击对应的策略名称,对用户以及该用户可以管理的主机进行授权:

    • 授权admin用户可以管理nginx主机组:

image

-- 再新建一个策略,授权xuzhichao用户可以管理其中一台主机:

image

3.5 安装客户端助手

  • 在windows终端上安装teleport的客户端助手。

  • 点击“助手设置”

image

-- 可以把登录远程主机的工具设置为xshell或CRT等工具:

image

  • 重启客户端助手让配置生效

3.6 登录测试效果

  • 使用个人账号登录过后,点击“运维”,“主机运维”,SSH连接对应的主机,会自动跳出xshell界面,直接登录到对应的nginx主机中:

image

image

  • 可以查看在线登录的用户,同时会记录认证失败的历史会话:

  • 可以对历史登录进行审计,可以以日志或录屏的方式查看用户的历史操作:

image

  • 点击“回放”可以查看录像:

image

posted @ 2021-07-29 23:51  向往自由的独行者  阅读(2204)  评论(0编辑  收藏  举报