テレポートはオープンソースで、インストールが簡単な認証局システムです。 SSHを介してアクセスできるさまざまなサーバー、さまざまなKubernetesデータベース、およびWebアプリがある場合。したがって、テレポートは、これらすべてのインフラストラクチャへのアクセスプレーンとして、それらすべてを1つのプラットフォームに配置するために使用されます。また、すべての環境でインタラクティブセッションを共有および記録する機能もあります。
テレポートはsystemdサービスとしても実行され、インストールと展開が非常に簡単です。この記事では、Ubuntu20.04サーバーへのテレポートのインストールプロセスについて説明します。
インストール
LinuxおよびMacオペレーティングシステムの場合と同様に、テレポートコアサービステレポート および管理ツールtctl このようなオペレーティングシステムで動作するように設計されているため、使用されます。また、テレポートユーザークライアント tsh およびUI Linux、Mac、その他のオペレーティングシステムで利用できます。
前提条件
- ポート443が開いているLinuxマシン
- Authy、Google Authenticator、MicrosoftAuthenticatorなどの2要素認証システム
- OpenSSHのようなSSHクライアント
- AmazonRoute53やCoreDNSなどのDNSサービスへのアクセス
Ubuntu20.04サーバーへのテレポートのインストール
32ビットバイナリまたはARMバイナリが必要な場合は、このリンクhttps://goteleport.com/teleport/download/で最新のリリースページを確認してください。ただし、64ビットバージョンのテレポートバイナリをインストールするには、次のようにコマンドを実行します。
テレポートの公開鍵をインストールするには、以下に示すようにコマンドを実行します。
$ curl https://deb.releases.teleport.dev/teleport-pubkey.asc | sudo apt-key add -
APTにリポジトリを追加するには、次のようにコマンドを実行します。
$ sudo add-apt-repository 'deb https://deb.releases.teleport.dev/ stable main'
APTキャッシュを更新するには、次のようにコマンドを実行します。
$ sudo apt-get update
最後にTeleportをインストールするには、以下に示すようにコマンドを実行します。
$ sudo apt install teleport
テレポートの構成
テレポートの設定については、設定を実行してyaml形式で保存するだけです。詳細については、お好きなエディタを使用して、以下に示す構成を確認してください。
$ sudo vim /etc/teleport.yaml
teleport: nodename: linuxways data_dir: /var/lib/teleport log: output: stderr severity: INFO format: output: text ca_pin: [] diag_addr: "" auth_service: enabled: “yes” cluster_name: "teleport" listen_addr: 0.0.0.0:3025 tokens: - proxy,node,app:e6cebf660b1f3390f204130b9649 public_addr: 5.22.209.65:3025 ssh_service: enabled: “yes” labels: env: example commands: - name: hostname command: [hostname] period: 1m0s app_service: enabled: “yes” debug_app: true proxy_service: enabled: “yes” listen_addr: 0.0.0.0:3023 web_listen_addr: 0.0.0.0:3080 tunnel_listen_addr: 0.0.0.0:3024 public_addr: 5.22.209.65:3080
構成が正しく機能するためには、ディレクトリ/ var / lib / teleport テレポートとtctlが問題なく読み取りと書き込みを行えるようにする適切な権限を付与する必要があります。そのために、以下に示すようにコマンドを実行します。
$ sudo chmod 755 -R /var/lib/teleport/
ドメインネームシステムの構成
安全なhttpsプロトコルの証明書を提供する必要があります。すでに持っている証明書を使用するか、自己署名証明書を作成するか、公開IPを指すtele.example.comのようなDNSを追加し、ACMEプロトコルを使用してコマンドを実行します。暗号化しましょう。認証の課題を完了するために、テレポートホスト上のHTTPエンドポイントにアクセスします。
$ sudo teleport configure --acme [email protected] --cluster-name=tele.example.com -o file
または、自己署名証明書を作成して
$ sudo openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/teleport.key -out /etc/pki/tls/certs/teleport.crt>
証明書の作成後、以下に示すように、テレポートの構成にそれらの証明書を追加します。
$ sudo vim /etc/teleport.yaml
teleport: nodename: linuxways data_dir: /var/lib/teleport log: output: stderr severity: INFO format: output: text ca_pin: [] diag_addr: "" auth_service: enabled: “yes” cluster_name: "teleport" listen_addr: 0.0.0.0:3025 tokens: - proxy,node,app:e6cebf660b1f3390f204130b9649 public_addr: 5.22.209.65:3025 ssh_service: enabled: “yes” labels: env: example commands: - name: hostname command: [hostname] period: 1m0s app_service: enabled: “yes” debug_app: true proxy_service: enabled: “yes” listen_addr: 0.0.0.0:3023 web_listen_addr: 0.0.0.0:3080 tunnel_listen_addr: 0.0.0.0:3024 public_addr: 5.22.209.65:3080
https_keypairs:
- key_file: /etc/pki/tls/private/teleport1.key
cert_file: /etc/pki/tls/certs/teleport1.crt
テレポートサービスの設定とサービスの開始
以下に示すコマンドを使用して、テレポートサービスのsystemdサービスを作成しましょう。
$ sudo vim /etc/systemd/system/teleport.service
[Unit] Description=Teleport SSH Service After=network.target [Service] Type=simple Restart=on-failure EnvironmentFile=-/etc/default/teleport ExecStart=/usr/local/bin/teleport start --pid-file=/run/teleport.pid ExecReload=/bin/kill -HUP $MAINPID PIDFile=/run/teleport.pid LimitNOFILE=8192 [Install] WantedBy=multi-user.target
次に、以下に示すコマンドを実行してデーモンをリロードし、サービスを有効にして開始します。
$ sudo systemctl daemon-reload
$ sudo systemctl start teleport
$ sudo systemctl enable teleport
テレポートサービスのステータスを確認するには、次のようにコマンドを実行します。
$ sudo systemctl status teleport.service
2要素認証を設定してテレポートユーザーを作成する
ログインするには、適切な権限を持つユーザーが必要です。デフォルトでは、テレポートは2要素認証の使用を強制するため、Google認証システムを使用した2要素認証を使用してユーザー名admin-userのユーザーを作成しています。オプションで利用可能な他の認証方法を使用することもできます。
以下に示すコマンドを実行して、ユーザーを作成します。
$ sudo tctl users add admin-user --roles=editor,access --logins=root,ubuntu,linuxways
ご覧のとおり、管理者権限として編集者の役割とこのユーザーへのアクセスを提供しており、root、ubuntu、linuxwaysなどのユーザーはテレポートクラスターサーバーのサーバーにログインできます。
上記のコマンドを実行すると、下のスクリーンショットに示すような出力と、ユーザーのパスワードを作成するためのリンクが表示されます。
次に、サイトを参照して、下のスクリーンショットに示すように、2要素認証を使用してユーザーのパスワードを作成しましょう。
アカウントの作成をクリックすると、テレポートWebUIのダッシュボードが表示されます。新しく作成されたユーザーに、そのユーザーに特権を与えられたノードのリストが表示されます。詳細については、以下に示すスクリーンショットを確認してください。
クラスターへのノードの追加
テレポートクラスターに新しいノードを追加するには、次のようにコマンドを実行します。
テレポートへの最初のログイン
$ tsh login --proxy=tele.example.com --auth=local --user=admin-user
指定された制限時間でトークンを生成します。ここでは、時間を1時間に制限しています。
$ tctl tokens add --type=node --ttl=1hを追加します
次に、テレポートパッケージを新しいノードにダウンロードします。この場合、新しいノードはUbuntuオペレーティングシステムで実行されています。そのためには、以下に示すようにインストールプロセスを実行します。
$ curl https://deb.releases.teleport.dev/teleport-pubkey.asc | sudo apt-key add -
$ sudo add-apt-repository 'deb https://deb.releases.teleport.dev/ stable main'
$ sudo apt-get update
$ sudo apt install teleport
次に、上記のコマンドで作成されたトークンを使用して、新しいノードでこのコマンドを実行します。詳細については、以下に示すコマンドを確認してください。
この場合と同様に、ホスト名は testserver 下の写真に示すように、Teleport WEB-UIのサイトを閲覧し、サーバーセクションを確認することで確認できます。
追加されたサーバーへのアクセス
これで、新しいノードが正常に追加されたため、接続をクリックしてリストの優先ユーザーオプションでアクセスするだけで、WEBUIまたはターミナルから簡単にアクセスできます。詳細については、以下に示すスクリーンショットを確認してください。
この例では、ユーザーとしてrootを選択すると、次のタブが開き、下のスクリーンショットに示すように、新しいノードサーバーにアクセスできます。
ご覧のとおり、テレポートのWEB UIを使用して、新しいノード「testserver」でコマンドを簡単に実行できます。
結論
この記事では、Ubuntu20.04サーバーにテレポートをインストールして新しいノードを追加する方法を学びました。テレポートのWEBUIを介して、追加されたサーバーでコマンドを実行するのは簡単です。ありがとうございます!