Gravitational Teleportを使用したサーバーアクセスのセキュリティ強化

SSHアクセスのセキュリティ確保は、サーバーインフラストラクチャーの完全性とセキュリティを維持する上で重要です。サーバーアクセスのセキュリティを効果的に確保することに苦労している場合は、心配しないでください。Gravitational Teleportは、チームがSSHセキュリティを管理し強化する方法を革新する先進的なソリューションとして登場します。

このチュートリアルでは、Teleportの複雑さを解明し、サーバーインフラストラクチャーを保護するための基本を装備します。シームレスなアクセス管理から堅牢なセキュリティ機能まで、Teleportがサーバーアクセスをどのように確保するかを探ります。

Gravitational Teleportを使用してマスターサーバーセキュリティを強化しましょう!

前提条件

このGravitational Teleportチュートリアルに乗り出すには、特定の基礎知識とリソースが必要です。したがって、このチュートリアルに従うためには、以下に記載された前提条件が満たされていることを確認してください:

  • 2つのLinuxサーバー:1つのサーバー(ホスト)はバスチオンホストとして使用され、もう1つのサーバーはTeleportでSSHアクセスを制限するために使用されます。-このチュートリアルでは、2つのUbuntu 22.04EC2インスタンスを使用します。
  • ホストサーバーの許可されたHTTPSイングレストラフィック(クラウドプロバイダーのドキュメントを参照)。

💡 このチュートリアルでは、AWS EC2 インスタンスを使用します。必要な変更は、セキュリティグループ > 入力ルールに行われます。AWS ドキュメントの セキュリティグループ入力ルールの設定方法 を参照してください。

  • A registered domain name with DNS A record pointing to your host server’s IP address.
  • A multi-factor authenticator app such as Authy, Google Authenticator, or Microsoft Authenticator.

Ubuntu に Gravitational Teleport をインストールおよび設定する

DNS の設定が完了したら、Ubuntu サーバーに強固なセキュリティ機能である Gravitational Teleport を装備する必要があります。適切なセキュリティ対策なしに、ゲートが広く開かれた城のように、サーバーは不正アクセスや潜在的な侵害に対して脆弱になります。

Gravitational Teleport は、厳格な要塞にアクセスを許可するため、承認された個人のみがサーバーにアクセスできるように堅固に防御します。

Gravitational Teleport をインストールおよび設定するには、次の手順を実行してください:

1. ホストサーバーに SSH でログインし、パッケージマネージャーのリポジトリを更新し、Teleport をインストールするために次のコマンドを実行します。現時点での最新バージョンは 15.1.9 ですが、常にすべての リリース を確認できます。

curl https://goteleport.com/static/install.sh | bash -s 15.1.9

注意:このチュートリアルでは、Advanced Package Tool(APT)パッケージマネージャーを使用しています。Teleportのインストールスクリプトが正常に機能しない場合は、パッケージマネージャーに合わせたインストール手順については、公式のTeleportドキュメントを参照してください。

上記のインストールスクリプトを実行した後、同様の出力が得られるはずです。

Installing Teleport on Ubuntu

2. インストールが完了したら、次のsystemctlコマンドを実行して、teleportサービスのstatusを確認してください。

systemctl status teleport

以下に示すように、Teleportは現在アクティブではなく無効です。

Teleportサービスを有効にして起動する前に、次の手順でTeleportのいくつかの設定を行う必要があります。

Checking the Teleport service status

3. 次に、次のteleportコマンドを実行して、以下の操作を実行してください:

  • Teleportのために/etc/teleport.yamlという構成ファイルを生成します。インストール中に設定されたTeleport Systemdサービスは、Teleportを起動するためにこのファイルが必要です。
  • ACME証明書の登録と通知用のメールアドレスを指定してください(<YOUR_EMAIL>を置き換えてください)。--acmeフラグは、TeleportにLet’s Encryptから自動的に証明書を取得するよう指示します。
  • Teleport --cluster-name を指定します。通常、TeleportプロキシサーバーのURLで表されます(<YOUR_TELEPORT_PROXY_URL>を置き換えます)。
sudo teleport configure -o /etc/teleport.yaml \--acme --acme-email=<YOUR_EMAIL> \--cluster-name=<YOUR_TELEPORT_PROXY_URL>

正しく構成されている場合、ターミナルで以下の出力が表示されます。

Configuring Teleport

4. それでは、以下の各コマンドを実行してTeleportサービスを 有効 にして 開始 します。

これらのコマンドにはターミナルへの出力はありませんが、次の手順で変更を確認できます。

# Teleportサービスをブート時に自動的に有効にするsudo systemctl enable teleport# Teleportサービスを起動するsudo systemctl start teleport

5. 最後に、以下の systemctl コマンドを実行して、Teleportサービスの ステータス を確認します。

systemctl status teleport

以下の出力は、Teleportサービスがアクティブで実行されていることを確認しており、UIにアクセスして操作を行うことができることを示しています。

Verifying the Teleport service is active and running

Teleport Web UIアクセスと管理者資格情報の設定

Teleportが稼働していますが、ユーザーアクセスをシームレスに管理したり、セッションを監視したり、サーバーインフラストラクチャを管理したりする方法はありますか?TeleportのウェブUIを使用して、ウェブブラウザから快適に操作できますが、まず、ウェブUIアクセスと管理者ユーザーの資格情報を設定する必要があります。

TeleportウェブUIアクセスと管理者資格情報を設定する手順については、次の手順に従ってください:

1. 「Ubuntu に Gravitational Teleport をインストールして構成する」セクションのステップ3で構成した Teleport プロキシ URL(例:https://teleport.example.com)にアクセスします。

成功すると、以下のTeleport ログインページが表示されます。残念ながら、まだサインインすることはできません。管理ユーザーと二要素認証(ステップ2)を設定する必要があります。

Accessing the Teleport sign-in page

2. ホストサーバーで、次のTeleport CLI ツール(tctl)コマンドを実行して、以下を実行します:

  • 専用のTeleport admin ユーザーを作成します(add)。
  • admin ユーザーに、指定されたログイン(rootec2-userubuntu)でSSHホストにログインする権限を与えます。
  • 管理ユーザーに役割accesseditorを割り当てます。
sudo tctl users add admin --roles=access,editor --logins=root,ec2-user,ubuntu 

追加後、管理ユーザーの作成が成功したことを示す出力から生成された招待リンクをコピーします。

Creating a dedicated Teleport admin user

3. ステップ3でコピーした招待リンクに新しいブラウザータブで移動し、以下のように表示されるウェルカムページでGET STARTEDをクリックします。この操作により、管理ユーザーの設定を開始できます。

Accessing the Teleport sign-in page

4. 次に、管理ユーザーのために強力なパスワードを入力し、確認し、NEXTをクリックして続行します。

Setting the admin password

5. 認証アプリを開き、QRコードをスキャンし、生成されたAuthenticator Codeを必要なフィールドに入力し、SUBMITをクリックします。

このプロセスにより、デバイス上で二要素認証を設定し、追加のセキュリティレイヤーを提供します。

Setting up two-factor authentication

6. 今、クラスターに移動して、Teleportアカウントにアクセスしてください。

Accessing the Teleport dashboard

ブラウザがTeleportのダッシュボードにリダイレクトされ、Teleportが実行されているホストサーバーが表示されます。現在、ホストサーバーがTeleportによって処理されている唯一の利用可能なリソースであることに注意してください。

Overviewing the Teleport dashboard

Teleportを使用してリソースを追加および管理する

Teleportダッシュボードにアクセスできるようになりましたが、現在は利用可能なリソースが1つだけです。しかし、中央集権型プラットフォームは、複数のリソースを一元管理できるときに真価を発揮します。

Teleportの強力なリソース管理機能を使用すると、単一のインターフェイスから追加のサーバー、データベース、またはその他のインフラコンポーネントを簡単にオンボードできます。

Teleportを使用してリソースを管理するには、次の手順を実行します。

1. Teleportのダッシュボードで、新しいリソースの登録を開始するには、新しいリソースを登録(右上)をクリックします。

Enrolling a new resource

2. 追加できるリソースの多様性から1つを選択して、Teleportを使用してセキュリティアクセスを追加します。このチュートリアルの選択は、Ubuntu 14.04+ Serverです。

Selecting a resource to add for access management

3. Teleportが生成したコマンドをコピーし、次の手順で実行します。

Copying the generated command

4. 次に、2番目のサーバーで端末を開き、ステップ3でコピーしたコマンドを実行して、サーバーをアクセス管理に追加します。

成功した場合、以下のスクリーンショットのような出力が表示されます。

Adding a second server to Teleport

5. 追加されたら、NEXTをクリックし、連続したプロンプトをNEXTFINISHをクリックして完了してください。

Proceeding with configuring the new resource

最後に、Teleportダッシュボードに移動し、以下に示すように新しく追加されたインスタンスを確認できます。

Confirming the new Teleport instance is successfully added

結論

以上でございます。Gravitational Teleportのインストールと設定が成功裡に完了し、Teleport Web UIがセットアップされ、管理者の資格情報が確立されました。このチュートリアルを通じて、サーバーアクセスの保護と管理について貴重な洞察を得ることができました。

さて、この新しい知識をさらに活用してみませんか?ローカルマシンにTeleport CLI (tsh) をインストールし、UIではなくCLI経由でTeleportサーバーに接続してみましょう。

さらに、Kubernetesクラスターなどのより多くのリソースに対するアクセス管理を実装してみましょう!

Source:
https://adamtheautomator.com/gravitational-teleport/