PCI DSSなどのコンプライアンス要件では、すべてのユーザーに一意のIDを割り当てることを求められています。コンプライアンスを遵守するためにも、共有アカウントでサーバーにアクセスするユーザーを特定する必要があります。
本ブログでは、特権IDセッション管理アプライアンス”Safeguard for Privileged Sessions(SPS)”のゲートウェイ認証機能を使用して、SSHによるリモートアクセスユーザーを二段階認証する手順をご説明します。
ゲートウェイ認証イメージ
|
ユーザーがターゲットサーバーへのアクセスに共有アカウント(例えば、rootあるいはAdministratorなど)を使用する場合に、SPSはユーザー本人を認証するのにゲートウェイ認証を使用することができます。ここでは、SPSのローカルユーザーデータベースを使用して、SSH接続のゲートウェイ認証(インバンド)する方法について説明します。
ローカルユーザーデータベースは、SPSのゲートウェイ認証(インバンド)のシナリオで、最も一般的に使用されます。
[Policies]>[Local User Databases]に移動し、[+]ボタンをクリックして新しいローカルユーザーデータベースを作成します。
これは、リモートサーバーに接続する前に、SPSでローカル認証されるユーザーのリストです。
[SSH Control]>[Authentication Policies]に移動し、[+]をクリックして新しい認証ポリシーを作成します。
[Authenticate the client to SPS using]セクションで、[Local user database]を選択して、[Allowed authentication methods]セクションで[Password]にチェックします。[Local user database]フィールドで、前手順で作成したローカルユーザーデータベースを選択します。
[SSH Control]>[Connections]に移動して、上述の認証ポリシーを適用する接続ポリシーを選択して、[Authentication policy]フィールドで認証ポリシーを適用します。
PuTTYを使用して、SSHサーバーにアクセスします。(ここでは、ノントランスペアレントモードでSPSにアクセスし、ポートはデフォルトポートと異なるポートを使用しています。)
※ノントランスペアレント(非透過)モードでは、SPSは踏み台ホストとして動作します。
サーバー証明書を確認します。
ログインユーザーを入力します。ここでは、rootを使用します。
ゲートウェイ認証用のパスワードが求められます。この例では、SPSはゲートウェイ認証用のユーザーアカウントとして、前述で入力したログインユーザー(root)を使用しますが、SPSのローカルユーザーデータベースにはrootのアカウント情報がないため、最終的には次のようにエラーになります。
SSHクライアントはエラーを発生して終了します。
リモートサーバーへのログインに使用されるユーザー名と、SPSのゲートウェイ認証で使用されるユーザー名が異なる場合(例えば、リモートサーバーでrootなどの共有アカウントを使用し、ゲートウェイ認証では個人アカウントが設定)は、接続で以下のユーザーマッピングポリシーを設定する必要があります。
[Policies]>[Usermapping Policies]に移動して、[+]をクリックして新しいユーザーマッピングポリシーを作成します。リモートサーバーへのアクセスに使用することができるユーザー名(ここでは、root)を入力します。必要に応じて[Groups]に、このユーザー名の使用が許可されるユーザーリスト名を入力します。
[SSH Control]>[Connections]に移動して、上述のユーザーマッピングポリシーを適用する接続ポリシーを選択して、[Usermapping policy]フィールドでユーザーマッピングポリシーを適用します。
再度、PuTTYを使用してリモートサーバーに接続します。
プロンプトに[Gateway username:]が表示されるので、ゲートウェイユーザー名を入力します。その後、[Gateway password:]にパスワードを入力します。これは、ローカルユーザーデータベースで設定したユーザー名とパスワードです。
最後に、[Password:]プロンプトに、リモートサーバーにアクセスするユーザー(ここでは、root)のパスワードを入力します。
ゲートウェイ認証接続では、以下のようにアクセスユーザー名とサーバーユーザー名に異なる名前が出力されます。
ユーザーマッピングポリシーを使用しないで、ローカルユーザーデータベースにリモートサーバーにアクセスするのと同じユーザーを設定することは可能です。以下のように、ゲートウェイユーザーのrootのパスワードを入力して、リモートサーバーのrootのパスワードを入力してアクセスできます。
ただし、この場合、アクセスユーザーとリモートサーバーユーザーが同じになるため、アクセスしたユーザー本人を特定することはできません。
【注意】
ゲートウェイ認証は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リモートユーザーのゲートウェイ認証をご確認ください。
ダウンロード(評価版)
お問合せ
ご不明な点やお気づきの点がございましたらお問い合せください。