ユーザー認証の概要
Junos OS は、ユーザー(ネットワーク管理者)がネットワークへのユーザー アクセスの制御に使用するさまざまな認証方法をサポートしています。これらの方法には、ローカル パスワード認証、軽量ディレクトリ アクセス プロトコル(LDAP)、RADIUS、TACACS+ が含まれます。一部のログイン ユーザーは、トランスポート レイヤー セキュリティ(TLS)を使用します。Junos OS リリース 20.2R1 以降では、LDAPS クライアントと LDAPS サーバー間の TLS(LDAPS)を使用したログイン ユーザーに対する LDAP サポートを導入しました。(LDAPS クライアントは Junos OS を実行しているデバイスです)。これらの認証方法のいずれかを使用して、SSH および Telnet を使用してルーターまたはスイッチへのアクセスを試みるユーザーとデバイスを検証します。認証により、許可されていないデバイスやユーザーが LAN にアクセスできなくなります。
ユーザー認証方法
Junos OS は、次の 4 つの方法でユーザー認証をサポートします。ローカルパスワード認証、LDAP over TLS(LDAPS)、RADIUS、TACACS+。
ローカル パスワード認証では、ルーターまたはスイッチへのログインを許可された各ユーザーに対してパスワードを設定します。
LDAPS、RADIUS、TACACS+ は、任意のログイン方法を使用してルーターまたはスイッチへのアクセスを試みるユーザーを検証するための認証方法です。分散クライアント/サーバー システムです。LDAPS、RADIUS、TACACS+ クライアントはルーターまたはスイッチ上で実行され、サーバーはリモート ネットワーク システムで動作します。
ルーターまたはスイッチを LDAPS、RADIUS、TACACS+ クライアント、または組み合わせに設定できます。また、Junos OS 設定ファイルで認証パスワードを設定することもできます。ユーザー アクセスを検証する際に、ソフトウェアがさまざまな認証方法を試みる順序を設定する方法に優先順位を設定できます。
ユーザー認証用にローカル ユーザー テンプレート アカウントを構成します。
ローカル ユーザー テンプレート アカウントを使用して、異なるログイン クラスを割り当て、リモート認証サーバーを介して認証されたユーザーに異なるアクセス許可を付与します。各テンプレートは、そのテンプレートに割り当てられたユーザーに適した異なる権限セットを定義できます。テンプレートはルーターまたはスイッチでローカルに定義し、TACACS+、RADIUS、LDAPS 認証サーバーがテンプレートを参照します。認証されたユーザーがテンプレート アカウントに割り当てられると、CLI ユーザー名はログイン名になりますが、ユーザーはテンプレート アカウントから特権、ファイル所有権、有効なユーザー ID を継承します。
ローカル ユーザー テンプレートとユーザー ログインを設定すると、Junos OS は認証サーバーにユーザーのログイン名を認証する要求を発行します。ユーザーが認証されている場合、サーバーはローカルユーザー名をJunos OS(juniperLocalUserName
LDAPS、TACACS+、 local-user-name
RADIUS Juniper-Local-User-Name
の場合)に返します。Junos OS は、そのログイン名にローカル ユーザー名が指定されているかどうかを判断し、その場合、Junos OS はそのローカル ユーザー テンプレートにユーザーを割り当てます。認証されたユーザーのローカル ユーザー テンプレートが存在しない場合、ルーターまたはスイッチはデフォルトで remote
テンプレート(設定されている場合)に設定されます。
ローカル ユーザー テンプレートを設定するには、階層レベルでテンプレート ユーザー名を [edit system login]
定義します。テンプレートを適用するローカル ユーザーに付与する権限を指定するクラスを割り当てます。
[edit system login] user local-username { full-name "Local user account"; uid uid-value; class class-name; }
ユーザーをローカル ユーザー テンプレートに割り当てるには、適切なパラメータ(juniperLocalUserName
LDAPS、TACACS+、 local-user-name
RADIUS 用)を使用して Juniper-Local-User-Name
リモート認証サーバーを設定し、ローカル ユーザー テンプレートに定義されたユーザー名を指定します。ローカル ユーザー テンプレート アカウントを共有するユーザーに対して異なるアクセス権限を設定するには、認証サーバー構成ファイルでベンダー固有の属性を使用して、ユーザーの特定のコマンドと構成階層を許可または拒否できます。
次の例では、ローカル デバイスでユーザー テンプレートを設定 u_ldap
し、LDAP データ 交換形式(LDIF)設定ファイルによってユーザーがテンプレートに割り当てられます。
[edit] system { login { user u-ldap { class class-name; } }
user.ldif snippet: dn: uid=simon,dc=example,dc=com uid: simon sn: User cn: Auth User objectClass: person objectClass: organizationalPerson objectClass: posixAccount objectClass: top objectClass: shadowAccount objectClass: juniperAuthAccount loginShell: /bin/bash homeDirectory: /home/simon userPassword: secret uidNumber: 1002 gidNumber: 1002 shadowMax: 10 juniperLocalUserName: u_ldap juniperUserPerms: clear view shell admin-control juniperAllowConf: (show cli authorization)|(ping) juniperDenyConf: (show ospf)|(show log) juniperAllowCmds: configure juniperDenyCmds: shutdown
次の例では、 u_ldap
ローカル デバイスでテンプレートと auth
ユーザー テンプレートを設定し、認証サーバーの設定によって各ユーザーが適切なテンプレートに割り当てられます。ユーザー John と Harry が認証されると、ルーターまたはスイッチがローカル ユーザー テンプレートを u_ldap
適用します。ユーザーのトムとデイブが認証されると、ルーターまたはスイッチがローカル ユーザー テンプレートを auth
適用します。
[edit] system { login { user u-ldap { uid 6001; class ldap-class; } user auth { uid 6002; class operator; } } }
user = john { ... service = junos-exec { juniperLocalUserName = u-ldap juniperAllowCmds= "(start shell)|(show cli authorization)|(clear ipsec)|(show firewall)|(show interfaces)|(show version)" juniperDenyCmds= "(show ospf)|(show log)|(show system certificate)|(show ppp)|(show policy)|restart|request" } } user = harry { ... service = junos-exec { juniperLocalUserName = u-ldap juniperAllowCmds = "(start shell)|(show cli authorization)|(clear ipsec)|(show firewall)|(show interfaces)|(show version)" juniperDenyCmds = "(show ospf)|(show log)|(show system certificate)|(show ppp)|(show policy)|restart|request" } } user = tom { ... service = junos-exec { juniperLocalUserName = auth juniperAllowCmds = "(start shell)|(show cli authorization)" juniperDenyCmds = "show ppp statistics" } } user = dave { ... service = junos-exec { juniperLocalUserName = auth juniperAllowCmds = "show bgp neighbor" juniperDenyCmds = "telnet | ssh" } }
この例では、ローカル デバイスで sales
および engineering
ユーザー テンプレートを設定します。TACACS+ サーバー設定ファイルは、ユーザーを特定のテンプレートに割り当てます。
[edit] system { login { user sales { uid 6003; class sales-class; } user engineering { uid 6004; class super-user; } } }
ユーザーの Simon と Rob が認証されると、ルーターまたはスイッチがローカル ユーザー テンプレートを sales
適用します。ログイン ユーザーの Harold と Jim が認証されると、ルーターまたはスイッチがローカル ユーザー テンプレートを engineering
適用します。
user = simon { ... service = junos-exec { local-user-name = sales allow-commands = "configure" deny-commands = "shutdown" } } user = rob { ... service = junos-exec { local-user-name = sales allow-commands = "(request system) | (show rip neighbor)" deny-commands = "clear" } } user = harold { ... service = junos-exec { local-user-name = engineering allow-commands = "monitor | help | show | ping | traceroute" deny-commands = "configure" } } user = jim { ... service = junos-exec { local-user-name = engineering allow-commands = "show bgp neighbor" deny-commands = "telnet | ssh" } }
ユーザー認証用のリモート ユーザー テンプレート アカウントの構成
ネットワーク デバイスは、リモートで認証されたユーザーを、ローカルで定義されたユーザー アカウントまたはユーザー テンプレート アカウントにマッピングして、許可を決定できます。remote
テンプレート アカウントは、特別なユーザー テンプレートです。デフォルトでは、 Junos OS リモートで認証されたユーザーが設定されている場合は、次の remote
場合にテンプレート アカウントに割り当てます。
-
認証されたユーザーは、ローカル デバイスで構成されたユーザー アカウントを持っていません。
-
リモート認証サーバーは、ユーザーをローカル ユーザー テンプレートに割り当てないか、サーバーが割り当てるテンプレートがローカル デバイスで設定されていません。
テンプレート アカウントをremote
設定するには、階層レベルでステートメントを[edit system login]
user remote
含め、テンプレートに割り当てられたユーザーのログイン クラスをremote
指定します。
[edit system login] user remote { full-name "remote users"; uid uid-value; class class-name; }
テンプレート アカウントを共有するユーザーに対して異なるアクセス権限を remote
設定するには、認証サーバー構成ファイルでベンダー固有の属性を使用して、ユーザーの特定のコマンドと構成階層を許可または拒否できます。
例:テンプレート アカウントの作成
この例では、テンプレート アカウントを作成する方法を示しています。
要件
この機能を設定する前に、デバイス初期化以外の特別な設定は必要ありません。
概要
LDAPS、RADIUS、または TACACS+ 認証を使用しているときに、一連のユーザーによって共有されるテンプレート アカウントを作成できます。認証されたユーザーがテンプレート アカウントに割り当てられると、CLI ユーザー名はログイン名になりますが、ユーザーはテンプレート アカウントから特権、ファイル所有権、有効なユーザー ID を継承します。
デフォルトでは、 Junos OS 次の場合にリモートで認証されたユーザーをテンプレート アカウントに remote
割り当てます。
-
認証されたユーザーは、ローカル デバイスで構成されたユーザー アカウントを持っていません。
-
リモート認証サーバーは、ユーザーをローカル ユーザー テンプレートに割り当てないか、サーバーが割り当てるテンプレートがローカル デバイスで設定されていません。
この例では、テンプレート アカウントを remote
作成し、ユーザー名を次 remote
のように operator
ユーザーのログイン クラスに設定します。このデバイスは、LDAPS、RADIUS、または TACACS+ によって認証されたが、ローカル ユーザー アカウントを持っていない、または別のローカル テンプレート アカウントに属しているユーザーにテンプレートを割り当てます remote
。
次に、ローカル テンプレート アカウントを作成し、ユーザー名を管理者として、ログイン クラスをスーパーユーザーとして設定します。リモート認証されたユーザーを別のログイン クラスに割り当てる必要がある場合は、ローカル テンプレート アカウントを使用します。したがって、各テンプレートは、そのユーザー テンプレートに割り当てられたユーザーに適したアクセス許可の異なるセットを付与できます。
設定
リモート テンプレート アカウントの作成
手順
テンプレート アカウントを作成するには、以下の手順に remote
したがってください。
-
ユーザー名とユーザーのログイン クラスを
remote
設定します。[edit system login] user@host# set user remote class operator
結果
設定モードで、コマンドを入力して設定を show system login
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show system login user remote { class operator; }
デバイスを設定した後、設定モードに入 commit
ります。
ローカル テンプレート アカウントの作成
手順
ローカル テンプレート アカウントを作成するには、
-
ユーザー テンプレートのユーザー名とログイン クラスを設定します。
[edit system login] user@host# set user admin class superuser
結果
設定モードで、コマンドを入力して設定を show system login
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show system login user admin { class super-user; }
デバイスを設定した後、設定モードに入 commit
ります。
LDAPS、RADIUS、または TACACS+ 認証を完全に設定するには、少なくとも 1 つの LDAPS、RADIUS、または TACACS+ サーバーを設定し、システム認証順序を指定する必要があります。詳細については、次のタスクを参照してください。
-
RADIUS サーバーを設定します。を参照してください 例:システム認証用の RADIUS サーバーの設定。
-
TACACS+ サーバーを設定します。を参照してください 例:システム認証用のTACACS+サーバーの設定。
-
LDAP サーバーを構成します。を参照してください TLS による LDAP 認証の設定。
-
システム認証順序を設定します。を参照してください 例:認証順序の設定。
リモート認証サーバーとは
おそらく、ネットワークでリモート認証サーバー(またはサーバー)を使用しているでしょう。これらのサーバーを使用すると、ネットワーク内のすべてのデバイスに対して一貫したユーザー アカウントのセットを一元的に作成できるため、ベスト プラクティスです。リモート認証サーバーを使用して、ネットワークに認証、許可、説明責任(AAA)ソリューションを実装すると、ユーザー アカウントの管理がはるかに簡単になります。
ほとんどの企業は、次の 3 つの基本的なリモート認証方法のうち 1 つ以上を使用しています。LDAPS、RADIUS、TACACS+です。Junos OS は 3 種類すべての方法をサポートしており、任意のタイプのリモート認証サーバーを照会するように Junos OS を設定できます。LDAPS、RADIUS、または TACACS+ サーバーの背後にある考え方はシンプルです。各サーバーは、ルーター、スイッチ、セキュリティ デバイス、サーバーがこれらのシステムへのアクセスを試みる際にユーザーの認証に使用できる中央認証サーバーとして機能します。中央のユーザー ディレクトリがクライアント/サーバー モデルの認証監査とアクセス コントロールに提供する利点を考えてみましょう。LDAPS、RADIUS、TACACS+ 認証方法は、ネットワーク インフラストラクチャに匹敵するメリットを提供します。
中央サーバーを使用すると、各デバイスでローカル ユーザーを作成する代わりの方法よりも複数のメリットがあり、時間がかかり、エラーが発生しやすい作業になります。また、一元的な認証システムにより、SecureIDなどの1回限りのパスワードシステムの使用も簡素化され、パスワードスニッフィングやパスワードリプレイ攻撃に対する保護を提供します。このような攻撃では、誰かがキャプチャしたパスワードを使用してシステム管理者を装うことができます。
-
RADIUS —優先度が相互運用性とパフォーマンスである場合は RADIUS を使用する必要があります。
-
相互運用性:主に TACACS+の独自の性質により、RADIUS は TACACS+よりも相互運用可能です。TACACS+ は、より多くのプロトコルをサポートしますが、RADIUS は一般にサポートされています。
-
パフォーマンス:RADIUS は、TACACS+よりもルーターとスイッチの方がはるかに軽いです。このため、ネットワーク エンジニアは通常、TACACS+よりも RADIUS を好みます。
-
-
TACACS+—優先度がセキュリティと柔軟性である場合は TACACS+ を使用する必要があります。
-
セキュリティ:TACACS+ は RADIUS よりもセキュアです。セッション全体が暗号化されるだけでなく、許可と認証は個別に行われ、誰もがネットワークに強制的に侵入するのを防ぎます。
-
柔軟性:TCP(Transmission Control Protocol)は、UDP よりも柔軟なトランスポート プロトコルです。より高度なネットワークでは、TCPでより多くのことを行うことができます。さらに、TACACS+ は NetBIOS などの多くのエンタープライズ プロトコルをサポートしています。
-
LDAPS — セキュリティーと拡張性を優先する場合は、LDAPS を使用する必要があります。
-
セキュリティ —セキュリティーを強化するために、LDAPS は秘密鍵を使用してデータを暗号化します。この秘密鍵は、RADIUSや TACACS+が使用する共有鍵とは異なり、情報への不正アクセスを防止し、効果的にデータを保護します。
-
拡張性:LDAPSは、信頼性を損なうことなく、より高い拡張性を提供します。LDAPS がサポートするユーザーの数に制限はありません。ユーザーは独自の証明書を管理し、証明書認証にはクライアントとサーバー間のデータ交換のみが含まれます。
-
-