2019年12月9日月曜日

SSHリモートアクセスのゲートウェイ認証【Safeguard for Privileged Sessions(SPS)】

PCI DSSなどのコンプライアンス要件では、すべてのユーザーに一意のIDを割り当てることを求められています。コンプライアンスを遵守するためにも、共有アカウントでサーバーにアクセスするユーザーを特定する必要があります。
本ブログでは、特権IDセッション管理アプライアンス”Safeguard for Privileged Sessions(SPS)”のゲートウェイ認証機能を使用して、SSHによるリモートアクセスユーザーを二段階認証する手順をご説明します。

ゲートウェイ認証イメージ


ユーザーがターゲットサーバーへのアクセスに共有アカウント(例えば、rootあるいはAdministratorなど)を使用する場合に、SPSはユーザー本人を認証するのにゲートウェイ認証を使用することができます。ここでは、SPSのローカルユーザーデータベースを使用して、SSH接続のゲートウェイ認証(インバンド)する方法について説明します。
ローカルユーザーデータベースは、SPSのゲートウェイ認証(インバンド)のシナリオで、最も一般的に使用されます。

[Policies]>[Local User Databases]に移動し、[+]ボタンをクリックして新しいローカルユーザーデータベースを作成します。
これは、リモートサーバーに接続する前に、SPSでローカル認証されるユーザーのリストです。

<SPSのローカルユーザーデータベース設定画面>

[SSH Control]>[Authentication Policies]に移動し、[+]をクリックして新しい認証ポリシーを作成します。
[Authenticate the client to SPS using]セクションで、[Local user database]を選択して、[Allowed authentication methods]セクションで[Password]にチェックします。[Local user database]フィールドで、前手順で作成したローカルユーザーデータベースを選択します。

<SPSの認証ポリシー設定画面>
※LDAPやRADIUSで認証することも可能です。

[SSH Control]>[Connections]に移動して、上述の認証ポリシーを適用する接続ポリシーを選択して、[Authentication policy]フィールドで認証ポリシーを適用します。

<SPSの接続ポリシー設定画面(一部)>

PuTTYを使用して、SSHサーバーにアクセスします。(ここでは、ノントランスペアレントモードでSPSにアクセスし、ポートはデフォルトポートと異なるポートを使用しています。)
※ノントランスペアレント(非透過)モードでは、SPSは踏み台ホストとして動作します。

サーバー証明書を確認します。

ログインユーザーを入力します。ここでは、rootを使用します。

ゲートウェイ認証用のパスワードが求められます。この例では、SPSはゲートウェイ認証用のユーザーアカウントとして、前述で入力したログインユーザー(root)を使用しますが、SPSのローカルユーザーデータベースにはrootのアカウント情報がないため、最終的には次のようにエラーになります。


SSHクライアントはエラーを発生して終了します。

リモートサーバーへのログインに使用されるユーザー名と、SPSのゲートウェイ認証で使用されるユーザー名が異なる場合(例えば、リモートサーバーでrootなどの共有アカウントを使用し、ゲートウェイ認証では個人アカウントが設定)は、接続で以下のユーザーマッピングポリシーを設定する必要があります。

[Policies]>[Usermapping Policies]に移動して、[+]をクリックして新しいユーザーマッピングポリシーを作成します。リモートサーバーへのアクセスに使用することができるユーザー名(ここでは、root)を入力します。必要に応じて[Groups]に、このユーザー名の使用が許可されるユーザーリスト名を入力します。

<SPSのユーザーマッピングポリシー設定画面>

[SSH Control]>[Connections]に移動して、上述のユーザーマッピングポリシーを適用する接続ポリシーを選択して、[Usermapping policy]フィールドでユーザーマッピングポリシーを適用します。

<SPSの接続ポリシー設定画面(一部)>

再度、PuTTYを使用してリモートサーバーに接続します。

プロンプトに[Gateway username:]が表示されるので、ゲートウェイユーザー名を入力します。その後、[Gateway password:]にパスワードを入力します。これは、ローカルユーザーデータベースで設定したユーザー名とパスワードです。

最後に、[Password:]プロンプトに、リモートサーバーにアクセスするユーザー(ここでは、root)のパスワードを入力します。

ゲートウェイ認証接続では、以下のようにアクセスユーザー名とサーバーユーザー名に異なる名前が出力されます。

<SPSの[Active Connections]ページ>

<SPSの[Search]ページの一覧ページ>

<SPSの[Search]ページの[Details]ページ>

ユーザーマッピングポリシーを使用しないで、ローカルユーザーデータベースにリモートサーバーにアクセスするのと同じユーザーを設定することは可能です。以下のように、ゲートウェイユーザーのrootのパスワードを入力して、リモートサーバーのrootのパスワードを入力してアクセスできます。

ただし、この場合、アクセスユーザーとリモートサーバーユーザーが同じになるため、アクセスしたユーザー本人を特定することはできません。

<SPSの[Active Connections]ページ>


【注意】
ゲートウェイ認証はTera Termでは正しく動作しません。
(操作例)
Tera Termでリモートサーバーにアクセスします。

サーバー証明書を確認します。

[キーボードインタラクティブ]を選択して、接続します。

[Gateway username:]プロンプトが表示されます。ゲートウェイユーザー名を入力します。

[Gateway password:]プロンプトが表示されます。パスワードを入力します。パスワード入力後も、このプロンプトが再表示され続けリモートサーバーにアクセスできません。


【追記】
WindowsのOpenSSLの場合

>ssh -p 20220 root@192.168.91.169
Gateway authentication and authorization
Please specify the requested information
Gateway username: yamada
Gateway password:
Password:



PuTTYを使用した場合と同様に、ログインユーザー(ここでは、root)でログインし、ローカルユーザーデータベースで設定したユーザー名とパスワードを入力します。

【まとめ】
上述の通り、SPSのゲートウェイ認証機能を利用して、共有アカウントを利用するSSHリモートユーザーを特定させることが可能です。
SPSでは、評価用のソフトウェアを用意しておりますので、SSHリモートユーザーのゲートウェイ認証をご確認ください。

ダウンロード(評価版)
Safeguard for Privileged Sessions (SPS) には評価版ソフトウェア(30日間)を用意しています。ぜひお試しください。

詳しくは製品紹介ページ・製品ガイドをご参照ください。



お問合せ
購入前のSafeguard for Privileged Sessions (SPS)についてのお問合せは以下から承っております。
ご不明な点やお気づきの点がございましたらお問い合せください。