RADIUS、TACACS+ の認証順序、およびローカルパスワード
Junos OSは、ローカルパスワード認証、RADIUS、TACACS+など、ネットワークへのアクセスを制御するさまざまな認証方法をサポートしています。
複数の認証方法をサポートするようにデバイスを設定する場合、デバイスが異なる方法を試す順序に優先順位を付けることができます。このトピックでは、認証順序のしくみと、デバイス上での設定方法について説明します。
認証順序の概要
ネットワーク管理者は、ルーターまたはスイッチへのユーザーアクセスを確認するために、Junos OSがさまざまな認証方法を試す順序に優先順位を付けるようにauthentication-orderステートメントを設定できます。認証順序を設定しない場合、デフォルトでは、Junos OSは設定されたローカルパスワードに基づいてユーザーを検証します。
認証順序にRADIUSまたはTACACS+サーバーが含まれているが、サーバーが要求に応答しない場合、 Junos OS は常にデフォルトで最後の手段としてローカルパスワード認証を試みます。
認証順序にRADIUSまたはTACACS+サーバーが含まれているが、サーバーがリクエストを拒否した場合、リクエストの処理はさらに複雑になります。
-
認証順序の最後に
password(ローカル パスワード認証) が含まれており、リモート認証サーバーが認証要求を拒否した場合、デバイスはローカルパスワードの認証を試みます。 -
password(ローカルパスワード認証)が認証順序に含まれておらず、リモート認証サーバーが認証リクエストを拒否した場合、リクエストは拒否で終了します。
したがって、リモート認証サーバーが要求を拒否した場合に、デバイスがローカルパスワード認証を試みるための最終認証順序オプションとして、デバイスには password を含める必要があります。
認証順序が authentication-order passwordに設定されている場合、デバイスはローカルパスワード認証のみを使用します。
リモート認証の使用
Junos OS を RADIUS または TACACS+ 認証クライアント(またはその組み合わせ)に設定できます。
authentication-orderステートメントに含まれる認証メソッドが使用できない場合、または認証メソッドが使用可能であるが、対応する認証サーバーが拒否応答を返した場合、Junos OSはauthentication-orderステートメントに含まれる次の認証メソッドを試行します。
RADIUS、またはTACACS+サーバーの認証は、以下の1つ以上の理由で失敗する可能性があります。
-
認証方法は設定されていますが、対応する認証サーバーは設定されていません。例えば、RADIUSおよびTACACS+ 認証メソッドは
authentication-orderステートメントに含まれていますが、対応するRADIUSまたはTACACS+サーバーは、それぞれの[edit system radius-server]および[edit system tacplus-server]階層レベルで設定されていません。 -
認証サーバーは、そのサーバーに設定されたタイムアウト値より前、またはタイムアウトが設定されていない場合はデフォルトのタイムアウトより前に応答しません。
-
ネットワークの問題により、認証サーバーに到達できません。
認証サーバーは、以下の理由のどちらかまたは両方で拒否応答を返す場合があります。
-
ルーターまたはスイッチにアクセスするユーザーのユーザープロファイルは、認証サーバーで設定されていません。
-
ユーザーが間違ったログオン資格を入力した。
ローカルパスワード認証の使用方法
authentication-orderステートメントでpassword認証メソッドを明示的に設定するか、リモート認証サーバーに障害が発生した場合のフォールバックメカニズムとしてこのメソッドを使用できます。password認証方法は、[edit system login]階層レベルで設定されたローカルユーザープロファイルを参照します。以下のシナリオでは、ユーザーはローカルのユーザー名とパスワードを使用してルーターまたはスイッチにログインできます。
-
パスワード認証メソッド(
password)は、authentication-orderステートメントで認証メソッドの1つとして明示的に設定されています。この場合、以前の認証方法がログオン資格情報を受け入れない場合、デバイスはローカルパスワード認証を試みます。これは、以前の認証方法が応答しない場合、またはユーザー名またはパスワードが間違っているために拒否応答を返した場合に当てはまります。
-
パスワード認証方法は、
authentication-orderステートメントの認証メソッドの1つとして明示的に設定されていません。この場合、オペレーティングシステムは、設定されたすべての認証メソッドが応答しない場合にのみ、ローカルパスワード認証を試みます。オペレーティングシステムは、設定された認証メソッドが不正なユーザー名またはパスワードのために拒否応答を返す場合、ローカルパスワード認証を使用しません。
認証試行の順序
表1は、[edit system]階層レベルのauthentication-orderステートメントが、デバイスへのアクセスのためのユーザーを認証するためにJunos OSが使用する手順をどのように決定するかを示しています。
|
構文 |
認証試行の順序 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SSHパブリックキーが設定されている場合、SSHユーザー認証は、 authentication-order ステートメントで設定された認証方法を使用する前に、まず公開キー認証を実行しようとします。最初に公開キー認証を試みずに、 authentication-order ステートメントで設定された認証方法をSSHログインに行わせる場合は、SSHパブリックキーを設定しないでください。
RADIUS、TACACS+、ローカルパスワード認証の認証順序の設定
authentication-orderステートメントを使用すると、ルーターまたはスイッチへのユーザーアクセスを確認するときに、Junos OSがさまざまな認証方法を試す順序に優先順位を付けることができます。認証順序を設定しない場合、デフォルトでは、ローカルで設定されたパスワードに基づいてユーザーが検証されます。
プレーンテキストを使用してパスワードを設定し、それを暗号化するために Junos OS に依存している場合、パスワードはプレーンテキストでインターネット経由で送信されます。事前に暗号化されたパスワードを使用すると、パスワードのプレーンテキストをインターネット経由で送信する必要がないため、より安全です。また、パスワードでは、一度に1人のユーザーしかパスワードを割り当てることができません。
一方、RADIUSおよびTACACS+はパスワードを暗号化します。これらの認証方法では、ユーザーを1人ずつ割り当てるのではなく、一度に一連のユーザーを割り当てることができます。ただし、これらの認証システムの違いは次のとおりです。
-
RADIUS は UDP を使用します。TACACS+ は TCP を使用します。
-
RADIUSは送信中にパスワードのみを暗号化しますが、TACACS+はセッション全体を暗号化します。
-
RADIUS は認証(デバイス)と許可(ユーザー)を組み合わせますが、TACACS+ は認証、許可、説明責任を分離します。
つまり、TACACS+ は RADIUS よりも安全です。ただし、RADIUS のパフォーマンスは優れており、相互運用性も優れています。RADIUS は広くサポートされていますが、TACACS+ はシスコ独自の製品であり、シスコ以外では広くサポートされていません。
システム、その制限事項、ITポリシーと運用上の好みに基づいて認証順序を設定できます。
認証順序を設定するには、[edit system]階層レベルでauthentication-orderステートメントを含めます。
[edit system] user@host# set authentication-order [authentication-methods ]
このステートメントを含めることができる階層レベルの一覧については、このステートメントの「ステートメント概要」セクションを参照してください。
認証順序の入力オプションは次のとおりです。
-
radius—RADIUS認証サーバーを使用してユーザーを確認します。 -
tacplus—TACACS+ 認証サーバーを使用してユーザーを確認します。 -
password—[edit system login user]階層レベルの認証ステートメントでローカルに設定されたユーザー名とパスワードを使用してユーザーを確認します。
チャレンジハンドシェイク認証プロトコル(CHAP)認証シーケンスは、30秒以内にしてください。クライアントの認証に 30 秒以上かかる場合、認証は破棄され、新しいシーケンスが開始されます。
例えば、ルーターまたはスイッチが各サーバーへの接続を 3 回試みるように、3 台の RADIUS サーバーを設定するとします。さらに、再試行のたびにサーバーが 3 秒後にタイムアウトすると仮定します。このシナリオでは、CHAPが失敗と見なすまでにRADIUS認証方法に与えられる最大時間は27秒です。この設定にさらにRADIUSサーバーを追加すると、これらのサーバーが試行される前に認証プロセスが放棄される可能性があるため、連絡が取られない可能性があります。
Junos OS では、CHAP認証が一度に持つことができるスタンディング認証サーバー要求の数に制限を設けています。そのため、認証サーバー方法(例えばRADIUS)は、この制限を超えるとクライアントの認証に失敗する可能性があります。認証に失敗した場合、認証が成功してリンクが確立されるまで、認証シーケンスがルーターまたはスイッチによって再開されます。ただし、RADIUSサーバーが使用できず、 tacplus や password などの追加の認証方法も設定されている場合は、次の認証方法が試行されます。
以下の例は、 radius と password 認証を設定する方法を示しています。
[edit system] user@switch# set authentication-order [ radius password ]
以下の例は、radiusステートメントの後にtacplusステートメントを挿入する方法を示しています。
[edit system] user@switch# insert authentication-order tacplus after radius
以下の例は、認証順序から radius ステートメントを削除する方法を示しています。
[edit system] user@switch# delete authentication-order radius
例:認証順序の設定
この例では、ユーザーログインの認証順序を設定する方法を示しています。
要件
開始する前に、デバイスの初期設定を実行してください。お使いのデバイスの『スタートアップガイド』を参照してください。
概要
デバイスがデバイスへのユーザーアクセスを確認するために使用する認証方法の順序を設定できます。ログインを試みるたびに、デバイスは、パスワードが一致するか、すべての認証方法が試行されるまで、設定された順序で認証方法を試行します。リモート認証を設定しない場合、ユーザーは設定されたローカルパスワードに基づいて検証されます。
この例では、最初にRADIUS認証サービスでユーザー認証を試み、次にTACACS+認証サービス、最後にローカルパスワード認証でユーザー認証を試みるようにデバイスを設定します。
ローカルパスワード認証を使用する場合、システムにアクセスするすべてのユーザーに対してローカルユーザーアカウントを作成する必要があります。ただし、リモート認証サーバーを使用する場合は、一連のユーザーが共有するテンプレートアカウントを(認証目的で)作成できます。ユーザーがテンプレートアカウントに割り当てられている場合、コマンドラインインターフェイス(CLI)のユーザー名はログイン名です。ただし、ユーザーはテンプレートアカウントから権限、ファイル所有権、有効なユーザーIDを継承します。
設定
手順
CLIクイックコンフィグレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードで commit を入力します。
delete system authentication-order set system authentication-order radius insert system authentication-order tacplus after radius insert system authentication-order password after tacplus
GUIクイックコンフィグレーション
ステップバイステップの手順
認証順序を設定するには:
-
J-Webユーザーインターフェイスで、[
Configure>System Properties>User Management]を選択します。 -
Editをクリックします。「ユーザー管理の編集」ダイアログボックスが表示されます。 -
Authentication Method and Orderタブを選択します。 -
使用可能な方法で、デバイスがユーザーを認証するために使用する認証方法を選択します。矢印ボタンを使用して、項目を選択した方法リストに移動します。使用可能な方法は次のとおりです。
-
RADIUS
-
TACACS+
-
ローカルパスワード
複数の方法を使用してユーザーを認証する場合は、この手順を繰り返して、他の方法を選択した方法リストに追加します。
-
-
選択した方法で、上矢印と下矢印を使用して、デバイスが認証方法を実行する順序を指定します。
-
OKをクリックして設定を確認し、設定の候補として保存します。 -
デバイスを設定した後、
Commit Options>Commitをクリックします。
ステップバイステップの手順
認証順序を設定するには:
-
既存の
authentication-orderステートメントを削除します。[edit] user@host# delete system authentication-order
-
認証注文にRADIUS認証を追加します。
[edit] user@host# set system authentication-order radius
-
認証の順序にTACACS+ 認証を追加します。
[edit] user@host# insert system authentication-order tacplus after radius
-
ローカルパスワード認証を認証順序に追加します。
[edit] user@host# insert system authentication-order password after tacplus
結果
設定モードで、 show system authentication-order コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show system authentication-order authentication-order [ radius tacplus password ];
デバイスの設定後、設定モードで commit を入力します。
RADIUS または TACACS+ 認証を完全に設定するには、少なくとも 1 つの RADIUS または TACACS+ サーバーを設定し、ユーザー アカウントまたはユーザー テンプレート アカウントを作成する必要があります。
-
RADIUSサーバーを設定します。例 :システム認証用の RADIUS サーバーの設定を参照してください。
-
TACACS+サーバーを設定します。例 :システム認証用にTACACS+サーバーを設定するを参照してください。
-
ユーザーを設定します。 例:新しいユーザーアカウントの設定を参照してください。
-
テンプレートアカウントを設定します。「 例:テンプレートアカウントの作成」を参照してください。
検証
設定が正常に機能していることを確認します。
認証順序設定の確認
目的
デバイスが設定された順序で認証方法を使用していることを確認します。
アクション
認証方法ごとに異なるパスワードを持つテストユーザーを作成します。異なるパスワードを使用してデバイスにログインします。以前の方法でパスワードが拒否されたり、応答しなかったりした場合、デバイスが後続の認証方法にクエリしていることを確認します。
または、テスト環境で、認証サーバー設定またはローカルユーザーアカウント設定(またはその両方)を無効にして、各認証方法をテストすることもできます。例えば、TACACS+ サーバーをテストするには、RADIUS サーバーの設定とユーザーのローカル アカウントを無効にします。ただし、ユーザーのローカルアカウントを非アクティブ化する場合は、ユーザーが remote ユーザーテンプレートなどのローカルユーザーテンプレートアカウントに引き続きマッピングされていることを確認する必要があります。
例:RADIUS、TACACS+、パスワード認証のシステム認証の設定
次の例は、Junos OSを実行するデバイスでRADIUS、TACACS+、パスワード認証のシステム認証を設定する方法を示しています。
この例では、ユーザーPhilipとRADIUSサーバーで認証されたユーザーのみがログインできます。ユーザーがログインし、RADIUSサーバーによって認証されていない場合、ユーザーはルーターまたはスイッチへのアクセスを拒否されます。RADIUSサーバーが使用できない場合、ユーザーは password 認証方式を使用して認証され、ルーターまたはスイッチへのアクセスが許可されます。パスワード認証方法の詳細については、「 認証順序の概要」を参照してください。
フィリップがシステムにログインしようとすると、RADIUSサーバーがフィリップを認証すると、 super-user クラスのアクセス権と権限が付与されます。 ローカルアカウントは、他のユーザー用に構成されていません。システムにログインし、RADIUSサーバーが認証すると、同じユーザーID(UID)9999と operator クラスに関連付けられた権限を使用してアクセスが付与されます。
[edit]
system {
authentication-order radius;
login {
user philip {
full-name "Philip";
uid 1001;
class super-user;
}
user remote {
full-name "All remote users";
uid 9999;
class operator;
}
}
}
認証目的で、テンプレートアカウントを使用して、一連のユーザーが同時に共有できる単一のアカウントを作成できます。例えば、リモートテンプレートアカウントを作成すると、一連のリモートユーザーが単一のUIDを同時に共有できます。テンプレートアカウントの詳細については、「 例:認証順序の設定」を参照してください。
ユーザーがデバイスにログインすると、RADIUS または TACACS+ サーバーはユーザーのログイン名を使用して認証を行います。認証サーバーがユーザーを正常に認証し、ユーザーが [edit system login user] 階層レベルで設定されていない場合、以下のような結果になります。 リモートテンプレートアカウントが edit system login user remote 階層レベルで設定されている場合、デバイスはユーザーのデフォルトのリモートテンプレートユーザーアカウントを使用します。リモートテンプレートアカウントは、認証サーバーで認証されているが、デバイス上にローカルに設定されたユーザーアカウントがないすべてのユーザーのデフォルトの認証ユーザーアカウントとして機能します。このようなユーザーは、同じログインクラスとUIDを共有します。
代替テンプレートユーザーを設定するには、RADIUS認証応答パケットで返される user-name パラメーターを指定します。すべての RADIUS サーバーでこのパラメーターを変更できるわけではありません。Junos OSの設定例を次に示します。
[edit]
system {
authentication-order radius;
login {
user philip {
full-name "Philip";
uid 1001;
class super-user;
}
user operator {
full-name "All operators";
uid 9990;
class operator;
}
user remote {
full-name "All remote users";
uid 9999;
class read-only;
}
}
}
RADIUSサーバーが以下の情報で設定されているとします。
-
パスワード「olympia」のユーザーPhilip
-
パスワード「bucephalus」およびユーザー名「運用担当者」のユーザーAlexander
-
パスワード「redhead」、ユーザー名「運用担当者」のユーザーDarius
-
パスワード「athena」のユーザーRoxane
フィリップは、一意のローカルユーザーアカウントを持っているため、スーパーユーザー(super-user)としてアクセスが許可されます。AlexanderとDariusはUID 9990を共有し、オペレーターとしてアクセスできます。Roxaneにはテンプレートユーザーのオーバーライドがないため、他のすべてのリモートユーザーとアクセスを共有し、読み取り専用のアクセス権を取得します。