テレポートはオープンソースで、インストールが簡単な認証局システムです。 SSHを介してアクセスできるさまざまなサーバー、さまざまなKubernetesデータベース、およびWebアプリがある場合。したがって、テレポートは、これらすべてのインフラストラクチャへのアクセスプレーンとして、それらすべてを1つのプラットフォームに配置するために使用されます。また、すべての環境でインタラクティブセッションを共有および記録する機能もあります。また、systemdサービスとして実行されます。
ここLinuxAPTでは、Ubuntu20.04サーバーにテレポートをインストールする方法を調べます。
UbuntuLinuxシステムにテレポートをインストールする手順
LinuxおよびMacオペレーティングシステムでは、テレポートコアサービステレポートと管理ツールtctlが、そのようなオペレーティングシステムで動作するように設計されているため使用されていることに注意してください。また、テレポートユーザークライアントのtshとUIは、Linux、Mac、その他のオペレーティングシステムで利用できます。
インストールを続行する前に満たす必要のある前提条件は次のとおりです。
- ポート443が開いているLinuxマシン。
- Authy、Google Authenticator、MicrosoftAuthenticatorなどの2要素認証アプリ。
- OpenSSHのようなSSHクライアント。
- AmazonRoute53やCoreDNSなどのDNSサービスへのアクセス。
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: linuxapt
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: linuxapt
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,linuxapt
ご覧のとおり、管理者権限として編集者の役割とこのユーザーへのアクセスを提供しており、root、ubuntu、linuxaptなどのユーザーはテレポートクラスターサーバーのサーバーにログインできます。
上記のコマンドを実行すると、ユーザーのパスワードを作成するためのリンクが表示されます。
それでは、サイトを閲覧して、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
次に、上記のコマンドで作成されたトークンを使用して、新しいノードでこのコマンドを実行します。
$ teleport start \
この場合と同様に、ホスト名はtestserverであるため、Teleport WEB-UIのサイトを参照してサーバーのセクションを確認することで、ホスト名を確認できます。
追加したサーバーにアクセスする方法は?
これで、新しいノードが正常に追加されたため、接続をクリックしてリストの優先ユーザーオプションでアクセスするだけで、WEBUIまたはターミナルから簡単にアクセスできます。
この例では、ユーザーとしてrootを選択すると、新しいノードサーバーにアクセスできる次のタブが開きます。