如何在 Rocky Linux 9 上设置 Teleport 集群如何在 Rocky Linux 9 上设置 Teleport 集群如何在 Rocky Linux 9 上设置 Teleport 集群如何在 Rocky Linux 9 上设置 Teleport 集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

如何在 Rocky Linux 9 上设置 Teleport 集群

在此页

  1. 先决条件
  2. 在 Rocky Linux 9 上安装 Teleport
  3. 配置传送服务器
  4. 添加传送用户
  5. 通过命令行管理 Teleport 集群
  6. 将节点添加到 Teleport 集群
    1. 通过 Teleport 管理仪表板添加节点
    2. 手动添加节点

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

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

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

    在本教程中,您将通过 Teleport 在 Rocky Linux 9 服务器上为您的基础设施设置和保护访问平面。您将安装 Teleport、初始化 Teleport 集群、启用 Teleport Web 服务、添加 Teleport 用户,然后通过不同的方法将节点/服务器添加到 Teleport 集群。

    完成本教程后,您将拥有一个只能通过 Teleport 访问的安全服务器基础结构。此外,您可以在本地节点/服务器上禁用 SSH 访问。

    先决条件

    要完成本教程,您必须满足以下要求:

    • Rocky Linux 9 服务器 - 此示例使用主机名 teleport-rocky 和服务器 IP 地址 192.168.5.100 的 Rocky Linux。
    • 具有 sudo/root 管理员权限的非 root 用户。
    • 指向您的服务器 IP 地址的域名。
    • 生成 SSL 证书 - 您可以通过 Certbot 和 Letsencrypt 生成免费的 SSL 证书。
    • SELinux 以宽容 模式运行。
    • 双事实身份验证应用程序 - 您可以在桌面上使用 KeepassXC 和 2FA 插件。您可以为电话用户使用 Aegis(Android 用户)或 Google 身份验证(iOS 用户)。

    您还需要额外的服务器/节点来添加到 Teleport 集群。您可以使用任何 Linux 发行版,但此示例使用主机名为 client1 和 client2 的两个额外的 Rocky Linux 服务器。

    在 Rocky Linux 9 上安装 Teleport

    Teleport 是一个应用程序,它提供了一种安全的方式来访问您的基础设施。您可以通过网关安全地访问 Linux 服务器、Kubernetes 集群、数据库服务器、应用程序和桌面。

    要将 Teleport 设置为您的基础设施的访问平面,您需要将 Teleport 存储库添加到您的系统,然后安装它。对于基于 RHEL 的发行版,您可以通过官方 Teleport 存储库安装 Teleport。

    运行以下 dnf 命令将 Teleport 存储库添加到您的 Rocky Linux 系统。然后,验证活动存储库列表。

    sudo dnf config-manager --add-repo https://rpm.releases.teleport.dev/teleport.repo
    sudo dnf repolist

    Teleport 存储库现在应该在您的系统上可用。

    通过下面的 dnf 命令安装 Teleport 包。当提示确认时,输入 y 并按 ENTER。

    sudo dnf install teleport

    Teleport 包应该安装在 /usr/local/bin 目录中。运行以下命令以通过 Teleport 验证命令行列表。

    ls /usr/local/bin/

    您应该使用 Teleport 命令行,例如 teleport、tsh 和 tctl。

    接下来,使用以下命令将 /usr/local/bin 目录添加到 sudoers secure_path。这允许您在开始时使用 sudo 运行 Teleport 命令行。

    echo "Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path
    sudo chmod 440 /etc/sudoers.d/secure_path

    最后,通过以下命令验证 Teleport 版本。

    sudo teleport version
    sudo tsh version
    sudo tctl version

    您应该会收到类似于屏幕截图的输出:您现在已经在 Rocky Linux 系统上安装了 Teleport v11。

    安装 Teleport 后,您将初始化和配置 Teleport 集群。

    配置传送服务器

    要使用 Teleport,您必须首先配置 Teleport 本身。但在此之前,您必须确保您的域名指向服务器 IP 地址并且您已生成 SSL 证书。此示例使用目录 /etc/letsencrypt/live/teleport.hwdomain.io 中可用的域名 teleport.hwdomain.io 和来自 Letsencrypt 的 SSL 证书。

    安装 Teleport 后,您现在将初始化 Teleport 集群并启用 Teleport Web 服务,该服务提供用于管理 Teleport 集群的管理仪表板。最后,您将启动并启用 Teleport 服务。

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

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

    在您的终端屏幕中,您应该会收到如下输出 - Teleport 配置文件是在 /etc/teleport.yaml 文件中生成的。

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

    sudo nano /etc/teleport.yaml

    将以下行添加到文件中。通过这些行,您将启用将在 Teleport 域名 teleport.hwdomain.io 上运行的 Teleport Web 服务。

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

    完成后保存并关闭文件。

    现在运行以下 systemctl 命令实用程序以启动并启用系统上的 Teleport 服务。

    sudo systemctl start teleport
    sudo systemctl enable teleport

    Teleport 服务应该正在运行并启用,运行以下命令来验证并确保 Teleport 服务正在运行。

    sudo systemctl status teleport

    您将收到类似于此的输出 - Teleport 服务正在运行并已启用,这意味着 Teleport 服务将在启动时自动运行。

    随着 Teleport 服务的运行,您现在应该可以通过网络浏览器访问 Teleport。但在此之前,您必须打开一些将被 Teleport 服务使用的端口。您可以查看 Teleport Network 页面以获取 Teleport Cluster 的详细端口列表。

    运行以下 firewall-cmd 命令以添加 Teleport 将使用的端口。

    sudo firewall-cmd --add-port={443/tcp,3021/tcp,3022/tcp,3025/tcp,3028/tcp} --permanent

    现在重新加载 firewalld 以应用更改,然后验证 firewalld 规则列表。

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all

    现在确保您获得与以下类似的输出。

    最后,打开您的网络浏览器并访问您的 Teleport 域名(即:https://teleport.hwdomain.io/)。如果您的 Teleport 安装成功,您应该会看到 Teleport 登录页面。

    在下一步中,您将创建并设置一个 Teleport 用户,该用户可用于通过命令行和管理仪表板管理 Teleport 集群。

    添加传送用户

    此时,您已经运行了 Teleport 集群,并在其上启用了 Web 服务。在此步骤中,您将创建并设置将用于管理 Teleport 集群的 Teleport 用户。

    在开始之前,请确保您的设备上安装了 2FA 应用程序,您可以使用适用于桌面的 KeepassXC、适用于 Android 的 Aegis 或适用于 iOS 的 Google 身份验证。

    首先,在 teleport-rocky 服务器上运行以下命令以创建一个新的 Teleport 用户。这将创建一个新用户teleport-admin,角色为editor 和access。 --logins 标志允许 teleport-admin 通过用户 root、rocky 或ec2 用户。 --login 标志后面的用户必须在目标节点上创建。

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

    您应该会收到这样的输出 - Teleport 用户 teleport-admin 已创建,您应该会获得生成的链接,该链接将用于配置您的新用户。

    将生成的链接复制到您的 Web 浏览器,您现在应该会收到关于设置 Teleport 用户的欢迎消息。单击“开始”按钮以设置新的 Teleport 用户。

    输入您的 Teleport 用户的用户名,然后输入密码。确保您使用的是安全系数高且易于记忆的密码。单击“下一步”继续。

    配置用户名和密码后,您现在将为您的 Teleport 用户设置双因素身份验证。

    扫描 Teleport 设置页面上的二维码并输入生成的 OTP 代码。然后点击提交确认。

    现在,如果您的 OTP 代码正确,您应该会收到消息Registration Successful。您现在已经为新的 Teleport 用户配置了密码和 2FA。

    单击转到仪表板。

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

    通过命令行管理 Teleport 集群

    Teleport 包包括 /usr/local/bin 目录中可用的命令行 ts 和 tctl。

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

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

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

    su - rocky

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

    tsh login --proxy=teleport.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-rocky) 上可用,并且应用程序 teleport-webapp 已启用。

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

    tsh ssh 

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

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

    sudo tctl nodes ls

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

    将节点添加到 Teleport 集群

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

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

    通过 Teleport 管理仪表板添加节点

    在开始之前,运行下面的 firewall-cmd 命令打开 client1 节点上的一些端口。

    sudo firewall-cmd --add-port={3021/tcp,3022/tcp,3025/tcp} --permanent

    现在重新加载 firewalld 以应用更改并验证 client1 节点上 firewalld 规则的状态。

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all

    然后你会收到这样的输出。

    接下来,访问 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-rocky 并运行以下命令来验证 Teleport 集群上的节点/服务器列表。

    sudo tctl nodes ls

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

    最后,运行以下 tsh 命令以用户 rocky 登录到 client1 节点。您现在应该通过 Teleport 登录到 client1 节点。

    tsh ssh 

    下面是通过 Teleport 登录到 client1 节点后的终端屏幕。

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

    手动添加节点

    现在您将通过以下步骤将 client2 节点手动添加到 Teleport 集群:

    • 检查 Teleport 集群的 CA 引脚
    • 生成传送令牌
    • 在 cleint2 节点上设置 firewalld
    • 在 client2 节点上安装和配置 Teleport

    让我们开始吧。

    运行以下命令检查您的 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 节点并运行以下命令打开端口。

    sudo firewall-cmd --add-port={3021/tcp,3022/tcp,3025/tcp} --permanent

    重新加载 firewalld 并通过以下命令验证端口列表。

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all

    下面是应该在 client2 节点上打开的端口列表。

    现在运行以下命令将 Teleport 存储库添加到 client2 节点。

    sudo dnf config-manager --add-repo https://rpm.releases.teleport.dev/teleport.repo
    sudo dnf repolist

    下面是验证 client2 节点上的存储库列表后的类似输出。

    运行以下 dnf 命令以在 client2 节点上安装 Teleport。出现提示时输入 y,然后按 ENTER 继续。

    sudo dnf install teleport

    系统还会提示您接受 Teleport 存储库的 GPG 密钥。输入 y 并按 ENTER 确认。

    Teleport 现在应该安装在 /usr/local/bin 目录中。运行以下命令来验证 Teleport 二进制包列表。

    ls /usr/local/bin/

    现在运行以下命令将 /usr/local/bin 目录添加到 sudoers secure_path。这允许您使用 sudo 或 root 权限运行 Teleport 命令行。

    echo "Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path
    sudo chmod 440 /etc/sudoers.d/secure_path

    您可以通过以下命令验证 client2 节点上的 Teleport 版本。您应该会看到 Teleport v11 已安装。

    sudo teleport version

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

    sudo nano /etc/teleport.yaml

    将以下行添加到文件中。请务必将 namenode 更改为节点主机名,将 token_name 更改为您生成的令牌,将 proxy_server 更改为您的 Teleport 集群的域名,以及 ca_pin 带有 Teleport Cluster CA pin 指纹。

    version: v3
    teleport:
      nodename: client2
      data_dir: /var/lib/teleport
      join_params:
        token_name: 30c7156ba908284dbd6000605806f9ab
        method: token
      proxy_server: teleport.hwdomain.io:443
      log:
        output: stderr
        severity: INFO
        format:
          output: text
      ca_pin: sha256:25a6945151b89f10eaf89ac5fe0bd7c88caf77acefce9a4e77edb84737974e4d
      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-rocky 终端,从那里验证可用节点/服务器列表。运行以下命令检查 Teleport 集群上的节点列表

    sudo tctl nodes ls

    您应该会看到 client2 节点可用并已添加到 Teleport 集群中。

    接下来,运行以下 tsh 命令以通过 Teleport SSH 访问 client2 节点。您现在应该通过 Teleport 登录到 client2 节点。确保 rocky 用户在 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 服务器进行访问。您现在已经了解了如何在 Rocky Linux 9 服务器上安装 Teleport Cluster,并了解了设置 Teleport 的基本配置。

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

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

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