RADIUS認証
Junos OS は、ネットワークデバイス上のユーザーの一元的な認証のためのRADIUSをサポートしています。デバイスで RADIUS 認証を使用するには、ネットワーク管理者が、ネットワーク上の 1 台以上の RADIUS サーバーに関する情報を設定する必要があります。また、デバイス上で RADIUS アカウンティングを設定して、LAN にログインまたはログアウトするユーザーに関する統計データを収集し、そのデータを RADIUS アカウンティング サーバーに送信することもできます。
RADIUSサーバー認証を設定する
RADIUS 認証は、ネットワーク デバイスへのアクセスを試みるユーザーを認証する方法です。次のセクションでは、RADIUS を使用する理由とその構成方法について説明します。
RADIUS を使用する理由
ネットワーク管理者は、RADIUS や TACACS+ など、ネットワーク デバイス上のユーザーの一元的認証に異なるプロトコルを使用できます。RADIUS はマルチベンダー IETF 標準であり、その機能は TACACS+ や他の独自システムよりも広く受け入れられているため、お勧めします。また、セキュリティ強化のためにワンタイムパスワードシステムの利用を推奨しており、これらのシステムのベンダーすべてがRADIUSをサポートしています。
相互運用性とパフォーマンスが優先事項である場合は、RADIUS を使用してください。
-
相互運用性 - RADIUSはTACACS+よりも相互運用性に優れていますが、これは主にTACACS+が独自仕様であるためです。TACACS+ はより多くのプロトコルをサポートしますが、RADIUS は普遍的にサポートされています。
-
パフォーマンス - RADIUS は、ルーターやスイッチの負荷を大幅に軽減します。このため、ネットワークエンジニアは一般的にTACACS+よりもRADIUSを好みます。
RADIUSサーバーの詳細を設定する
デバイス上でRADIUS認証を使用するには、各RADIUSサーバーの[edit system]階層レベルに1つのradius-serverステートメントを含めて、ネットワーク上の1つ以上のRADIUSサーバーの情報を構成します。デバイスは、設定された順番で RADIUS サーバーに対してクエリーを実行します。プライマリサーバー(設定された最初のサーバー)が使用できない場合、デバイスは応答を受信するまで、リスト内の各サーバーに接続しようとします。
ネットワークデバイスは、RADIUS認証されたユーザーをローカルで定義されたユーザーアカウントまたはユーザーテンプレートアカウントにマッピングでき、これにより認証が決定されます。デフォルトでは、 Junos OS は次の場合に、RADIUS認証されたユーザーをユーザーテンプレートアカウント remoteに割り当てます(設定されている場合)。
-
認証されたユーザーは、ローカルデバイスにユーザーアカウントを設定していません。
-
RADIUSサーバーは、ローカルユーザーテンプレートにユーザーを割り当てません。また、サーバーが割り当てるテンプレートはローカルデバイスでは設定されていません。
RADIUSサーバーは、認証済みユーザーを別のユーザーテンプレートに割り当て、そのユーザーに異なる管理権限を付与できます。ユーザーはCLIに同じログイン名を保持しますが、割り当てられたテンプレートからログインクラス、アクセス権限、有効なユーザーIDを継承します。RADIUS認証されたユーザーがローカルで定義されたユーザーアカウントまたはユーザーテンプレートにマッピングされておらず、 remote テンプレートが設定されていない場合、認証失敗します。
remoteのユーザー名はJunos OSの特殊なケースで、常に小文字にする必要があります。これは、リモートサーバーで認証されているが、デバイスにローカルで設定されたユーザーアカウントを持っていないユーザーのテンプレートとして機能します。Junos OSは、ローカルで定義されたアカウントを持たない認証済みユーザーに、remoteテンプレートの権限を適用します。remoteテンプレートにマッピングされたすべてのユーザーは、同じログインクラスにいます。
リモート認証は複数のデバイスで構成するため、通常は構成グループ内で構成します。ここで示す手順は、 globalと呼ばれる設定グループにあります。設定グループの使用はオプションです。
RADIUSサーバーによる認証を設定するには:
システム認証用の RADIUS over TLS(RADSEC)の設定
RADIUS over TLS(RADSEC)は、システム認証とアカウンティングのために、JunosデバイスとRADIUSサーバー間のセキュアで暗号化された通信を提供します。システムは、OpenSSL APIを使用してSSL/TLSセッションを確立し、証明書の検証を実行します。
system階層の下のシステムレベル認証(管理アクセス)に適用されます。ネットワークアクセス制御のためのRADSEC設定は、
access階層下にRADSECを設定します。
RADSECは、(UDPポート1812/1813ではなく)TCPポート2083でTLS暗号化を使用して管理認証トラフィックを保護します。RADSEC は、次の 2 つの認証モードをサポートしています。
- 一方向TLS: クライアントは、信頼できるCA証明書を使用してサーバーの証明書を検証します。
- 相互TLS(mTLS): クライアントとサーバーの両方が証明書を使用して互いを認証します。
始める前に:
以下を確認します。
- CA証明書はサーバー検証に使用できます
- クライアント証明書が利用可能です(相互認証にのみ必要)
CA証明書の設定:
ファイルをコピーして、名前を /var/tmp/certs/<trusted-ca-group>/の下の件名<hash>.0に変更できます。または、 /var/tmp/certs/<trusted-ca-group> の下にサブジェクト<hash>.0を含むシンボリックリンクを作成し、これを実際の証明書ファイルにリンクすることもできます。
- 件名のハッシュを生成します。
openssl x509 -in <CA-file-name> -noout -subject_hash
- シンボリック リンクの作成:
ln -s <CA-file-name> <hash>.0
同じサブジェクト名のハッシュ値を持つ CA ファイルが複数ある場合、それらの拡張子は異なる必要があります。例えば、「e5d93f80.1」などです。それに応じて、内線番号がどのように並べられたかについて検索が実行されます。
例:
cd /var/tmp/certs/grp1/ openssl x509 -in root-ca.crt -noout -subject_hash ln -s root-ca.crt e5d93f80.0
クライアント証明書の設定(相互認証のみ):
相互認証の場合は、クライアント証明書と秘密キーを /var/tmp/certs/<certificate-id>/に配置します。
フォルダーには次のものが含まれている必要があります。
client.crt- クライアント証明書ファイルclient.key- クライアント秘密鍵ファイル
例:
mkdir -p /var/tmp/certs/ca1/ cp client.crt /var/tmp/certs/ca1/ cp client.key /var/tmp/certs/ca1/
システム認証にRADSECを設定するには:
次の例は、相互認証による完全なRADSEC設定を示しています。
[edit]
user@host# show system
login {
user remote {
class operator;
}
}
authentication-order [ radius password ];
radius-server {
1.1.1.1 {
port 2083;
tls {
trusted-ca-group grp1;
mutual-authentication {
certificate-id ca1;
}
}
secret "$9$ABC123"; ## SECRET-DATA
}
}
accounting {
destination {
radius {
server {
1.1.1.1 {
accounting-port 2083;
tls {
trusted-ca-group grp1;
mutual-authentication {
certificate-id ca1;
}
}
secret "$9$ABC123"; ## SECRET-DATA
}
}
}
}
}
検証:
ネットワークデバイスにログインし、認証に成功していることを確認します。RADSECが動作していることを確認するために、ローカルパスワードが設定されていないアカウントでログインを試みます。
設定パラメータ:
trusted-ca-group—/var/tmp/certs/の下にCA証明書を含むフォルダーに対応する信頼できるCAグループ名。OpenSSLは、これらのCA証明書を使用してRADIUSサーバーの証明書を検証します。certificate-id—/var/tmp/certs/の下のクライアント証明書と秘密鍵を含むフォルダーに対応する証明書識別子。相互認証に必要です。
管理インスタンスを使用するための RADIUS の設定
デフォルトでは、 Junos OS は、デフォルトのルーティング インスタンスを介して RADIUS の認証、許可、アカウンティング パケットをルーティングします。また、デフォルト以外のVRFインスタンスの管理インターフェイスを介してRADIUSパケットをルーティングすることもできます。
mgmt_junos管理インスタンスを介してRADIUSパケットをルーティングするには:
-
mgmt_junos管理インスタンスを有効にします。[edit system] user@host# set management-instance
-
設定されている場合、RADIUS認証サーバーとRADIUSアカウンティングサーバーに
routing-instance mgmt_junosステートメントを設定します。[edit system] user@host# set radius-server server-address routing-instance mgmt_junos user@host# set accounting destination radius server server-address routing-instance mgmt_junos
例:システム認証用の RADIUS サーバーの設定
この例では、RADIUSサーバーを介したシステム認証を設定します。
要件
始める前に:
-
デバイスの初期設定を行います。お使いのデバイスの『スタートアップガイド』を参照してください。
-
ネットワーク上に少なくとも1つのRADIUSサーバーを設定します。
概要
この例では、IP アドレスが 172.16.98.1 の新しい RADIUS サーバーを追加します。RADIUSサーバーの共有秘密パスワードをRadiussecret1として指定します。デバイスは、この秘密を暗号化された値として設定データベースに保存します。最後に、デバイスが RADIUS サーバーの要求で使用する送信元アドレスを指定します。ほとんどの場合、デバイスのループバックアドレス(この例では10.0.0.1)を使用することができます。
ネットワークデバイスでは、ローカルパスワード認証、RADIUS、TACACS+ など、複数のユーザー認証方法のサポートを設定できます。複数の認証方法を設定する場合、デバイスが異なる方法を試す順序に優先順位を付けることができます。この例では、まず RADIUS 認証サービスを使用し、それが失敗した場合はローカルパスワード認証を試みるようにデバイスを設定します。
RADIUSで認証されたユーザーは、ネットワークデバイス上のローカルユーザーアカウントまたはローカルユーザーテンプレートアカウントにマッピングする必要があり、これにより認可が決定されます。デフォルトでは、RADIUS認証されたユーザーがローカルユーザーアカウントまたは特定のユーザーテンプレートにマッピングされていない場合、設定されていれば、ユーザーは remote ユーザーテンプレートに割り当てられます。この例では、 remote ユーザーテンプレートを設定します。
設定
手順
CLIクイックコンフィグレーション
この例をすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピー アンド ペーストして、設定モードから commit を入力します。
set system radius-server 172.16.98.1 set system radius-server 172.16.98.1 secret Radiussecret1 set system radius-server 172.16.98.1 source-address 10.0.0.1 set system authentication-order [radius password] set system login user remote class operator
ステップバイステップの手順
システム認証用に RADIUS サーバーを設定するには:
-
新しいRADIUSサーバーを追加し、そのIPアドレスを設定します。
[edit system] user@host# set radius-server 172.16.98.1
-
RADIUSサーバーの共有シークレット(パスワード)を指定します。
[edit system] user@host# set radius-server 172.16.98.1 secret Radiussecret1
-
送信元アドレスとしてデバイスのループバックアドレスを指定します。
[edit system] user@host# set radius-server 172.16.98.1 source-address 10.0.0.1
-
デバイスの認証順序を指定し、
radiusオプションを含めます。[edit system] user@host# set authentication-order [radius password]
remoteユーザーテンプレートとそのログインクラスを設定します。[edit system] user@host# set login user remote class operator
結果
設定モードで、 show system コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
以下の出力には、この例に関連する設定階層の部分のみが含まれています。
[edit]
user@host# show system
login {
user remote {
class operator;
}
}
authentication-order [ radius password ];
radius-server {
172.16.98.1 {
secret "$9$ABC123"; ## SECRET-DATA
source-address 10.0.0.1;
}
}
デバイスの設定後、構成モードで commit を入力します。
RADIUS認証の設定(QFXシリーズまたはOCXシリーズ)
RADIUS 認証は、ルーターまたはスイッチへのアクセスを試みるユーザーを認証する方法です。RADIUS 認証を設定するタスクは次のとおりです。
source-addressステートメントは[edit system-radius-server name]QFabricシステムの階層レベルではサポートされていません。
RADIUSサーバーの詳細を設定する
ルーターまたはスイッチでRADIUS認証を使用するには、各RADIUSサーバーの[edit system]階層レベルに1つのradius-serverステートメントを含めて、ネットワーク上の1つ以上のRADIUSサーバーに関する情報を設定します。
[edit system] radius-server server-address { accounting-port port-number; accounting-retry number; accounting-timeout seconds; dynamic-request-port number; max-outstanding-requests value; port number; preauthentication-port number; preauthentication-secret secret; retry number; routing-instance routing-instance-name; secret password; source-addresssource-address; timeout seconds; }
server-address は、RADIUSサーバーのアドレスです。
RADIUSサーバーに接続するポートを指定できます。デフォルトでは、ポート番号1812が使用されます(RFC 2865の指定どおり)。また、アカウンティングポートを指定して、アカウンティングパケットを送信することもできます。デフォルトは1813です(RFC 2866で指定)。
secret passwordステートメントでパスワードを指定する必要があります。パスワードにスペースが含まれている場合は、引用符で囲んでください。ローカルルーターまたはスイッチが使用するシークレットは、サーバーが使用するシークレットと一致する必要があります。
オプションで、ローカルルーターまたはスイッチがRADIUSサーバーからの応答を受信するまで待機する時間( timeout ステートメント内)と、ルーターまたはスイッチがRADIUS認証サーバーの連絡を試みる回数( retry ステートメント内)を指定できます。デフォルトでは、ルーターまたはスイッチは3秒間待機します。これは、1秒から90秒の値になるように設定できます。デフォルトでは、ルーターまたはスイッチがサーバーへの接続を3回再試行します。1〜10倍の値に設定できます。
source-addressステートメントを使用して、個々のサーバーまたは複数のRADIUSサーバーの論理アドレスを指定できます。
複数のRADIUSサーバーを設定するには、複数の radius-server ステートメントを含めます。
認証用に1つのアカウントを共有するユーザーセットを設定するには、テンプレートユーザーを作成します。これを行うには、LDAPS、RADIUS、TACACS+、およびローカルパスワードの認証順序で説明されているように、[edit system login]階層レベルにuserステートメントを含めます。
また、 [edit access] および [edit access profile] 階層レベルでRADIUS認証を設定することもできます。Junos OSは、以下の検索順序を使用して、認証に使用するサーバーのセットを決定します。
[edit access profile profile-name radius-server server-address][edit access radius-server server-address][edit system radius-server server-address]
パスワード変更をサポートするためのMS-CHAPv2の設定
パスワード変更をサポートするためにMS-CHAPv2を設定する前に、以下を確認してください。
RADIUSサーバーの認証パラメーターを設定します。
最初のパスワード試行に RADIUS サーバーを使用するための 認証順序 を設定します。
Microsoft実装のChallenge Handshake Authentication Protocolバージョン2(MS-CHAPv2)をルーターまたはスイッチで設定して、パスワードの変更をサポートできます。この機能は、パスワードが期限切れになったとき、リセットされたとき、または次のログイン時に変更するように設定されたときに、ルーターまたはスイッチにアクセスするユーザーにパスワードを変更するためのオプションを提供します。
MS-CHAP-v2を設定するには、 [edit system radius-options] 階層レベルで以下のステートメントを含めます。
[edit system radius-options] password-protocol mschap-v2;
以下の例では、MS-CHAPv2パスワードプロトコル、パスワード認証の順序、ユーザーアカウントを設定するためのステートメントを示しています。
[edit]
system {
authentication-order [ radius password ];
radius-server {
192.168.69.149 secret "$ABC123"; ## SECRET-DATA
}
radius-options {
password-protocol mschap-v2;
}
login {
user bob {
class operator;
}
}
}
外部RADIUSサーバーにアクセスするためのJunos OSの送信元アドレスを指定する
認証のために外部のRADIUSサーバーに接続するためにネットワークにアクセスするときに、Junos OSが使用する送信元アドレスを指定することができます。また、アカウント情報を送信するために RADIUS サーバーに接続するときに Junos OS が使用する送信元アドレスを指定することもできます。
RADIUSサーバーの送信元アドレスを指定するには、[edit system radius-server server-address]階層レベルでsource-addressステートメントを含めます。
[edit system radius-server server-address] source-address source-address;
source-address は、ルーターインターフェイスまたはスイッチインターフェイスのいずれかで構成された有効なIPアドレスです。
ジュニパーネットワークスのベンダー固有のRADIUS属性
Junos OSは、認証サーバー上でのジュニパーネットワークスのRADIUSベンダー固有属性(VSA)の設定をサポートしています。これらのVSAは、RADIUSベンダー固有属性にカプセル化され、ベンダーIDはジュニパーネットワークスのID番号2636に設定されています。
表1は 、設定可能なジュニパーネットワークスVSAの一覧です。
属性の一部は、POSIX 1003.2で定義されている拡張正規表現を受け入れます。正規表現にスペース、演算子、またはワイルドカード文字が含まれる場合は引用符で囲みます。詳細については、次を参照してください。
| 名前 |
説明 |
タイプ |
長さ |
文字列 |
|---|---|---|---|---|
| ジュニパーローカルユーザー名 |
デバイスにユーザーがログインする際にこのユーザーに割り当てられるユーザーテンプレート名を示します。この属性は、Access-Acceptパケットでのみ使用されます。 |
1 |
≥3 |
印刷可能なASCII文字を含む1つまたは複数のオクテット。 |
| ジュニパー許可コマンド |
ユーザーのログインクラスのパーミッションビットで承認されたコマンドに加えて、ユーザーがコマンドを実行できるようにする拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
2 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
| ジュニパー拒否コマンド |
ユーザーのログインクラスのパーミッションビットで承認されたコマンドを実行するユーザーパーミッションを拒否する拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
3 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
| ジュニパー許可設定 |
ユーザーのログインクラスのパーミッションビットで承認されたステートメントに加えて、ユーザーが設定ステートメントを表示および変更できるようにする拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
4 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
| ジュニパー拒否設定 |
ユーザーのログインクラスのパーミッションビットで承認された設定ステートメントを表示または変更するユーザーパーミッションを拒否する拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
5 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
| ジュニパーインタラクティブコマンド |
ユーザーが入力した対話型コマンドを示します。この属性は、Accounting-Requestパケットでのみ使用されます。 |
8 |
≥3 |
印刷可能なASCII文字を含む1つまたは複数のオクテット。 |
| ジュニパーの設定変更 |
設定(データベース)の変更につながる対話型コマンドを示しています。この属性は、Accounting-Requestパケットでのみ使用されます。 |
9 |
≥3 |
印刷可能なASCII文字を含む1つまたは複数のオクテット。 |
| ジュニパーユーザー権限 |
ユーザーパーミッションを指定するためにサーバーが使用する情報を含みます。この属性は、Access-Acceptパケットでのみ使用されます。
注:
RADIUS サーバーが |
10 |
≥3 |
印刷可能なASCII文字を含む1つまたは複数のオクテット。 文字列は、スペースで区切られたパーミッションフラグのリストです。各フラグの正確な名前は、全体で指定する必要があります。 |
| ジュニパー認証タイプ |
ユーザーの認証に使用される認証方法(ローカルデータベースまたはRADIUSサーバー)を示します。ローカルデータベースを使用してユーザーが認証される場合、属性の値には「local」が表示されます。ユーザーがRADIUSまたはLDAPサーバーを使用して認証される場合、属性の値には「remote」が表示されます。 |
11 |
≥5 |
印刷可能なASCII文字を含む1つまたは複数のオクテット。 |
| ジュニパーセッションポート |
確立されたセッションの送信元ポート番号を示します。 |
12 |
整数のサイズ |
整数 |
| ジュニパー許可設定正規表現 |
ユーザーのログインクラスのパーミッションビットで承認されたステートメントに加えて、ユーザーが設定ステートメントを表示および変更できるようにする拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
13 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
| ジュニパー拒否設定正規表現 |
ユーザーのログインクラスのパーミッションビットで承認された設定ステートメントを表示または変更するユーザーパーミッションを拒否する拡張正規表現を含みます。この属性は、Access-Acceptパケットでのみ使用されます。 |
14 |
≥3 |
拡張正規表現の形式で印刷可能なASCII文字を含む、1つまたは複数のオクテット。 |
VSAの詳細については、RFC 2138、 リモート認証ダイヤルインユーザーサービス(RADIUS)を参照してください。
RADIUSまたはTACACS+サーバーで正規表現を使用してコマンドを許可または拒否する
Junos OS では、RADIUSおよびTACACS+認証ユーザーを、ローカルで定義されたユーザーアカウントまたはユーザーテンプレートアカウントにマッピングできます。これは、ユーザーのアクセス権限を定義します。また、オプションで、ジュニパーネットワークスのRADIUSおよびTACACS+ベンダー固有属性(VSA)をそれぞれの認証サーバーで定義することで、ユーザーの認証権限を設定することもできます。
ユーザーのログインクラスは、ユーザーが許可されている操作モードおよび設定モードコマンドと、ユーザーが設定のどのエリアを表示および変更できるかを決定する一連のパーミッションを定義します。また、ログインクラスは、パーミッションフラグが許可する機能に加えて、ユーザーに特定のコマンドを実行したり、設定の特定の領域を表示および変更する機能を許可または拒否する正規表現を定義することもできます。ログインクラスには、以下のステートメントを含めることで、ユーザー許可を定義できます。
-
permissions -
allow-commands -
allow-commands-regexps -
allow-configuration -
allow-configuration-regexps -
deny-commands -
deny-commands-regexps -
deny-configuration -
deny-configuration-regexps
同様に、RADIUSまたはTACACS+サーバー構成では、ジュニパーネットワークスVSAを使用して、ユーザーのアクセス権限を決定する特定のパーミッションまたは正規表現を定義できます。サポートされているRADIUSおよびTACACS+ VSAのリストについては、以下を参照してください。
- ジュニパーネットワークスのベンダー固有のRADIUS属性
- ../concept/../topic-map/user-access-tacacs-認証.html#id-juniper-networks-vendor-specific-tacacs-attributes
RADIUSまたはTACACS+サーバーのユーザーパーミッションを、スペース区切りの値のリストとして定義できます。
-
RADIUSサーバーは、以下の属性と構文を使用します。
Juniper-User-Permissions += "flag1 flag2 flag3",
次に例を示します。
Juniper-User-Permissions += "interface interface-control configure",
-
TACACS+ サーバーは、以下の属性と構文を使用します。
user-permissions = "flag1 flag2 flag3"
次に例を示します。
user-permissions = "interface interface-control configure"
RADIUSまたはTACACS+サーバーは、単一の拡張正規表現(POSIX 1003.2で定義)を使用するジュニパーネットワークスVSAを定義して、ユーザーに特定のコマンドを実行したり、設定エリアを表示および変更する機能を許可または拒否することもできます。複数のコマンドまたは設定階層を括弧で囲み、パイプ記号を使用して区切ります。正規表現にスペース、演算子、またはワイルドカード文字が含まれる場合は引用符で囲みます。ローカルとリモートの両方で認証パラメータを設定する場合、デバイスは、TACACS+またはRADIUS認証時に受け取った正規表現を、ローカルデバイスで定義された正規表現とマージします。
-
RADIUSサーバーは、以下の属性と構文を使用します。
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Deny-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Allow-Configuration += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration += "(config1)|(config2)|(confign)",
次に例を示します。
Juniper-Allow-Commands += "(test)|(ping)|(quit)", Juniper-Deny-Commands += "(request)|(restart)", Juniper-Allow-Configuration += "(groups re0)|(system radius-server)", Juniper-Deny-Configuration += "(system radius-options)|(system accounting)",
-
TACACS+ サーバーは、以下の属性と構文を使用します。
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
次に例を示します。
allow-commands = "(test)|(ping)|(quit)" deny-commands = "(request)|(restart)" allow-configuration = "(groups re0)|(system tacplus-server)" deny-configuration = "(system tacplus-options)|(system accounting)"
RADIUSおよびTACACS+サーバーは、ローカルデバイスで設定できる同じ *-regexps ステートメントに対応する属性の設定もサポートしています。 *-regexps TACACS+ 属性と *-Regexps RADIUS 属性は、以前の属性と同じ正規表現構文を使用しますが、変数で正規表現を設定できます。
-
RADIUSサーバーは、以下の属性と構文を使用します。
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
-
TACACS+ サーバーは、以下の属性と構文を使用します。
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
例えば、TACACS+サーバー構成では、以下の属性が定義されている場合があります。
allow-commands-regexps = "(show cli .*)|(ping 10.1.1..*)" deny-commands-regexps = "(configure .*)|(edit)|(commit)|(rollback .*)"
RADIUS または TACACS+ サーバーでは、個々の式を別の行で指定する簡略化された構文を使用して属性を定義することもできます。
RADIUSサーバーでは、以下の構文を使用して個々の正規表現を指定します。
Juniper-User-Permissions += "permission-flag1", Juniper-User-Permissions += "permission-flag2", Juniper-User-Permissions += "permission-flagn", Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn", Juniper-Deny-Commands += "cmd1", Juniper-Deny-Commands += "cmd2", Juniper-Deny-Commands += "cmdn", Juniper-Allow-Configuration += "config1", Juniper-Allow-Configuration += "config2", Juniper-Allow-Configuration += "confign", Juniper-Deny-Configuration += "config1", Juniper-Deny-Configuration += "config2", Juniper-Deny-Configuration += "confign",
TACACS+ サーバーの場合、以下の構文を使用して個々の正規表現を指定します。
user-permissions1 = "permission-flag1" user-permissions2 = "permission-flag2" user-permissionsn = "permission-flagn" allow-commands1 = "cmd1" allow-commands2 = "cmd2" allow-commandsn = "cmdn" deny-commands1 = "cmd1" deny-commands2 = "cmd2" deny-commandsn = "cmdn" allow-configuration1 = "config1" allow-configuration2 = "config2" allow-configurationn = "confign" deny-configuration1 = "config1" deny-configuration2 = "config2" deny-configurationn = "confign"
-
TACACS+ サーバー構文では、数値 1 から n は一意である必要がありますが、連続している必要はありません。例えば、以下の構文が有効です。
allow-commands1="cmd1" allow-commands3="cmd3" allow-commands2="cmd2" deny-commands3="cmd3" deny-commands2="cmd2" deny-commands1="cmd1"
-
RADIUSまたはTACACS+サーバーは、個々の正規表現ラインの数に制限を課します。
-
show cli authorizationコマンドを発行すると、コマンド出力は、個別の行で個別表現を指定した場合でも、1行で正規表現を表示します。
ユーザーは、 show cli authorization 動作モードコマンドを発行することで、クラス、パーミッション、コマンドおよび構成認証を確認できます。
user@host> show cli authorization
認証パラメーターをネットワークデバイス上でローカルに設定し、RADIUSまたはTACACS+サーバー上でリモートで設定すると、デバイスは、TACACS+またはRADIUS認証時に受信した正規表現とローカルに設定された正規表現をマージします。最終表現に構文エラーが含まれている場合、全体的な結果は無効な正規表現になります。
ジュニパースイッチングフィルター VSAのガイドライン、一致条件およびアクション
デバイスは、ジュニパーネットワークスに固有のRADIUSサーバー属性の設定をサポートします。これらの属性は、VSA(ベンダー固有属性)として知られており、RFC 2138, Remote Authentication Dial In User Service (RADIUS) に記載されています。ベンダー固有の属性は、パブリック標準属性で提供されている機能以上にRADIUSサーバーの機能を拡張し、加入者管理とサービスサポートに必要な多くの便利な機能を実装できるようにします。
ジュニパーネットワークスVSAでは、ベンダーIDが2636に設定されています。
属性は、認証の成功または失敗の結果として、RADIUSサーバーからデバイスに送信されるクリアテキストのフィールドです。デバイスが RADIUS サーバーによって認証されるまで、認証は、ポートでサプリカントをブロックすることで不正なユーザーアクセスを防ぎます。RADIUSサーバーに認証付きのフィルタリング属性を実装することで、サプリカントのLANアクセスを一元的に制御する場所を提供します。
ジュニパースイッチングフィルター属性は、802.1X認証と連携して機能し、ネットワークへのサプリカントのアクセスを一元的に制御します。この属性を使用して、RADIUSサーバーにフィルターを設定できます。これらのフィルターはスイッチに送信され、802.1X認証を使用して認証されたユーザーに適用されます。
ジュニパースイッチングフィルターには、1つ以上のフィルター条件を含めることができます。フィルター項目は、結果として発生するアクションによって1つ以上の一致条件を使用して設定されます。一致条件とは、設定されたアクションが適用されるためにパケットが満たす必要がある基準です。設定されたアクションは、パケットが一致条件で指定された基準を満たす場合にスイッチが実行するアクションです。スイッチが実行できるアクションは、パケットの受け入れまたは拒否です。
RADIUSサーバーにポートファイアウォールフィルターを追加することで、複数のポートやデバイスにフィルターを追加する必要はありません。これを行う方法の1つは、 ジュニパー-Firewall-filter-name VSAを使用して、以前に設定されたポートファイアウォールフィルターをRADIUSサーバーに直接適用することです。ポートフィルター属性と同様に、このフィルターは認証プロセス中に適用され、そのアクションはデバイスポートで適用されます。
VSAガイドライン
ベンダー固有のRADIUS属性は、1属性あたり最大247文字です。さらに長さが必要な場合、ジュニパーは同じ属性の複数のインスタンスをサポートしており、最大4000文字です。247文字を超えるフィルターをサポートする場合は、複数のジュニパースイッチングフィルター属性を使用します。以下の例では、2つの属性を示しており、それぞれに247文字制限内の新しいフィルター条件が含まれています。
Juniper-Switching-Filter = "Match ip-protocol 17 destination-port 67 Destination-ip 192.168.1.0/24 Action deny, match destination-ip 10.1.7.253 destination-port 53 action allow" Juniper-Switching-Filter += "Match ip-protocol 1 destination-port 4000 Destination-ip 192.168.21.0/24 Action deny"
4000文字の制限は、RADIUSサーバーとジュニパーデバイスの両方でサポートされているMTU、および使用される他のRADIUS属性の数によって異なります。
VSAの一致条件とアクションには、次のガイドラインが適用されます。
-
matchステートメントとactionステートメントの両方が必須です。 -
一致条件が指定されていない場合、デフォルトではパケットが一致しているとみなされます。
-
アクションが指定されていない場合、デフォルトアクションはパケットを拒否します。
-
各
matchおよびactionステートメントには任意またはすべてのオプションを含めることができます。 -
AND操作は、別のタイプでカンマで区切られているフィールドで実行されます。同じタイプのフィールドを繰り返すことはできません。
-
forwarding-classオプションを適用するには、スイッチ上でフォワーディングクラスを設定する必要があります。フォワーディングクラスがスイッチ上で設定されていない場合、このオプションは無視されます。
一致条件
表2は、RADIUSサーバー上のmatchコマンドを使用して、VSA属性をファイアウォールフィルターとして設定する場合に指定できる一致条件を示しています。一致条件を定義する文字列は、一致ステートメントと呼ばれます。
| オプション |
説明 |
|---|---|
|
|
パケットの宛先MAC(メディアアクセス制御)アドレス。 |
|
|
802.1Qヘッダーのタグ値は、 |
|
|
最終宛先ノードのアドレス |
|
|
IPv4プロトコル値。数値の代わりに、以下のテキスト同義語のいずれかを指定できます。
|
|
|
TCPまたはUDP(ユーザーデータグラムプロトコル)送信元ポートフィールド。通常、この一致ステートメントを |
|
|
TCP または UDP 宛先ポート フィールド。通常、この一致ステートメントを
|
アクション
フィルタリング基準を指定する1つ以上の用語を定義する場合、パケットがすべての基準に一致する場合に実行するアクションも定義します。 表3は 、用語で指定できるアクションを示しています。
| オプション |
説明 |
|---|---|
| ( |
ICMP(Internet Control Message Protocol)メッセージを送信せずに、パケットを承認するか、気付かれることなくパケットを無効にします。 |
|
|
(オプション)以下の転送クラスのいずれかでパケットを分類します。
|
|
|
(オプション)PLP(パケット損失の優先度)を |
関連項目
RADIUSアカウンティングについて
ネットワークデバイスは、IETF RFC 2866、 RADIUSアカウンティングをサポートします。デバイスにRADIUSアカウンティングを設定し、LANにログインまたはログアウトするユーザーの統計データを収集し、そのデータをRADIUSアカウンティングサーバーに送信することができます。統計データは、一般的なネットワーク監視、使用パターンの分析と追跡、またはセッションの期間やアクセスしたサービスの種類に基づくユーザーへの課金に使用できます。
RADIUSアカウンティングを設定するには、以下を指定します。
-
デバイスから統計データを受信するための1つ以上のRADIUSアカウンティングサーバー
-
収集するアカウンティング データの種類
RADIUSアカウンティングと認証の両方に同じサーバーを使用することも、別々のサーバーを使用することも可能です。RADIUSアカウンティングサーバーのリストを指定できます。デバイスは、設定された順序でサーバーにクエリーを実行します。プライマリサーバー(設定された最初のサーバー)が使用できない場合、デバイスは応答を受信するまで、リスト内の各サーバーに接続しようとします。
デバイスとRADIUSサーバー間のRADIUSアカウンティングプロセスは、次のように機能します。
-
RADIUSアカウンティングサーバーは、特定のポートでUser Datagram Protocol(UDP)パケットをリッスンします。RADIUSアカウンティングのデフォルトポートは1813です。
-
デバイスは、イベントレコードを含む Accounting-Request パケットをアカウンティングサーバーに転送します。このサプリカントに関連するイベントレコードには、その値がこのサプリカントのユーザーサービスの開始を示す Acct-Status-Type 属性が含まれています。サプリカントのセッションが終了すると、アカウンティング要求には、ユーザーサービスの終了を示す Acct-Status-Type 属性値が含まれます。RADIUSアカウンティングサーバーは、セッション情報とセッションの長さを含むstop-accountingレコードとしてこれを記録します。
-
RADIUSアカウンティングサーバーは、これらのイベントをstart-accountingまたはstop-accountingレコードとしてファイルに記録します。FreeRADIUSでは、ファイル名は192.0.2.0のようなサーバーのアドレスです。
-
アカウンティングサーバーは、アカウンティング要求を受信したことを確認する Accounting-Response パケットをデバイスに送信します。
-
デバイスがサーバーからのAccounting-Responseパケットを受信できない場合、デバイスはサーバーが応答を返すまでアカウンティング要求を送信し続けます。
このプロセスで収集された統計情報は、RADIUSサーバーで確認できます。統計情報を確認するには、それらを受信するように設定されたログファイルにアクセスします。
RADIUSシステムアカウンティングの設定
RADIUSアカウンティングを有効にすると、RADIUSクライアントとして機能するジュニパーネットワークスデバイスが、ソフトウェアログイン、設定変更、対話型コマンドなどのユーザーアクティビティについてRADIUSサーバーに通知できるようになります。RADIUSアカウンティングの枠組みは、RFC 2866、 RADIUSアカウンティング」に記載されています。
RADIUSサーバー上のユーザーイベントの監査を設定する
RADIUSアカウンティングを設定するには:
次の例では、RADIUS アカウンティング用に 3 つのサーバー(10.5.5.5、10.6.6.6、10.7.7.7)を構成しています。
system {
accounting {
events [ login change-log interactive-commands ];
destination {
radius {
server {
10.5.5.5 {
accounting-port 3333;
secret $ABC123;
source-address 10.1.1.1;
retry 3;
timeout 3;
}
10.6.6.6 secret $ABC123;
10.7.7.7 secret $ABC123;
}
}
}
}
}
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。