如何在 Debian 11 上安装 Teleport 集群如何在 Debian 11 上安装 Teleport 集群如何在 Debian 11 上安装 Teleport 集群如何在 Debian 11 上安装 Teleport 集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 Teleport 集群

在此页

  1. 先决条件
  2. 在 Debian 服务器上安装 Teleport
  3. 配置传送服务器
  4. 设置传送用户
  5. 通过命令行管理 Teleport 集群
  6. 将节点添加到 Teleport 集群
    1. 通过安装程序脚本添加 client1
    2. 手动添加client2节点

    Teleport 是一种开源软件,可用作全球基础设施的访问平面。它提供对各种服务的零信任访问,例如服务器、Kubernetes 集群、数据库服务器、DevOps 应用程序(如 AWS 管理控制台)、CI/CD、版本控制和桌面。 Teleport 是访问的唯一真实来源,在您的整个基础设施中同步。

    Teleport 可以通过提供单一网关来访问您的全球计算基础设施,从而消除对 VPN 等服务的需求。它是一个身份本地访问代理,允许您安全地访问您的基础设施。

    Teleport 已经过 Cure53 和 Doyensec 等安全公司的公开审计。 Teleport 目前已被三星、纳斯达克、IBM、Epic Games 等公司部署和用于生产。

    在本指南中,您将安装和配置 Teleport——Debian 11 服务器上基础架构的访问平面。您将学习如何初始化安全的 Teleport 集群,设置 Teleport 用户,然后使用两种不同的方法将节点添加到 Teleport 集群。

    先决条件

    首先,您需要满足以下要求:

    • Debian 11 服务器 - 此示例使用主机名 teleport-server 和 IP 地址 192.168.5.100 的 Debian 服务器。
    • 具有 sudo/root 管理员权限的非 root 用户。
    • 指向服务器IP地址的域名。
    • 为您的域名生成了 SSL Letsencrypt。
    • 双因素身份验证应用程序,例如计算机用户的 KeepassXC、Android 用户的 Aegis 或 iOS 的 Google Authenticator。

    您还需要添加到 Teleport 服务器的其他节点/服务器。您可以使用不同的 Linux 发行版,此示例使用两台服务器 client1 和 client2 以及 Debian 系统。

    当您准备好继续时,请使用您的用户登录并开始执行以下命令以开始。

    在 Debian 服务器上安装 Teleport

    首先,您将安装 Teleport 包到 teleport-server。 Teleport 为基于 Debian 的发行版提供 DEB 包,为基于 RHEL 的发行版提供 RPM 包。

    在此步骤中,您将把 Teleport 存储库添加到您的 Debian 服务器。然后通过 APT 安装 Teleport 包。

    运行以下 apt 命令来安装用于管理存储库的基本依赖项。

    sudo apt install curl wget apt-transport-https gnupg2

    出现提示时输入 y,然后按 ENTER 继续。

    接下来,运行以下命令以加载文件 /etc/os-release 上可用的环境变量。

    source /etc/os-release

    运行下面的 curl 命令以下载 Teleport 存储库的 GPG 密钥。然后,通过下面的 echo 和 tee 命令为基于 Debian 的发行版添加 Teleport 存储库。

    sudo curl https://apt.releases.teleport.dev/gpg \
    -o /usr/share/keyrings/teleport-archive-keyring.asc
    echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11" | \
    sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

    添加 Teleport 存储库后,运行以下 apt 命令来更新包管理器缓存。

    sudo apt update

    您会看到 Teleport 存储库已添加到您的 Debian 服务器。

    现在通过下面的 apt 命令安装 Teleport。 Teleport 安装现在应该会自动开始。

    sudo apt install teleport

    安装 Teleport 后,您可以继续设置 Teleport 部署。

    配置传送服务器

    要使用 Teleport,您必须首先配置 Teleport 本身。您必须拥有将用于 Teleport 的域名和生成的 SSL 证书以保护您的 Teleport 部署。

    在此步骤中,您将在 Debian 服务器上初始化 Teleport 安装,启用 Teleport Web 应用程序仪表板,然后启动并启用 Teleport 服务。

    此示例使用域名 tele.hwdomain.io 进行 Teleport 部署,并在 /etc/letsencrypt/live/tele.hwdomain.io/ 目录中生成 SSL 证书。

    首先,运行以下 teleport 命令来初始化 Teleport 服务器配置。此外,请务必更改域名、集群名称以及 SSL 证书、公钥和私钥的路径。

    sudo teleport configure -o file \
    --cluster-name=tele.hwdomain.io \
    --public-addr=tele.hwdomain.io:443 \
    --cert-file=/etc/letsencrypt/live/tele.hwdomain.io/fullchain.pem \
    --key-file=/etc/letsencrypt/live/tele.hwdomain.io/privkey.pem

    在终端的输出中,您应该看到生成到 /etc/teleport.yml 文件的 Teleport 配置。

    接下来,使用以下 nano 编辑器命令打开 Teleport 配置文件 /etc/teleport.yaml。

    sudo nano /etc/teleport.yaml

    将以下行添加到该行的末尾。通过这些行,您将启用提供管理仪表板的 Teleport Web 服务。另外,请务必更改域名 tele.hwdomain.io。

    app_service:
      enabled: yes
      apps:
      - name: "teleport-webapp"
        uri: "http://localhost:9000"
        public_addr: "tele.hwdomain.io"

    完成后保存文件并退出编辑器。

    现在运行下面的 systemctl 命令实用程序来启动和启用 Teleport 服务。

    sudo systemctl start teleport
    sudo systemctl enable teleport

    Teleport 服务应该正在运行并启用,因此该服务将在启动时自动启动。使用以下命令验证 Teleport 服务。

    sudo systemctl status teleport

    在输出中,您应该看到 Teleport 服务状态正在运行,并且已启用。

    此时,您的 Teleport 集群正在运行,并在其上启用了 Web 服务。要验证 Teleport 网络服务是否已启用,请打开您的网络浏览器并访问您的 Teleport 安装的域名(即:https://tele.hwdomain.io/)。

    您现在应该获得 Teleport Web 服务登录页面。

    在接下来的步骤中,您将开始通过命令行和 Web 管理仪表板配置 Teleport 管理员用户。

    设置传送用户

    Teleport 服务和web 服务正在运行,但是您仍然无法登录它,因为您仍然需要添加一个新的Teleport 用户。对于 Teleport 用户,您可以通过命令行(tctl 和 tsh)或使用 Teleport Web 服务提供的 Web 管理仪表板来管理 Teleport 集群。

    在创建 Teleport 用户之前,请确保您的设备上安装了双因素身份验证应用程序。您可以通过 Aegis 或 Google 身份验证使用移动应用程序,也可以将 KeepassXC 与计算机用户的 2FA 插件一起使用。

    在 teleport-server 机器上,运行以下命令来创建一个新的 Teleport 用户。

    sudo tctl users add teleport-admin --roles=editor,access --logins=root,debian,ec2-user

    此命令将创建一个具有角色编辑器和访问权限的新用户 teleport-admin。此外,标志 --logins 允许 teleport-admin 通过用户 root、debian 登录到任何节点或 ec2-user。 --login 标志后面的用户必须在目标节点上创建。

    以下是您应该在终端上收到的类似输出 - 您可以看到生成的链接,该链接将用于设置 Teleport 用户 teleport-admin。

    复制生成的链接并将其粘贴到您的网络浏览器中。您应该会收到设置新 Teleport 用户的欢迎消息。单击开始按钮开始配置新用户。

    现在输入您的 Teleport 用户的用户名并输入新的强密码并重复。然后单击 NEXT 继续。

    接下来,您必须为您的 Teleport 用户设置双因素身份验证。扫描屏幕上的二维码以将新应用程序添加到您的 2FA 应用程序。

    输入从您的 2FA 应用程序生成的身份验证代码,然后单击提交。

    如果 2FA 代码正确,您应该会在屏幕上看到消息注册成功。这意味着添加并配置了新用户 teleport-admin。

    单击转到仪表板。

    您现在应该获得 Teleport 部署的 Web 管理仪表板,它在启用 HTTPS 的情况下安全运行,并且在创建用户时启用了 2FA。

    通过命令行管理 Teleport 集群

    Teleports 提供命令行 tsh 和 tctl 可用于管理 Teleport Cluster。默认情况下,这两个命令行都包含在 Teleport 包中。

    tsh 命令允许用户从终端验证和管理 Teleport Cluster。您可以在集群上添加、编辑或删除 Teleport 资源。为了安全起见,您必须以非根用户身份运行 tsh 命令。
    tctl 命令用于设置和配置 Teleport Auth 服务。这必须以 sudo 或 root 权限运行。

    在此步骤中,您将通过命令行 tsh 和 tctl 访问和管理 Teleport Cluster。

    首先,通过以下命令登录到非 root 用户。此示例使用用户 debian。

    su - debian

    现在运行下面的 tsh 命令来对您的 Teleport 集群进行身份验证。此示例将通过用户 teleport-admin 向在域名 tele.hwdomain.io 上运行的 Teleport 集群进行身份验证。

    tsh login --proxy=tele.hwdomain.io --user=teleport-admin

    您将被要求输入 teleport-admin 用户的密码并输入 OTP 验证码。输入正确的用户密码和 2FA 应用程序中的正确 OTP 代码。

    成功并通过身份验证后,您应该会收到与 Teleport Cluster 的详细连接,如下所示。

    您还可以通过以下 tsh 命令验证当前与 Teleport Cluster 的连接。这将生成与顶部屏幕截图相同的输出。

    tsh status

    现在您已经通过 tsh 对 Teleport 集群进行了身份验证,您现在可以通过终端管理 Teleport 中的资源。

    运行以下 tsh 命令以检查 Teleport 集群上可用的主机/节点/服务器列表。

    tsh ls

    现在通过下面的 tsh 命令验证 Teleport Cluster 上启用的应用程序。

    tsh apps ls

    在输出中,您应该看到一个节点在 Teleport 集群 (teleport-server) 上可用,并且应用程序 teleport-webapp 已启用。

    接下来,您还可以通过 tsh 命令登录到 Teleport 集群上可用的节点,如下所示。这样,您将使用 root 或/和 debian 用户通过 tsh 命令登录到 teleport-server。

    tsh ssh 

    您应该看到如下输出 - 使用这两个 tsh 命令,您已通过 tsh 命令成功登录到 teleport-server。

    对于 tctl 命令,您应该在开始时使用 sudo 运行。运行以下 tctl 命令以检查 Teleport 集群上的可用节点/服务器。

    sudo tctl nodes ls

    在下一步中,您将学习如何通过两种不同的方法将节点/服务器添加到 Teleport 集群,通过 Web 管理仪表板自动添加或通过命令行手动添加。

    将节点添加到 Teleport 集群

    要将节点/服务器添加到 Teleport 集群,您必须确保服务器可访问。您可以使用两种不同的方法将节点/服务器添加到您的 Teleport 集群。

    您可以使用 Teleport 作为不同服务的控制平面管理,例如服务器、Kubernetes 集群、数据库服务器、应用程序和桌面。

    在此步骤中,您将向 Teleport 集群添加两个不同的服务器。您将通过将从 Web 管理仪表板生成的安装程序脚本添加机器 client1,并通过命令行手动添加 client2 机器。

    通过安装程序脚本添加 client1

    首先,返回到 Teleport web 管理仪表板并单击“添加服务器”按钮。

    选择要添加的资源类型。您可以添加 Kubernetes 集群、数据库服务器、应用程序和桌面。选择 SERVERS 添加资源类型服务器,然后单击 NEXT。

    现在您将看到生成的安装程序脚本和命令行,可用于添加 client1 机器。复制生成的命令行。

    现在登录到client1机器,通过sudo命令获得root权限,然后在client1机器上粘贴并运行生成的命令行。这会将生成的脚本下载到 client1 计算机并运行该脚本。

    您将在终端上收到类似这样的输出 - 安装程序脚本将使用生成的令牌和 Teleport 集群的 ca pin 添加 client1 机器。此外,安装程序脚本会自动检测您当前的操作系统,自动安装 Teleport 包,并生成 Teleport 配置 /etc/teleport.yaml 文件。

    该过程完成后,您应该会收到这样的输出。 client1 机器上的 Teleport 服务也自动启动并启用。

    现在回到 Teleport web 管理仪表板,您应该会看到一条消息,例如 服务器已成功加入此 Teleport 集群。单击“下一步”继续。

    现在输入允许访问 client1 机器的用户名。确保用户可用并在 client1 计算机上创建。再次单击 NEXT 继续。

    最后,您可以使用 Web 管理仪表板上提供的步骤验证与 client1 计算机的连接。

    • 首先,选择您要用于登录的用户。
    • 其次,单击第 2 步中的“测试服务器”按钮,确保所有测试都已选中/标记为已完成。
    • 最后,单击“开始会话”按钮,这将自动在您的网络浏览器上打开一个新选项卡,并通过所选用户访问 client1 计算机。

    下面是状态为成功的测试连接部分的屏幕截图。

    下面是通过步骤 3 中的 START SESSION 登录到 client1 机器后的屏幕截图。

    单击完成以完成这些过程。

    然后,您将被重定向到 Teleport Web 管理仪表板,您应该会看到 client1 计算机已添加到 Teleport 集群。

    您还可以通过 tsh 和 tctl 命令行验证 Teleport 集群上的节点/服务器列表。

    返回到 teleport-server 并运行以下命令来验证 Teleport 集群上的节点/服务器列表。

    tsh ls
    sudo tctl nodes ls

    您应该收到类似于此的输出 - client1 机器可用并已添加到 Teleport 集群。

    最后,运行以下 tsh 命令以用户 debian 登录到 client1 机器。您现在应该通过 Teleport 登录到 client1 计算机。

    tsh ssh 

    下面是通过 Teleport 移动到 client1 机器后的终端屏幕。

    考虑到这一点,您现在已经成功地通过从 Teleport web 管理仪表板生成的安装程序脚本将 client1 节点/服务器自动添加到 Teleport 集群。

    手动添加client2节点

    运行以下命令来检查您的 Teleport 集群的 CA pin 指纹。 CA pin 指纹将用于添加 client2 机器。

    sudo tctl status

    以下是您应该收到的类似输出 - 请务必复制 CA pin 指纹。

    接下来,运行下面的 tctl 命令生成一个新令牌,client2 机器将使用该令牌加入 Teleport 集群。然后,验证 Teleport Cluster 上的令牌列表。

    sudo tctl nodes add --ttl=30m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
    sudo tctl token ls

    您应该会收到与此类似的输出 - 请务必复制生成的令牌,client2 计算机将使用该令牌加入 Teleport 集群。

    现在连接到 client2 机器并通过 APT 安装 Teleport 包。

    运行以下命令将 Teleport 存储库添加到 client2 计算机。

    在 /etc/os-release 文件中加载环境变量。

    source /etc/os-release

    添加 Teleport GPG 密钥和存储库。

    sudo curl https://apt.releases.teleport.dev/gpg \
    -o /usr/share/keyrings/teleport-archive-keyring.asc

    echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11" | \
    sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

    现在运行下面的 apt 命令来更新和刷新你的系统包索引。然后,通过以下 apt 命令安装 Teleport。

    sudo apt update
    sudo apt install teleport

    Teleport 安装现在应该开始了。

    安装 Teleport 包后,使用以下 nano 编辑器命令创建一个新的 Teleport 配置文件 /etc/teleport.yaml。

    sudo nano /etc/teleport.yaml

    将以下 Teleport 配置添加到文件中。请务必将 namenode 更改为机器主机名,将 token_name 更改为您生成的令牌,将 proxy_server 更改为您的 Teleport 集群的域名,并将 ca_pin 更改为 Teleport 集群 CA pin 指纹。

    version: v3
    teleport:
      nodename: client2
      data_dir: /var/lib/teleport
      join_params:
        token_name: 361b76eac6360da13f1a202fa8164024
        method: token
      proxy_server: tele.hwdomain.io:443
      log:
        output: stderr
        severity: INFO
        format:
          output: text
      ca_pin: sha256:2c96568d7bfa05f0a32b7681eb31b52a5c2a3414274579cbe9ece23e0b5e5443
      diag_addr: ""
    auth_service:
      enabled: "no"
    ssh_service:
      enabled: "yes"
      commands:
      - name: hostname
        command: [hostname]
        period: 1m0s
    proxy_service:
      enabled: "no"
      https_keypairs: []
      acme: {}

    完成后保存文件并退出编辑器。

    接下来,运行以下 systemctl 命令实用程序以在 client2 计算机上启动并启用 Teleport 服务。

    sudo systemctl start teleport
    sudo systemctl enable teleport

    然后通过以下命令验证 Teleport 服务。

    sudo systemctl status teleport

    您应该会收到类似于以下屏幕截图的输出 - client2 计算机上的 Teleport 服务已配置并正在运行和启用。

    现在回到 teleport-server 终端,从那里验证可用节点/服务器列表。运行以下命令来检查 Teleport 集群上的节点列表

    sudo tctl nodes ls

    您应该看到 client2 机器可用并已添加到 Teleport 集群。

    接下来,运行下面的 tsh 命令通过 Teleport SSH 访问 client2 机器。您现在应该通过 Teleport 登录到 client2 机器。确保 debian 用户在 client2 机器上可用。

    tsh ssh 

    下面是通过 Teleport 登录到 client2 机器后应该得到的输出。

    现在回到 Teleport web 管理仪表板,您应该看到 client2 机器在 Teleport 集群上可用。

    最后,单击client2 机器上的CONNECT 按钮启动并连接到client2。您现在应该通过 Teleport web 管理仪表板登录到 client2 机器。

    考虑到这一点,您现在已经通过生成 Teleport 令牌、使用 Teleport 集群的 CA pin 指纹、安装 Teleport 包和创建 Teleport 配置文件,成功地手动添加和配置了 client2 机器。

    结论

    您的服务器基础设施现在通过 Teleport 集群得到保护,您现在可以在每个节点上禁用 SSH 服务,只允许从 Teleport 服务器进行访问。您现在已经了解了如何在 Debian 11 系统上安装 Teleport Cluster,并了解了设置 Teleport 的基本配置。

    您还学习了如何在启用双因素身份验证的情况下设置 Teleport 用户,并学习了如何使用 Teleport 命令行(tsh 和 tctl)来管理 Teleport 集群。

    最后,您已经使用两种不同的方法成功配置了两个节点 client1 和 client2 并将其添加到 Teleport 集群。第一种方法是通过 Teleport 网络管理仪表板生成的安装程序脚本。第二种方法通过在目标机器上安装和配置 Teleport 来手动添加节点/服务器。

©2015-2025 艾丽卡 support@alaica.com