SRXファイアウォールユーザーの認証方法を設定する
パススルー認証とキャプティブポータル認証の設定方法をご確認ください。
例:パススルー認証の設定
この例では、ファイアウォールユーザーを認証するためのパススルー認証を設定する方法を示しています。ファイアウォールユーザーとは、ファイアウォールを越えた接続を開始する際にユーザー名とパスワードを入力しなければならないネットワークユーザーを指します。
パススルー認証により、SRXシリーズ管理者は、FTP、Telnet、HTTP、またはHTTPSを使用して別のゾーンのリソースにアクセスしようとするユーザーを制限できます。アクションがパススルー認証であるセキュリティ ポリシーにトラフィックが一致する場合、ユーザーはログイン情報を提供する必要があります。
HTTPS の場合、セキュリティを確保するために、HTTPS のデフォルトの証明書キー サイズは 2048 ビットです。証明書のサイズを指定しない場合は、既定のサイズが想定されます。
必要条件
開始する前に、ファイアウォール ユーザーを定義します。「ファイアウォールユーザー認証の概要」を参照してください。
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
SRXシリーズファイアウォール
ファイアウォールユーザーのシステム
パケット宛先システム
概要
パススルー認証プロセスは、ファイアウォール ユーザーと呼ばれるクライアントが、別のゾーンのリソースにアクセスするために FTP、Telnet、または HTTP セッションを開始しようとしたときにトリガーされます。SRXシリーズファイアウォールは、FTP、Telnet、HTTP、またはHTTPSサーバーのプロキシとして機能し、ファイアウォールユーザーを認証してから、ファイアウォールの背後にある実際のFTP、Telnet、またはHTTPサーバーへのアクセスをユーザーに許可することができます。
ファイアウォール ユーザーが送信した接続要求から生成されたトラフィックがセキュリティ ポリシー ルールと双方向に一致し、そのルールで then 句のアクションとしてパススルー ファイアウォール認証が指定されている場合、SRXシリーズ ファイアウォールはファイアウォール ユーザーにJunos OSプロキシ サーバーへの認証を要求します。
認証に成功した場合、同じ送信元IPアドレスからの後続のトラフィックは、セキュリティポリシータプルに一致すれば、自動的にSRXシリーズファイアウォールの通過が許可されます。
図 1 は、この例で使用されているトポロジーを示しています。
このトポロジーは外部サーバーの使用を示していますが、構成ではカバーされていません。この例の範囲外です。
構成
プロシージャ
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set interfaces ge-0/0/1 unit 0 family inet address 203.0.113.35/24 set interfaces ge-5/0/0 unit 0 family inet address 192.0.2.1/24 set access profile FWAUTH client FWClient1 firewall-user password password set access firewall-authentication pass-through default-profile FWAUTH set access firewall-authentication pass-through telnet banner success "WELCOME TO JUNIPER TELNET SESSION" set security zones security-zone UT-ZONE host-inbound-traffic system-services all set security zones security-zone UT-ZONE interfaces ge-0/0/1.0 host-inbound-traffic protocols all set security zones security-zone T-ZONE host-inbound-traffic system-services all set security zones security-zone T-ZONE interfaces ge-5/0/0.0 host-inbound-traffic protocols all set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match source-address any set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match destination-address any set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match application junos-telnet set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 then permit firewall-authentication pass-through client-match FWClient1
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
パススルー認証を設定するには:
2つのインターフェイスを設定し、IPアドレスを割り当てます。
手記:この例では、インターフェイスに 2 つのアドレスを割り当てることは任意です。
[edit] user@host# set interfaces ge-0/0/1 unit 0 family inet address 203.0.113.35/24 user@host# set interfaces ge-5/0/0 unit 0 family inet address 192.0.2.1/24
FWClient1 ユーザーの FWAUTH アクセス プロファイルを作成し、ユーザーのパスワードを指定して、Telnet セッションの成功バナーを定義します。
[edit access] user@host# set access profile FWAUTH client FWClient1 firewall-user password pwd user@host# set firewall-authentication pass-through default-profile FWAUTH user@host# set firewall-authentication pass-through telnet banner success "WELCOME TO JUNIPER TELNET SESSION"
セキュリティ ゾーンを設定します。
手記:この例では、セキュリティ ゾーンに 2 つ目のインターフェイスを設定することは任意です。
[edit security zones] user@host# set security-zone UT-ZONE host-inbound-traffic system-services all user@host# set security-zone UT-ZONE interfaces ge-0/0/1.0 host-inbound-traffic protocols all user@host# set security-zone T-ZONE host-inbound-traffic system-services all user@host# set security-zone T-ZONE interfaces ge-5/0/0.0 host-inbound-traffic protocols all
セキュリティポリシーP1をセキュリティゾーンに割り当てます。
[edit security policies] user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match source-address any user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match destination-address any user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match application junos-telnet user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 then permit firewall-authentication pass-through client-match FWClient1
Telnet を使用して、FWClient1 ファイアウォール ユーザーを host2 に対して認証します。
user@FWClient1# run telnet 192.0.2.1/24 Trying 192.0.2.1/24... Connected to 192.0.2.1/24 Escape character is '^]'. Firewall User Authentication Username: FWClient1 Password:$ABC123 WELCOME TO JUNIPER TELNET SESSION Host1 (ttyp0) login: user Password: $ABC123 --- JUNOS 10.1R1.1 built 2009-10-12 13:30:18 UTC %
業績
設定モードから、次のコマンドを入力して設定を確認します。
show interfaces
show access
show security zones
show security policies
出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
簡潔にするために、出力にはこの例に関連する設定のみ含まれています。システム上のその他の設定はすべて省略記号(...)で置き換えられています。
user@host# show interfaces ge-0/0/1 { unit 0 { family inet { address 203.0.113.35; } } } ge-5/0/0 { unit 0 { family inet { address 192.0.2.1/24; } } } ...
user@host# show access profile FWAUTH { authentication-order password; client FWClient1 { firewall-user { password "$ABC123"; ## SECRET-DATA } } } firewall-authentication { pass-through { default-profile FWAUTH; telnet { banner { success "WELCOME TO JUNIPER TELNET SESSION"; } } } }
user@host# show security zones security-zone UT-ZONE { host-inbound-traffic { system-services { all; } } interfaces { ge-0/0/1.0 { host-inbound-traffic { protocols { all; } } } } security-zone T-ZONE { host-inbound-traffic { system-services { all; } } interfaces { ge-5/0/0.0 { host-inbound-traffic { protocols { all; } } } } }
user@host# show security policies ... from-zone UT-ZONE to-zone T-ZONE { policy P1 { match { source-address any; destination-address any; application junos-telnet; } then { permit { firewall-authentication { pass-through { client-match FWClient1; } } } } } }
デバイスの設定が完了したら、設定モードから コミットを入力します。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ファイアウォールユーザー認証の検証と認証テーブル内のユーザーとIPアドレスの監視
目的
ファイアウォール認証のユーザー履歴を表示し、認証に成功したファイアウォールユーザーの数とログインに失敗したファイアウォールユーザーの数を確認します。
アクション
動作モードから、以下の show
コマンドを入力します。
user@host> show security firewall-authentication history History of firewall authentication data: Authentications: 2 Id Source Ip Date Time Duration Status User 1 203.0.113.12 2010-10-12 21:24:02 0:00:24 Failed FWClient1 2 203.0.113.12 2010-10-12 21:24:48 0:00:22 Success FWClient1
user@host> show security firewall-authentication history identifier 1 Username: FWClient1 Source IP: 203.0.113.12 Authentication state: Success Authentication method: Pass-through using Telnet Access start date: 2010-10-12 Access start time: 21:24:02 Duration of user access: 0:00:24 Source zone: UT-ZONE Destination zone: T-ZONE Access profile: FWAUTH Bytes sent by this user: 0 Bytes received by this user: 2660
user@host> show security firewall-authentication users Firewall authentication data: Total users in table: 1 Id Source Ip Src zone Dst zone Profile Age Status User 4 203.0.113.12 UT-ZONE T-ZONE FWAUTH 1 Success FWClient1
user@host> show security firewall-authentication users identifier 3 Username: FWClient1 Source IP: 203.0.113.12 Authentication state: Success Authentication method: Pass-through using Telnet Age: 3 Access time remaining: 9 Source zone: UT-ZONE Destination zone: T-ZONE Access profile: FWAUTH Interface Name: ge-0/0/1.0 Bytes sent by this user: 0 Bytes received by this user: 1521
例:パススルー認証をトリガーするHTTPSトラフィックの設定
この例では、パススルー認証をトリガーするようにHTTPSトラフィックを設定する方法を示しています。HTTPSはHTTPよりも安全であるため、人気が高まり、より広く使用されています。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
SRXシリーズファイアウォール
Linux と Open SSL を実行する 2 台の PC。1台のPCはクライアントとして機能し、もう1台のPCはHTTPSサーバーとして機能します。この 2 台の PC は、キー ファイルの作成とトラフィックの送信に使用されます。
SRX5400、SRX5600、SRX5800 デバイスの場合は 12.1X44-D10 以降Junos OS リリースJunos OS リリース、vSRX仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、SRX1500 サービス ゲートウェイの場合は 15.1X49-D40 以降。
Junos OS リリース 12.1X44-D10およびJunos OS リリース 17.3R1以降、SRX5400、SRX5600、およびSRX5800デバイスにHTTPSベースの認証が導入されています。
Junos OS リリース 15.1X49-D40およびJunos OS リリース 17.3R1以降、vSRX仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、SRX1500サービスゲートウェイでHTTPSベースの認証が導入されています。
開始する前に、以下を実行します。
SRXシリーズファイアウォールは、HTTPSトラフィックをデコードしてパススルー認証をトリガーする必要があります。次に、SSL ターミネーション プロキシは、秘密鍵ファイルと証明書ファイルを作成してインストールします。次の一覧では、秘密キー ファイルと証明キー ファイルを作成してインストールする手順について説明します。
公式の .crt ファイルと .key ファイルをお持ちの場合は、SRXシリーズファイアウォールにファイルを直接アップロードしてインストールできます。 .crt ファイルと .key ファイルがない場合は、手順に従ってファイルを作成してインストールします。ステップ 1 とステップ 2 で指定した手順は、Linux と OpenSSL がインストールされた PC で実行する必要があります。ステップ 3 とステップ 4 で指定された手順は、動作モードで実行する必要があります。
秘密キー・ファイルおよび証明書ファイルを作成してインストールするには、次の手順に従います。
PC で .key ファイルを作成します。
openssl genrsa -out /tmp/server.key 1024
PC で .crt ファイルを作成します。
openssl req -new -x509 -days 365 -key /tmp/server.key -out /tmp/device.crt -subj "/C=CN/ST=BJ/L=BJ/O=JNPR/OU=CNRD/CN=203.0.113.11/emailAddress=device@mycompany.com"
-
.key ファイルと .crt ファイルを SRXシリーズ ファイアウォールにアップロードし、動作モードから次のコマンドを使用してデバイスにファイルをインストールします。
user@host> request security pki local-certificate load filename /var/tmp/device.crt key /var/tmp/device.key certificate-id device
概要
ファイアウォール認証により、2つのデバイス間でセキュアな接続が確立されます。ネットワーク ユーザーは、ファイアウォールを越えて接続を開始するときに、認証用のユーザー名とパスワードを入力する必要があります。ファイアウォール認証は、パススルー認証のためにHTTPSトラフィックをサポートしています。HTTPSは、ユーザーとSRXシリーズファイアウォール間のHTTPファイアウォール認証トラフィックを保護できます。
HTTPSはHTTPの安全なバージョンであり、ユーザーとユーザーが接続しているデバイス間でデータが送信されるプロトコルです。ユーザーと接続デバイス間のすべての通信は暗号化されます。HTTPSは、オンラインバンキングやオンラインショッピングの注文フォームなど、機密性の高いオンライン取引を保護するためによく使用されます。
この例では、HTTPS トラフィックは HTTP よりも安全であるため、パススルー認証をトリガーするために使用されます。HTTPS トラフィックがパススルー認証をトリガーするには、まず SSL 終端プロファイルを構成する必要があります。
図 2 は、HTTPS トラフィックを使用したパススルー認証の例を示しています。この例では、untrust ゾーンのホストまたはユーザーが、trust ゾーンのリソースにアクセスしようとします。SRXシリーズファイアウォールは、HTTPSを使用してユーザー名とパスワードの情報を収集します。ホストまたはユーザーからの後続のトラフィックは、この認証の結果に基づいて許可または拒否されます。
構成
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.12/24 set interfaces ge-1/0/0 unit 0 family inet address 203.0.113.1/24 set security policies from-zone trust to-zone untrust policy p1 match source-address any set security policies from-zone trust to-zone untrust policy p1 match destination-address any set security policies from-zone trust to-zone untrust policy p1 match application any set security policies from-zone trust to-zone untrust policy p1 then permit firewall-authentication pass-through access-profile local_pf set security policies from-zone trust to-zone untrust policy p1 then permit firewall-authentication pass-through ssl-termination-profile ssl_pf set security policies from-zone trust to-zone untrust policy p1 then log session-init set security policies from-zone trust to-zone untrust policy p1 then log session-close set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic protocols all set security zones security-zone untrust interfaces ge-1/0/0.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-1/0/0.0 host-inbound-traffic protocols all set access profile local_pf client user1 firewall-user password <password> set access firewall-authentication pass-through default-profile local_pf set services ssl termination profile ssl_pf server-certificate device
プロシージャ
手順
パススルー認証をトリガーするようにHTTPSトラフィックを構成するには:
インターフェイスを設定し、IPアドレスを割り当てます。
[edit interfaces] user@host# set ge-0/0/0 unit 0 family inet address 192.0.2.12/24 user@host# set ge-1/0/0 unit 0 family inet address 203.0.113.1/24
セキュリティポリシーを設定して、ゾーンの信頼から信頼されていないゾーンへのファイアウォール認証トラフィックを許可します。
[edit security policies] user@host# set from-zone trust to-zone untrust policy p1 then permit firewall-authentication pass-through access-profile local_pf user@host# set from-zone trust to-zone untrust policy p1 then permit firewall-authentication pass-through ssl-termination-profile ssl_pf
パケットが条件に一致したときに実行するポリシーアクションを指定します。
[edit security policies] user@host# set from-zone trust to-zone untrust policy p1 match source-address any user@host# set from-zone trust to-zone untrust policy p1 match destination-address any user@host# set from-zone trust to-zone untrust policy p1 match application any user@host# set from-zone trust to-zone untrust policy p1 then log session-init user@host# set from-zone trust to-zone untrust policy p1 then log session-close
セキュリティ ゾーンを設定し、インターフェイスを割り当てます。
[edit security zones] user@host# set security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic protocols all user@host# set security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic system-services all
ゾーンのアプリケーションサービスを設定します。
[edit security zones] user@host# set security-zone trust host-inbound-traffic system-services all protocols all user@host# set security-zone untrust host-inbound-traffic system-services all protocols all
アクセスプロファイルを作成し、クライアントをファイアウォールユーザーとして設定し、パスワードを設定します。
[edit access] user@host# set profile local_pf client user1 firewall-user password <password>
ファイアウォールの種類と、認証設定が定義されているデフォルトのプロファイル名を構成します。
[edit access] user@host# set firewall-authentication pass-through default-profile local_pf
SSL 終端プロファイルを設定し、ローカル証明書識別子名を入力します。
[edit services] user@host# set ssl termination profile ssl_pf server-certificate device
業績
設定モードから、 show interfaces
、 show security policies
、 show security zones
、 show access
、 show services ssl termination
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show interfaces ... interfaces ge-0/0/0 { unit 0 { family inet { address 192.0.2.12; } } } ge-1/0/0 { unit 0 { family inet { address 203.0.113.1/24; } } }
user@host# show security policies ... policies from-zone trust to-zone untrust { policy p1 { match { source-address any; destination-address any; application any; } then { permit { firewall-authentication { pass-through { access-profile local_pf; ssl-termination-profile ssl_pf; } } } log { session-init; session-close; } } } } }
user@host# show security zones ... zones { security-zone trust { interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } security-zone untrust { interfaces { ge-1/0/0.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
user@host# show access ... access { profile local_pf { client user1 { firewall-user { password password; } } } firewall-authentication { pass-through { default-profile local_pf; } }
user@host# show services ssl termination ... services { ssl { termination { profile ssl_pf { server-certificate device; } } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定の確認
目的
設定が正しいことを確認します。
アクション
動作モードから、識別子 1 の show security firewall-authentication users
コマンドを入力します。
user@host> show security firewall-authentication users identifier 1 Username: user1 Source IP: 203.0.113.1/24 Authentication state: Success Authentication method: Pass-through using HTTPS Age: 0 Access time remaining: 10 Lsys: root-logical-system Source zone: trust Destination zone: untrust Access profile: local_pf Interface Name: ge-0/0/0.0 Bytes sent by this user: 946 Bytes received by this user: 0
意味
show security firewall-authentication users
コマンドは、指定した識別子のファイアウォール認証ユーザー情報を表示します。出力の [認証方法] フィールドに [HTTPS を使用したパススルー] が表示され、[認証状態] フィールドに [成功] が表示されている場合、設定は正しいです。
例:キャプティブ ポータル認証の設定
この例では、キャプティブ ポータル認証を有効にし、キャプティブ ポータル認証が有効になっているポリシーにトラフィックが遭遇した場合に、ユーザーへのアクセスを許可するポリシーを設定する方法を示しています。
必要条件
開始する前に、以下を実行します。
ファイアウォールユーザーを定義します。 「ファイアウォールユーザー認証の概要」を参照してください。
インターフェイスのアドレス階層の下に Web 認証 HTTP フラグを追加して、Web 認証を有効にします。
概要
Web 認証を有効にするには、HTTP セッションをホストしているデバイスの IP アドレスを指定する必要があります。これらの設定は、保護されたリソースにアクセスするファイアウォール ユーザーが、Web サーバーに直接アクセスするか、Web 認証によって認証される場合に使用されます。次の手順は、トラフィックが Web 認証が有効になっているポリシー(Policy-W)に遭遇したときに、FWClient1 ユーザーへのアクセスを許可するポリシーを設定する方法を示しています。( 図 3 を参照)。この例では、FWClient1 は Web 認証ログイン ページで既に認証されています。
FWClient1 ファイアウォール ユーザーは、次の操作を行って認証を取得します。
ブラウザを Web 認証 IP(198.51.100.63/24)にポイントして、最初に認証を取得します
policy-W ポリシーで指定されたリソースにアクセスするためのトラフィックを開始します
これらの手順で説明されているようにデバイスを設定し、ユーザーが正常に認証されると、 図 4 に示す画面が表示されます。
構成
プロシージャ
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.23/24
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.63/24 web-authentication http
set interfaces fe-5/0/0 unit 0 family inet address 203.0.113.15/24
set access profile WEBAUTH client FWClient1 firewall-user password pwd
set access firewall-authentication web-authentication default-profile WEBAUTH
set access firewall-authentication web-authentication banner success "WEB AUTH LOGIN SUCCESS"
set security zones security-zone UT-ZONE host-inbound-traffic system-services all
set security zones security-zone UT-ZONE interfaces ge-0/0/1.0 host-inbound-traffic protocols all
set security zones security-zone T-ZONE host-inbound-traffic system-services all
set security zones security-zone T-ZONE interfaces ge-5/0/0.0 host-inbound-traffic protocols all
set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match source-address any
set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match destination-address any
set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 match application any
set security policies from-zone UT-ZONE to-zone T-ZONE policy P1 then permit firewall-authentication web-authentication client-match FWClient1
set system services web-management http interface ge-0/0/1.0
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
Web 認証を構成するには:
2つのインターフェイスを設定し、IPアドレスを割り当てます。
手記:この例では、インターフェイスに 2 つのアドレスを割り当てることは任意です。
[edit] user@host# set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.23/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.63/24 web-authentication http user@host# set interfaces fe-5/0/0 unit 0 family inet address 203.0.113.15/24
FWClient1 ユーザーの WEBAUTH アクセス プロファイルを作成し、ユーザーのパスワードを指定して、成功バナーを定義します。
[edit access] user@host# set profile WEBAUTH client FWClient1 firewall-user password pwd user@host# set firewall-authentication web-authentication default-profile WEBAUTH user@host# set firewall-authentication web-authentication banner success "WEB AUTH LOGIN SUCCESS"
セキュリティ ゾーンを設定します。
手記:この例では、セキュリティ ゾーンに 2 つ目のインターフェイスを設定することは任意です。
[edit security zones] user@host# set security-zone UT-ZONE host-inbound-traffic system-services all user@host# set security-zone UT-ZONE interfaces ge-0/0/1.0 host-inbound-traffic protocols all user@host# set security-zone T-ZONE host-inbound-traffic system-services all user@host# set security-zone T-ZONE interfaces ge-5/0/0.0 host-inbound-traffic protocols all
セキュリティポリシーP1をセキュリティゾーンに割り当てます。
[edit security policies] user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match source-address any user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match destination-address any user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 match application any user@host# set from-zone UT-ZONE to-zone T-ZONE policy P1 then permit firewall-authentication web-authentication client-match FWClient1
デバイスでHTTPプロセス(デーモン)をアクティブにします。
[edit] user@host# set system services web-management http interface ge-0/0/1.0
業績
設定モードから、次のコマンドを入力して設定を確認します。
show interfaces
show access
show security zones
show security policies
show system services
出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
簡潔にするために、この show
出力には、この例に関連する設定のみ含まれています。システム上のその他の設定はすべて省略記号(...)で置き換えられています。
user@host# show interfaces ... } ge-0/0/1{ unit 0 { family inet { address 198.51.100.23/24 { address 198.51.100.63/24 { web-authentication http; } } } } fe-5/0/0 { unit 0 { family inet { address 198.51.100.14/24; } } } ... user@host# show access profile WEBAUTH { client FWClient1 { firewall-user { password "$ABC123"; ## SECRET-DATA } } } firewall-authentication { web-authentication { default-profile WEBAUTH; banner { success "WEB AUTH LOGIN SUCCESS"; } } } user@host# show security zones ... } security-zone UT-ZONE { host-inbound-traffic { system-services { all; } } interfaces { ge-0/0/1.0 { host-inbound-traffic { protocols { all; } } } } } security-zone T-ZONE { host-inbound-traffic { system-services { all; } } interfaces { ge-5/0/0.0 { host-inbound-traffic { protocols { all; } } } } } user@host# show security policies ... from-zone UT-ZONE to-zone T-ZONE { policy P1 { match { source-address any; destination-address any; application any; } then { permit { firewall-authentication { web-authentication { client-match FWClient1; } } } } } } user@host# show system services ... ftp; ssh; telnet; web-management { http { interface g-0/0/1.0; } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ファイアウォールユーザー認証の検証と認証テーブル内のユーザーとIPアドレスの監視
目的
ファイアウォール認証のユーザー履歴を表示し、認証に成功したファイアウォールユーザーとログインに失敗したファイアウォールユーザーの数を確認します。
アクション
動作モードから、以下の show
コマンドを入力します。
user@host> show security firewall-authentication history user@host> show security firewall-authentication history identifier 1 user@host> show security firewall-authentication users user@host> show security firewall-authentication users identifier 3
user@host> show security firewall-authentication history
History of firewall authentication data:
Authentications: 1
Id Source Ip Date Time Duration Status User
5 198.51.100.75 2010-04-24 01:08:57 0:10:30 Success FWClient1
user@host> show security firewall-authentication history identifier 1
Username: FWClient1
Source IP: 198.51.100.752
Authentication state: Success
Authentication method: Web-authentication
Access start date: 2010-10-12
Access start time: 21:24:02
Duration of user access: 0:00:24
Source zone: N/A
Destination zone: N/A
Access profile: WEBAUTH
Bytes sent by this user: 0
Bytes received by this user: 2660
user@host> show security firewall-authentication users
Firewall authentication data:
Total users in table: 1
Id Source Ip Src zone Dst zone Profile Age Status User
4 198.51.100.75 N/A N/A WEBAUTH 1 Success FWClient1
user@host> show security firewall-authentication users identifier 3
Username: FWClient1
Source IP: 198.51.100.75
Authentication state: Success
Authentication method: Web-authentication
Age: 3
Access time remaining: 9
Source zone: N/A
Destination zone: N/A
Access profile: WEBAUTH
Interface Name: ge-0/0/1.0
Bytes sent by this user: 0
Bytes received by this user: 1521
例:キャプティブ ポータル認証をトリガーする HTTPS トラフィックの設定
この例では、キャプティブポータル認証をトリガーするようにHTTPSトラフィックを設定する方法を示しています。HTTPSはHTTPよりも安全であるため、キャプティブポータル認証に広く使用されています。
必要条件
開始する前に、以下を実行します。
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
SRXシリーズファイアウォール
Linux と Open SSL がインストールされた 2 台の PC。1台のPCはクライアントとして機能し、もう1台のPCはHTTPSサーバーとして機能します。この 2 台の PC は、キー ファイルの作成とトラフィックの送信に使用されます。
SRX5400、SRX5600、SRX5800 デバイスの場合は 12.1X44-D10 以降Junos OS リリースJunos OS リリース、vSRX仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、SRX1500 サービス ゲートウェイの場合は 15.1X49-D40 以降。
SRXシリーズファイアウォールは、Web認証をトリガーするためにHTTPSトラフィックをデコードする必要があります。次の一覧では、秘密キー ファイルと証明キー ファイルを作成してインストールする手順について説明します。
公式の .crt
ファイルと .key
ファイルをお持ちの場合は、SRXシリーズファイアウォールにファイルを直接アップロードしてインストールできます。 .crt
ファイルと .key
ファイルがない場合は、手順に従ってファイルを作成してインストールします。ステップ 1 とステップ 2 で指定した手順は、Linux と OpenSSL がインストールされている PC で実行する必要があります。ステップ 3 とステップ 4 で指定された手順は、動作モードで実行する必要があります。
PCから、
.key
ファイルを作成します。openssl genrsa -out /tmp/server.key 1024
PCから、
.crt
ファイルを作成します。openssl req -new -x509 -days 365 -key /tmp/server.key -out /tmp/device.crt -subj "/C=CN/ST=BJ/L=BJ/O=JNPR/OU=CNRD/CN=203.0.113.22/emailAddress=device@mycomany.com"
-
SRXシリーズファイアウォールから、次のコマンドを使用して、
.key
ファイルと.crt
ファイルをアップロードし、デバイスにファイルをインストールします。user@host> request security pki local-certificate load filename /var/tmp/device.crt key /var/tmp/device.key certificate-id device
概要
ファイアウォール認証により、2つのデバイス間でセキュアな接続が確立されます。ネットワーク ユーザーは、ファイアウォールを越えて接続を開始するときに、認証用のユーザー名とパスワードを入力する必要があります。ファイアウォール認証は、パススルー認証のためにHTTPSトラフィックをサポートしています。HTTPSは、ユーザーとSRXシリーズファイアウォール間のHTTPファイアウォール認証トラフィックを保護できます。
HTTPSはHTTPの安全なバージョンであり、ユーザーとユーザーが接続しているデバイス間でデータが送信されるプロトコルです。ユーザーと接続デバイス間のすべての通信は暗号化されます。HTTPSは、オンラインバンキングやオンラインショッピングの注文フォームなど、機密性の高いオンライン取引を保護するためによく使用されます。
この例では、HTTPS トラフィックは HTTP よりも安全であるため、HTTPS トラフィックを使用して Web 認証がトリガーされます。
ユーザーは、HTTPSを使用して、Web認証が有効になっているデバイス上のIPアドレスにアクセスします。このシナリオでは、ユーザーは保護されたリソースの IP アドレスにアクセスするために HTTPS を使用しません。ユーザはユーザ名とパスワードの入力を求められます。これはデバイスによって検証されます。ユーザーまたはホストから保護されたリソースへの後続のトラフィックは、このWeb認証の結果に基づいて許可または拒否されます。
図5 は、HTTPSトラフィックを使用したWeb認証の例を示しています。
構成
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set system services web-management https pki-local-certificate device set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.18/24 set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.115/24 web-authentication https set interfaces ge-0/0/1 unit 0 family inet address 192.0.2.5/24 set security policies from-zone trust to-zone untrust policy p1 match source-address any set security policies from-zone trust to-zone untrust policy p1 match destination-address any set security policies from-zone trust to-zone untrust policy p1 match application any set security policies from-zone trust to-zone untrust policy p1 then permit set access profile local_pf client user1 firewall-user password user1 set access firewall-authentication web-authentication default-profile local_pf set security policies from-zone trust to-zone untrust policy p1 then permit firewall-authentication web-authentication
プロシージャ
手順
Web認証をトリガーするHTTPSトラフィックを設定するには:
HTTPS トラフィックに対する Web 管理サポートを有効にします。
[edit system services] user@host# set web-management https pki-local-certificate device
インターフェイスを設定し、IPアドレスを割り当てます。ge-0/0/0インターフェイスでWeb認証を有効にします。
[edit interfaces] user@host# set ge-0/0/0 unit 0 family inet address 203.0.113.18/24 set ge-0/0/0 unit 0 family inet address 203.0.113.115/24 web-authentication https user@host# set ge-0/0/1 unit 0 family inet address 192.0.2.5/24
セキュリティポリシーを設定して、ゾーンの信頼から信頼されていないゾーンへのファイアウォール認証トラフィックを許可します。
[edit security policies] user@host# set from-zone trust to-zone untrust policy p1 match source-address any destination-address any application any user@host# set security policies from-zone trust to-zone untrust policy p1 then permit
アクセスプロファイルを作成し、クライアントをファイアウォールユーザーとして設定し、パスワードを設定します。
[edit access] user@host# set profile local_pf client user1 firewall-user password user1
ファイアウォール認証設定の種類を構成します。
[edit access] user@host# set firewall-authentication web-authentication default-profile local_pf
パケットが条件に一致したときに実行するポリシーアクションを指定します。
[edit security policies] user@host# set from-zone trust to-zone untrust policy p1 then permit firewall-authentication web-authentication
業績
設定モードから、 show system services
、 show interfaces
、 show security policies
、 show access
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show system services web-management { https { pki-local-certificate device; } }
user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 203.0.113.115/24 { web-authentication https; } } } ge-0/0/1 { unit 0 { family inet { address 192.0.2.5/24; } } }
user@host# show security policies from-zone trust to-zone untrust { policy p1 { match { source-address any; destination-address any; application any; } then { permit { firewall-authentication { web-authentication; } } } } }
user@host# show access profile local_pf { client user1 { firewall-user { password "user1"; } } } firewall-authentication { web-authentication { default-profile local_pf; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定の確認
目的
設定が正しいことを確認します。
アクション
動作モードから、 show security firewall-authentication users identifier identifier
コマンドを入力します。
サンプル出力
user@host> show security firewall-authentication users identifier 1 Username: user1 Source IP: 203.1.113.102 Authentication state: Success Authentication method: Web-authentication Age: 0 Access time remaining: 10 Lsys: root-logical-system Source zone: N/A Destination zone: N/A Access profile: local_pf Bytes sent by this user: 0 Bytes received by this user: 0
意味
show security firewall-authentication users identifier identifier
コマンドは、ユーザーの識別子IDを使用して、ファイアウォール認証ユーザー情報を表示します。出力で、認証方法パラメータに「Web認証」と表示され、認証状態パラメータに「成功」と表示されている場合、設定は正しいです。
認証されていないブラウザ用のキャプティブポータルの設定
認証されていないブラウザ用にキャプティブポータルを設定する方法をご確認ください。
auth-only-browser と auth-user-agent のファイアウォール認証機能を使用するためのセキュリティ ポリシーの設定方法の例を次に示します。
For Pass-Through Authentication
auth-only-browser パラメーターを使用するパススルー認証のセキュリティー・ポリシーを構成します。
user@host# set security policies from-zone trust to-zone untrust policy p1 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p1 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p1 match application any user@host# set security policies from-zone trust to-zone untrust policy p1 then permit firewall-authentication pass-through auth-only-browser access-profile my-access-profile1t
auth-only-browser を使用せずに auth-user-agent パラメーターを使用するパススルー認証のセキュリティ ポリシーを設定します。
user@host# set security policies from-zone trust to-zone untrust policy p2 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p2 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p2 match application any user@host# set security policies from-zone trust to-zone untrust policy p2 then permit firewall-authentication pass-through auth-user-agent Opera1 access-profile my-access-profile2
auth-user-agent パラメーターで auth-only-browser を使用するパススルー認証のセキュリティポリシーを設定します。
user@host# set security policies from-zone trust to-zone untrust policy p3 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p3 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p3 match application any user@host# set security policies from-zone trust to-zone untrust policy p3 then permit firewall-authentication pass-through auth-only-browser auth-user-agent Opera1 my-access-profile3
For User Firewall Authentication
auth-only-browser パラメーターを使用するユーザー ファイアウォール認証のセキュリティ ポリシーを構成します。
user@host# set security policies from-zone trust to-zone untrust policy p4 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p4 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p4 match application any user@host# set security policies from-zone trust to-zone untrust policy p4 then permit firewall-authentication user-firewall auth-only-browser access-profile my-access-profile4t
auth-only-browser を使用せずに auth-user-agent パラメーターを使用するユーザー ファイアウォール認証のセキュリティ ポリシーを構成します。
user@host# set security policies from-zone trust to-zone untrust policy p5 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p5 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p5 match application any user@host# set security policies from-zone trust to-zone untrust policy p5 then permit firewall-authentication user-firewall auth-user-agent Opera1 access-profile my-access-profile5
auth-user-agent パラメーターで auth-only-browser を使用するユーザー ファイアウォール認証のセキュリティ ポリシーを構成します。
user@host# set security policies from-zone trust to-zone untrust policy p6 match source-address any user@host# set security policies from-zone trust to-zone untrust policy p6 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy p6 match application any user@host# set security policies from-zone trust to-zone untrust policy p6 then permit firewall-authentication user-firewall auth-only-browser auth-user-agent Opera1 access-profile my-access-profile6
参照
例:統合ポリシーの設定
この例では、統一ポリシーでパススルー認証とキャプティブポータル認証を設定して、ユーザーのネットワークリソースへのアクセスを制限または許可する方法を理解できます。
概要
ファイアウォールユーザー認証を使用すると、ユーザーがファイアウォールの背後にあるネットワークリソースにアクセスする前に、ユーザーを認証できます。ファイアウォール ユーザー認証を有効にしている場合、ユーザーはファイアウォールを越えて接続を開始するときに、認証用のユーザー名とパスワードを入力する必要があります。
Junos OS リリース 21.2R1 以降、統一ポリシーによるファイアウォールユーザー認証がサポートされています。パススルー認証とキャプティブポータル認証の両方でサポートされています。
位相幾何学
図 6 は、この例で使用されるトポロジーを示しています。トポロジーに示されているように、untrust ゾーンのファイアウォール ユーザーは、trust ゾーンの外部サーバー(IP アドレス 10.1.2.1)にアクセスする必要があります。ユーザーは、サーバーにアクセスする前にセキュリティ デバイスで認証します。デバイスは、ローカルデータベースをクエリーして、認証結果を決定します。認証に成功すると、セキュリティ デバイスは、ユーザーのセッションがタイムアウトして閉じるまで、同じ送信元 IP アドレスからの後続のトラフィックを許可します。
この例では、SRXシリーズファイアウォールで次の機能を設定します。
-
アクセスプロファイルで、セキュリティデバイスに対してローカルなユーザーデータベースを設定します。プロファイル内に、エンドユーザーを表す 1 つ以上のクライアントを追加します。client-name はユーザー名を表します。各ユーザーのパスワードをプレーンテキスト形式で入力します。
- アクセスプロファイルをパススルーまたはWebファイアウォールの認証方法に関連付けます。エンドユーザーに表示するカスタマイズしたバナーを設定します。
- トラフィックを許可または制限するセキュリティポリシーを設定し、許可されたトラフィックにファイアウォールユーザー認証を適用します。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
- SRXシリーズファイアウォールまたはvSRX仮想ファイアウォール
- Junos OS リリース 21.2R1
開始する前に、以下を実行します。
- SRXシリーズファイアウォールに有効なアプリケーション識別機能ライセンスをインストールします。 アプリケーションアプリケーション シグネチャ パッケージのライセンスのインストールと検証を参照してください。
- SRXシリーズファイアウォールにアプリケーション署名データベースをインストールします。 Junos OS アプリケーション シグネチャ パッケージのダウンロードとインストールを参照してください。
従来のポリシーと統一ポリシーを使用したSRXファイアウォールユーザーの設定
ユーザーがセッション | 結果 | を開始するときのシナリオ | ポリシー | ワークフロー
---|---|---|---|
従来のセキュリティポリシーと不明なユーザーによる認証 | ポリシーP1
|
|
ファイアウォールユーザー認証が成功した後に、認証されていないユーザーを許可します。 |
統一ポリシーと認証済みユーザーによる認証 | ポリシーP2
|
|
ファイアウォールユーザー認証なしで認証されたユーザーを許可します。 |
統一ポリシーによる認証 | ポリシー P3
|
|
ファイアウォール ユーザー認証によるトラフィックを許可します。 |
認証のために、認証されていないユーザーからUACキャプティブポータルにトラフィックをリダイレクトするには、 例:SRXシリーズデバイスでユーザーロールファイアウォールを設定するを参照してください。
CLIクイック構成
SRXシリーズファイアウォールでこの例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付けます。改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。
set services ssl termination profile ssl-a server-certificate SERVER-CERTIFICATE-1 set security policies from-zone untrust to-zone trust policy p1 match source-address any set security policies from-zone untrust to-zone trust policy p1 match destination-address any set security policies from-zone untrust to-zone trust policy p1 match application junos-http set security policies from-zone untrust to-zone trust policy p1 match application junos-https set security policies from-zone untrust to-zone trust policy p1 match source-identity unauthenticated-user set security policies from-zone untrust to-zone trust policy p1 match source-identity unknown-user set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall access-profile PROFILE-1 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall ssl-termination-profile ssl-a set security policies from-zone untrust to-zone trust policy p1 then log session-init set security policies from-zone untrust to-zone trust policy p1 then log session-close set security policies from-zone untrust to-zone trust policy p2 match source-address any set security policies from-zone untrust to-zone trust policy p2 match destination-address any set security policies from-zone untrust to-zone trust policy p2 match application any set security policies from-zone untrust to-zone trust policy p2 match source-identity authenticated-user set security policies from-zone untrust to-zone trust policy p2 match dynamic-application junos:GOOGLE set security policies from-zone untrust to-zone trust policy p2 then permit set security policies from-zone untrust to-zone trust policy p3 match source-address any set security policies from-zone untrust to-zone trust policy p3 match destination-address any set security policies from-zone untrust to-zone trust policy p3 match application any set security policies from-zone untrust to-zone trust policy p3 match dynamic-application junos:YAHOO set security policies from-zone untrust to-zone trust policy p3 then permit firewall-authentication user-firewall access-profile PROFILE-1 set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24 set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-1 firewall-user password "$ABC123" set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-2 firewall-user password "$ABC123" set access profile PROFILE-1 session-options client-idle-timeout 10 set access firewall-authentication pass-through default-profile PROFILE-1 set access firewall-authentication web-authentication default-profile PROFILE-1
手順
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24
-
セキュリティ ゾーンを作成し、インターフェイスを割り当てます。
[edit] user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all
-
アクセスプロファイルを設定し、ユーザーの詳細を追加します。
[edit] user@host# set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-1 firewall-user password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6" user@host# set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-2 firewall-user password "$9$/Bv59pBIRSleWB17-ws4o" user@host# set access profile PROFILE-1 session-options client-idle-timeout 10
パスワードを持つ2人のユーザーCLIENT-1とCLIENT-2を追加し、これらのユーザーをclient-group GROUP-1に割り当てました。
-
認証方法を設定し、アクセスプロファイルを割り当てます。
[edit] user@host# set access firewall-authentication pass-through default-profile PROFILE-1 user@host# set access firewall-authentication web-authentication default-profile PROFILE-1
-
SSL 終端プロファイルを設定します。
[edit] user@host# set services ssl termination profile ssl-a server-certificate SERVER-CERTIFICATE-1
-
セキュリティポリシーを設定して、認証されていないユーザーにファイアウォールユーザー認証を許可します。
[edit] user@host# set security policies from-zone untrust to-zone trust policy p1 match source-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match application junos-http user@host# set security policies from-zone untrust to-zone trust policy p1 match application junos-https user@host# set security policies from-zone untrust to-zone trust policy p1 match source-identity unauthenticated-user user@host# set security policies from-zone untrust to-zone trust policy p1 match source-identity unknown-user user@host# set security policies from-zone untrust to-zone trust policy p1 match source-identity unknown-user user@host# set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall access-profile PROFILE-1 user@host# set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall ssl-termination-profile ssl-a user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-init user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-close
-
ファイアウォールユーザー認証なしで認証されたユーザーを許可するセキュリティポリシーを設定します。
[edit] user@host# set security policies from-zone untrust to-zone trust policy p2 match source-address any user@host# set security policies from-zone untrust to-zone trust policy p2 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy p2 match application any user@host# set security policies from-zone untrust to-zone trust policy p2 match source-identity authenticated-user user@host# set security policies from-zone untrust to-zone trust policy p2 match dynamic-application junos:GOOGLE user@host# set security policies from-zone untrust to-zone trust policy p2 then permit
-
ファイアウォールユーザー認証でトラフィックを許可するセキュリティポリシーを設定します。
[edit] user@host# set security policies from-zone untrust to-zone trust policy p3 match source-address any user@host# set security policies from-zone untrust to-zone trust policy p3 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy p3 match application any user@host# set security policies from-zone untrust to-zone trust policy p3 match dynamic-application junos:YAHOO user@host# set security policies from-zone untrust to-zone trust policy p3 then permit firewall-authentication user-firewall access-profile PROFILE-1 user@host#
- ローカル認証テーブルにエントリを追加します。各エントリにはIPアドレスを含める必要があることに注意してください。
user@host> request security user-identification local-authentication-table add user-name CLIENT-1 ip-address 10.1.1.1
業績
設定モードから、コマンドを入力して設定を show security 確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit ]user@host# show security policies from-zone untrust to-zone trust { policy p1 { match { source-address any; destination-address any; application [ junos-http junos-https ]; source-identity [ unauthenticated-user unknown-userset unknown-user ]; } then { permit { firewall-authentication { user-firewall { access-profile PROFILE-1; ssl-termination-profile ssl-a; } } } log { session-init; session-close; } } } policy p2 { match { source-address any; destination-address any; application any; source-identity authenticated-user; dynamic-application junos:GOOGLE; } then { permit; } } policy p3 { match { source-address any; destination-address any; application any; dynamic-application junos:YAHOO; } then { permit { firewall-authentication { user-firewall { access-profile PROFILE-1; } } } } } }
user@host# show security zones security-zone trust { interfaces { ge-0/0/1.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } security-zone untrust { interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
user@host# show interfaces interfaces { ge-0/0/0 { unit 0 { family inet { address 10.1.1.254/24; } } } ge-0/0/1 { unit 0 { family inet { address 10.1.2.254/24; } } }
[edit]
user@host# show access profile PROFILE-1 { client CLIENT-1 { client-group GROUP-1; firewall-user { password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6"; ## SECRET-DATA } } client CLIENT-2 { client-group GROUP-1; firewall-user { password "$9$/Bv59pBIRSleWB17-ws4o"; ## SECRET-DATA } } session-options { client-idle-timeout 10; } } firewall-authentication { pass-through { default-profile PROFILE-1; web-authentication { default-profile PROFILE-1; } }
デバイスでの機能の設定が完了したら、設定モードから commit
を入力します。
ファイアウォールユーザー認証が機能していることを確認する
ファイアウォールのユーザー認証が機能していることを確認するには、クライアントマシンでWebブラウザを開きます。サーバーの IP アドレス 10.1.2.1 を入力してサーバーにアクセスします。システムは、 図 7 に示すように、ログインとパスワードの詳細の入力を求めます。
資格情報を正常に入力すると、サーバーにアクセスできます。
統一ポリシーによるパススルー認証の設定
any
として定義します。
CLIクイック構成
SRXシリーズファイアウォールでこの例を素早く設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを[edit]階層レベルのCLIにコピー&ペーストしてください。
set services ssl termination profile ssl-a server-certificate SERVER-CERTIFICATE-1 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24 set security policies from-zone untrust to-zone trust policy p1 match source-address any set security policies from-zone untrust to-zone trust policy p1 match destination-address any set security policies from-zone untrust to-zone trust policy p1 match application any set security policies from-zone untrust to-zone trust policy p1 match dynamic-application any set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication pass-through access-profile PROFILE-1 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication pass-through ssl-termination-profile ssl-a set security policies from-zone untrust to-zone trust policy p1 then log session-init set security policies from-zone untrust to-zone trust policy p1 then log session-close set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-1 firewall-user password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6" set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-2 firewall-user password "$9$/Bv59pBIRSleWB17-ws4o" set access profile PROFILE-1 session-options client-idle-timeout 10 set access firewall-authentication pass-through default-profile PROFILE-1 set access firewall-authentication web-authentication default-profile PROFILE-1
手順
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24
-
セキュリティ ゾーンを定義し、インターフェイスを割り当てます。
[edit] user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all
-
アクセスプロファイルを設定し、ユーザーの詳細を追加します。
[edit] user@host# set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-1 firewall-user password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6" user@host# set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-2 firewall-user password "$9$/Bv59pBIRSleWB17-ws4o" user@host# set access profile PROFILE-1 session-options client-idle-timeout 10
パスワードを使用して CLIENT-1 と CLIENT-2 の 2 人のユーザーを追加し、ユーザーをクライアントグループ GROUP-1 に割り当てました。
-
認証方法を設定し、アクセスプロファイルを割り当てます。
[edit] user@host# set access firewall-authentication pass-through default-profile PROFILE-1 user@host# set access firewall-authentication web-authentication default-profile PROFILE-1
-
SSL 終端プロファイルを設定します。
[edit] user@host# set services ssl termination profile ssl-a server-certificate SERVER-CERTIFICATE-1
-
動的アプリケーションを
any
としてセキュリティポリシーを設定します。[edit] user@host# set security policies from-zone untrust to-zone trust policy p1 match source-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match application any user@host# set security policies from-zone untrust to-zone trust policy p1 match dynamic-application any user@host# set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication pass-through access-profile PROFILE-1 user@host# set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication pass-through ssl-termination-profile ssl-a user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-init user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-close
業績
設定モードから、コマンドを入力して設定を show security 確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit]user@host# show security policies] from-zone untrust to-zone trust { policy p1 { match { source-address any; destination-address any; application any; dynamic-application any; } then { permit { firewall-authentication { pass-through { access-profile PROFILE-1; ssl-termination-profile ssl-a; } } } log { session-init; session-close; } } } }
[edit]
user@host# show security zones security-zone trust { interfaces { ge-0/0/1.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } security-zone untrust { interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
[edit]
user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.254/24; } } } ge-0/0/1 { unit 0 { family inet { address 10.1.2.254/24; } } }
[edit]
user@host# show access profile PROFILE-1 { client CLIENT-1 { client-group GROUP-1; firewall-user { password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6"; ## SECRET-DATA } } client CLIENT-2 { client-group GROUP-1; firewall-user { password "$9$/Bv59pBIRSleWB17-ws4o"; ## SECRET-DATA } } session-options { client-idle-timeout 10; } } firewall-authentication { pass-through { default-profile PROFILE-1; } web-authentication { default-profile PROFILE-1; } }
デバイスでの機能の設定が完了したら、設定モードから commit
を入力します。
パススルー認証が機能していることを確認する
ファイアウォールユーザー認証が機能していることを確認するには、クライアントマシンでWebブラウザを開きます。サーバーの IP アドレス 10.1.2.1 を入力してサーバーにアクセスします。 システムは、図 8 に示すように、ログインとパスワードの詳細の入力を求めます。
資格情報を正常に入力すると、サーバーにアクセスできます。
統合ポリシーによるキャプティブポータル認証の設定
CLIクイック構成
SRXシリーズファイアウォールでこの例を素早く設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを[edit]階層レベルのCLIにコピー&ペーストしてください。
set system services web-management http interface ge-0/0/0.0 set system services web-management https system-generated-certificate set system services web-management https interface ge-0/0/0.0 set security policies from-zone untrust to-zone trust policy p1 match source-address any set security policies from-zone untrust to-zone trust policy p1 match destination-address any set security policies from-zone untrust to-zone trust policy p1 match application junos-http set security policies from-zone untrust to-zone trust policy p1 match application junos-https set security policies from-zone untrust to-zone trust policy p1 match dynamic-application junos:HTTP set security policies from-zone untrust to-zone trust policy p1 match dynamic-application junos:SSH set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication web-authentication set security policies from-zone untrust to-zone trust policy p1 then log session-init set security policies from-zone untrust to-zone trust policy p1 then log session-close set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.253/24 web-authentication http set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.253/24 web-authentication https set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24 set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-1 firewall-user password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6" set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 set access profile PROFILE-1 client CLIENT-2 firewall-user password "$9$/Bv59pBIRSleWB17-ws4o" set access profile PROFILE-1 session-options client-idle-timeout 10 set access firewall-authentication pass-through default-profile PROFILE-1 set access firewall-authentication web-authentication default-profile PROFILE-1 set access firewall-authentication web-authentication banner success "WELCOME to JUNIPER HTTP SESSION"
手順
-
インターフェイスを作成します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.254/24 user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.253/24 web-authentication http user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.253/24 web-authentication https user@host# set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.254/24
Web 認証にセカンダリ IP アドレスを使用します。この例では、Web 認証に 10.1.1.253/24 を使用しています。セカンダリ IP アドレスは、プライマリ IP アドレスと同じサブネットを使用する必要があることに注意してください。
-
セキュリティ ゾーンを作成し、インターフェイスを割り当てます。
[edit] user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services all user@host# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic protocols all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services all user@host# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic protocols all
- Web 認証のインターフェイスを有効にします。
[edit] user@host# set system services web-management http interface ge-0/0/0.0 user@host# set system services web-management https system-generated-certificate
-
アクセスプロファイルを設定し、ユーザーの詳細を追加します。
[edit] user@host# set access profile PROFILE-1 client CLIENT-1 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-1 firewall-user password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6" user@host# set access profile PROFILE-1 client CLIENT-2 client-group GROUP-1 user@host# set access profile PROFILE-1 client CLIENT-2 firewall-user password "$9$/Bv59pBIRSleWB17-ws4o" user@host# set access profile PROFILE-1 session-options client-idle-timeout 10
パスワードを使用して CLIENT-1 と CLIENT-2 の 2 人のユーザーを追加し、ユーザーをクライアントグループ GROUP-1 に割り当てました。
-
Web 認証プロパティの構成
[edit] user@host# set access firewall-authentication web-authentication default-profile PROFILE-1 user@host# set access firewall-authentication web-authentication banner success "WELCOME to JUNIPER HTTP SESSION"
-
dynamic-application でセキュリティ ポリシーを作成します。
[edit] user@host# set security policies from-zone untrust to-zone trust policy p1 match source-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy p1 match application junos-http user@host# set security policies from-zone untrust to-zone trust policy p1 match application junos-https user@host# set security policies from-zone untrust to-zone trust policy p1 match dynamic-application junos:HTTP user@host# set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication web-authentication user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-init user@host# set security policies from-zone untrust to-zone trust policy p1 then log session-close
業績
設定モードから、コマンドを入力して設定を show security 確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit]user@host# show security policies from-zone untrust to-zone trust { policy p1 { match { source-address any; destination-address any; application [ junos-http junos-https ]; dynamic-application [ junos:HTTP junos:SSH ]; } then { permit { firewall-authentication { web-authentication; } } log { session-init; session-close; } } } }
[edit]
user@host# show security zones security-zone trust { interfaces { ge-0/0/1.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } security-zone untrust { interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
[edit]
user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.254/24; address 10.1.1.253/24 { web-authentication { http; https; } } } } } ge-0/0/1 { unit 0 { family inet { address 10.1.2.254/24; } } }
[edit]
user@host# show access profile PROFILE-1 { client CLIENT-1 { client-group GROUP-1; firewall-user { password "$9$2ngZjHkPQ39.PhrvLVb.P5Tz6"; ## SECRET-DATA } } client CLIENT-2 { client-group GROUP-1; firewall-user { password "$9$/Bv59pBIRSleWB17-ws4o"; ## SECRET-DATA } } session-options { client-idle-timeout 10; } } firewall-authentication { pass-through { default-profile PROFILE-1; } } web-authentication { default-profile PROFILE-1; banner { success "WELCOME to JUNIPER HTTP SESSION"; } } }
[edit]
user@host# show system services ssh { root-login allow; } web-management { http { interface [ fxp0.0 ge-0/0/0.0 ]; } https { system-generated-certificate; interface [ fxp0.0 ge-0/0/0.0 ]; } }
デバイスでの機能の設定が完了したら、設定モードから commit
を入力します。
Web認証が機能していることを確認する
Web 認証が機能していることを確認するには、クライアント マシンで Web ブラウザーを開きます。まず、Webブラウザを使用してセキュリティデバイスにアクセスします。Web 認証用に構成した IP アドレス 10.1.1.253 を使用します。 デバイスは、図 9 に示すように、ユーザ名とパスワードの入力を求めます。
認証が成功すると、 図 10 に示すように設定されたバナーが表示され、サーバにアクセスできるようになります。
検証
ファイアウォールユーザーの監視
目的
ファイアウォール認証ユーザー履歴を表示して、ファイアウォールユーザーの詳細を確認します。
アクション
動作モードから、以下の表示コマンドを入力します。
user@host> show security firewall-authentication users Firewall authentication data: Total users in table: 1 Id Source Ip Src zone Dst zone Profile Age Status User 15 10.1.1.1 N/A N/A PROFILE- 1 Success CLIENT-2
user@host> show security firewall-authentication users identifier 16 Username: CLIENT-2 Source IP: 10.1.1.1 Authentication state: Success Authentication method: User-firewall using HTTP Age: 1 Access time remaining: 9 Lsys: root-logical-system Source zone: N/A Destination zone: N/A Access profile: PROFILE-1 Interface Name: ge-0/0/0.0 Bytes sent by this user: 56986 Bytes received by this user: 436401 Client-groups: GROUP-1
lab@vSRX-01> show security firewall-authentication users identifier 15 Username: CLIENT-2 Source IP: 10.1.1.1 Authentication state: Success Authentication method: Web-authentication using HTTP Age: 2 Access time remaining: 8 Lsys: root-logical-system Source zone: N/A Destination zone: N/A Access profile: PROFILE-1 Interface Name: ge-0/0/0.0 Bytes sent by this user: 0 Bytes received by this user: 0 Client-groups: GROUP-1
user@host> show security firewall-authentication history History of firewall authentication data: Authentications: 2 Id Source Ip Date Time Duration Status User 0 10.1.1.1 2021-05-12 06:44:26 0:00:59 Failed 14 10.1.1.1 2021-05-12 07:33:43 0:10:00 Success CLIENT-2
意味
コマンド出力には、ログインしているユーザー、使用された認証方法、適用されたプロファイル、ログイン試行などの詳細が提供されます。
セキュリティポリシーの使用状況の詳細の確認
目的
受信したヒット数に応じたセキュリティポリシーの利用率を表示します。
アクション
動作モードから、以下の表示コマンドを入力します。
user@host> show security policies hit-count Logical system: root-logical-system Index From zone To zone Name Policy count Action 1 untrust trust p2 2 Permit
意味
コマンド出力は、トラフィックに適用されているセキュリティポリシーの詳細を提供します。
例:外部認証サーバーの設定
この例では、外部認証用のデバイスを設定する方法を示しています。
必要条件
開始する前に、認証ユーザーグループを作成します。
概要
複数のユーザー・アカウントをまとめてユーザー・グループを形成し、ローカル・データベース、RADIUS、LDAP、またはSecurIDサーバーに保存できます。ポリシーで認証ユーザ グループと外部認証サーバを参照すると、ポリシーに一致するトラフィックによって認証チェックが開始されます。
次に、アクセスプロファイルプロファイル-1を外部認証用に設定する例を示します。アクセスプロファイルには、2つのRADIUSサーバーと1つのLDAP サーバーが設定されています。ただし、認証の順序はRADIUSサーバーのみを指定するため、RADIUSサーバー認証が失敗すると、ファイアウォールユーザーの認証は失敗します。ローカル データベースにはアクセスされません。
ファイアウォールクライアントがRADIUSサーバーによって認証されている場合、RADIUSサーバーから返されるグループメンバーシップVSAは、RADIUSサーバー設定またはアクセスプロファイルProfile-1に、alpha、beta、またはgammaクライアントグループを含んでいる必要があります。アクセスプロファイルは、ユーザーのユーザー名とパスワードを保存するか、そうした情報が保存されている外部認証サーバーを指し示します。
構成
プロシージャ
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set access profile Profile-1 authentication-order radius set access profile Profile-1 client Client-1 client-group alpha set access profile Profile-1 client Client-1 client-group beta set access profile Profile-1 client Client-1 client-group gamma set access profile Profile-1 client Client-1 firewall-user password pwd set access profile Profile-1 client Client-2 client-group alpha set access profile Profile-1 client Client-2 client-group beta set access profile Profile-1 client Client-2 firewall-user password pwd set access profile Profile-1 client Client-3 firewall-user password pwd set access profile Profile-1 client Client-4 firewall-user password pwd set access profile Profile-1 session-options client-group alpha set access profile Profile-1 session-options client-group beta set access profile Profile-1 session-options client-group gamma set access profile Profile-1 session-options client-idle-timeout 255 set access profile Profile-1 session-options client-session-timeout 4 set access profile Profile-1 ldap-options base-distinguished-name CN=users,DC=junos,DC=juniper,DC=net set access profile Profile-1 ldap-options search search-filter sAMAccountName= set access profile Profile-1 ldap-options search admin-search distinguished-name cn=administrator,cn=users,dc=junos,dc=juniper,dc=net set access profile Profile-1 ldap-options search admin-search password pwd set access profile Profile-1 ldap-server 203.0.113.39/24 set access profile Profile-1 radius-server 203.0.113.62/24 secret example-secret set access profile Profile-1 radius-server 203.0.113.62/24 retry 10 set access profile Profile-1 radius-server 203.0.113.27/24 secret juniper
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
外部認証用のデバイスを設定するには:
外部認証の順番にRADIUSサーバーを指定します。
[edit] user@host# set access profile Profile-1 authentication-order radius
クライアント 1 から 4 のファイアウォール ユーザーを設定し、クライアント 1 のファイアウォール ユーザーとクライアント 2 のファイアウォール ユーザーをクライアント グループに割り当てます。
[edit access profile Profile-1] user@host# set client Client-1 client-group alpha user@host# set client Client-1 client-group beta user@host# set client Client-1 client-group gamma user@host# set client Client-1 firewall-user password pwd user@host# set client Client-2 client-group alpha user@host# set client Client-2 client-group beta user@host# set client Client-2 firewall-user password pwd user@host# set client Client-3 firewall-user password pwd user@host# set client Client-4 firewall-user password pwd
セッションオプションでクライアントグループを設定します。
[edit access profile Profile-1] user@host# set session-options client-group alpha user@host# set session-options client-group beta user@host# set session-options client-group gamma user@host# set session-options client-idle-timeout 255 user@host# set session-options client-session-timeout 4
LDAP サーバーとサーバーオプションの IP アドレスを構成します。
[edit access profile Profile-1] user@host# set ldap-options base-distinguished-name CN=users,DC=junos,DC=mycompany,DC=net user@host# set ldap-options search search-filter sAMAccountName= user@host# set ldap-options search admin-search password pwd user@host# set ldap-options search admin-search distinguished-name cn=administrator,cn=users,dc=junos,dc=mycompany,dc=net user@host# set ldap-server 203.0.113.39/24
2台のRADIUSサーバーのIPアドレスを設定します。
[edit access profile Profile-1] user@host# set radius-server 203.0.113.62/24 secret pwd user@host# set radius-server 203.0.113.62/24 retry 10 user@host# set radius-server 203.0.113.27/24 secret pwd
業績
設定モードから、 show access profile Profile-1
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show access profile Profile-1 authentication-order radius; client Client-1 { client-group [ alpha beta gamma ]; firewall-user { password "$ABC123"; ## SECRET-DATA } } client Client-2 { client-group [ alpha beta ]; firewall-user { password "$ABC123"; ## SECRET-DATA } } client Client-3 { firewall-user { password "$ABC123"; ## SECRET-DATA } } client Client-4 { firewall-user { password "$ABC123"; ## SECRET-DATA } } session-options { client-group [ alpha beta gamma ]; client-idle-timeout 255; client-session-timeout 4; } ldap-options { base-distinguished-name CN=users,DC=junos,DC=juniper,DC=net; search { search-filter sAMAccountName=; admin-search { distinguished-name cn=administrator,cn=users,dc=junos, dc=mycompany,dc=net; password "$ABC123"; ## SECRET-DATA } } } ldap-server { 203.0.113.39/24 ; } radius-server { 203.0.113.62/24 { secret "$ABC123"; ## SECRET-DATA retry 10; } 203.0.113.27/24 { secret "$ABC123"; ## SECRET-DATA } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
例:クライアントグループを設定する
この例では、プロファイル内のクライアントグループに対してローカルユーザーを設定する方法を示しています。
必要条件
開始する前に、アクセスプロファイルを作成します。
概要
クライアントグループとは、そのクライアントが属するグループのリストです。クライアントアイドルタイムアウトと同様に、外部認証サーバが応答で値を返さない(例えば、LDAPサーバがそのような情報を返さない)場合にのみ、クライアントグループが使用されます。
この例では、Managers というプロファイルのクライアントグループ G1、G2、および G3 に対して Client-1 と呼ばれるローカルユーザーを設定する方法を示しています。この例では、クライアントに対してクライアントグループが設定されています。クライアントにクライアント・グループが定義されていない場合は、 access profile session-options
階層下のクライアント・グループが使用されます。
構成
プロシージャ
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set access profile Managers client Client-1 client-group G1
set access profile Managers client Client-1 client-group G2
set access profile Managers client Client-1 client-group G3
set access profile Managers client Client-1 firewall-user password pwd
set access profile Managers session-options client-group G1
set access profile Managers session-options client-group G2
set access profile Managers session-options client-group G3
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
プロファイル内のクライアント・グループのローカル・ユーザーを構成するには、次のようにします。
ファイアウォール ユーザー プロファイル マネージャーを構成し、クライアント グループを割り当てます。
user@host# edit access profile Managers [edit access profile Managers] user@host# set client Client-1 client-group G1 user@host# set client Client-1 client-group G2 user@host# set client Client-1 client-group G3 user@host# set client Client-1 firewall-user password pwd
セッションオプションでクライアントグループを設定します。
[edit access profile Managers] user@host# set session-options client-group G1 user@host# set session-options client-group G2 user@host# set session-options client-group G3
業績
設定モードから show access profile Managers
コマンドを入力して、設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show access profile Managers client Client-1 { client-group [ G1 G2 G3 ]; firewall-user { password "$ABC123"; ## SECRET-DATA } } session-options { client-group [ G1 G2 G3 ]; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
例: バナーのカスタマイズ
この例では、ブラウザに表示されるバナーテキストをカスタマイズする方法を示しています。
必要条件
開始する前に、アクセスプロファイルを作成します。
概要
バナーは、ログインの種類に応じてモニターのさまざまな場所に表示されるメッセージです。この例では、ブラウザに表示されるバナーを変更して、Web 認証によるログインに成功した後にユーザが正常に認証されたことを示す方法を示します。新しいメッセージは「Web認証が成功しました」です。認証に失敗すると、新しいメッセージには「認証に失敗しました」と表示されます。
構成
プロシージャ
CLIクイック構成
この例を素早く設定するには、以下のコマンドをテキストファイルにコピーし、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit を入力してください。
set access firewall-authentication pass-through default-profile Profile-1
set access firewall-authentication pass-through ftp banner fail “ Authentication failed”
set access firewall-authentication web-authentication default-profile Profile-1
set access firewall-authentication web-authentication banner success “ Web authentication is successful”
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
ブラウザに表示されるバナーテキストをカスタマイズするには:
FTP 経由のパススルー認証に失敗した場合のバナー テキストを指定します。
[edit] user@host# set access firewall-authentication pass-through default-profile Profile-1 user@host# set access firewall-authentication pass-through ftp banner fail “ Authentication failed”
Web認証を成功させるためのバナーテキストを指定します。
[edit] user@host# set access web-authentication default-profile Profile-1 user@host# set access web-authentication banner success “ Web authentication is successful”
業績
設定モードから、 show access firewall-authentication
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show access firewall-authentication pass-through { default-profile Profile-1; ftp { banner { fail "Authentication failed"; } } } web-authentication { default-profile Profile-1; banner { success "Web authentication is successful"; } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
例:相互TLS(mTLS)認証の設定
相互TLS(mTLS)認証の設定方法をご確認ください。
この例では、ファイアウォールで相互トランスポート層セキュリティ(mTLS)認証を設定および検証します。この例では、 ジュ ニパーネットワーク®スSRXシリーズファイアウォールまたはジュニパーネットワーク®スvSRX仮想ファイアウォール(vSRX3.0)を指すためにファイアウォールを使用します。この構成では、ユーザーはパスワードなしで認証できます。ユーザー認証は、公開鍵と秘密鍵のペアを使用して、クライアント/サーバー証明書を検証することによって行われます。
この例に示すように mTLS を設定するには、管理者が次の証明書を生成する必要があります。
-
CA 証明書 - ファイアウォールとクライアント ブラウザーで CA 証明書を実行します。
-
サーバー証明書 - domain1.com mTLS サーバーを使用して、ファイアウォールでサーバー証明書を生成します。ファイアウォールに設定された CA 証明書を使用して、サーバー証明書に署名します。
-
クライアント証明書—クライアントブラウザでクライアント証明書を生成し、ファイアウォールで設定されたCA証明書を使用してクライアント証明書に署名します。
読書の時間 |
1時間もかかりません。 |
設定時間 |
1時間もかかりません。 |
- 前提条件の例
- 始める前に
- 機能の概要
- トポロジーの概要
- トポロジー図
- 被試験デバイス(DUT)の設定手順
- 付録 1:すべてのデバイスでの set コマンド
- クライアントとサーバーの鍵証明書の生成
- 検証
前提条件の例
ハードウェア要件 |
ジュニパーネットワーク®スSRXシリーズファイアウォールまたはジュニパーネットワーク®スvSRX仮想ファイアウォール(vSRX3.0) |
ソフトウェア要件 |
Junos OS リリース 23.4R1 以降 |
始める前に
利点 |
mTLS認証では、以下が可能です。
|
もっと知る |
アイデンティティ認識型ファイアウォール |
詳細情報 |
ファイアウォールユーザー認証 |
機能の概要
このセクションでは、この例の構成コンポーネントの概要を説明します。
使用技術 |
mTLS認証を確立するには、以下を設定する必要があります。
|
主な検証タスク |
mTLS認証を検証します。 |
トポロジーの概要
この例では、クライアントはファイアウォールを介してサーバーに接続します。mTLS認証では、クライアントとサーバーが暗号化されたTLS接続を介して情報を交換することで、互いの証明書を検証します。
ファイアウォールは、認証されていないクライアントをサーバーへの接続時に domain1.com にリダイレクトします。このプロセスでは、domain1.com の CA 証明書とサーバー証明書がファイアウォールにプリインストールされているため、証明書エラーが回避されます。CA 証明書は、クライアントのブラウザーにプリインストールされています。
mTLS認証を使用して、キャプティブポータル認証のためのユーザー資格情報の手動入力をバイパスします。Lightweight Directory Access Protocol (LDAP) プロファイルに対して有効なユーザーが構成されていることを確認して、Active Directory からユーザー情報と承認を取得します。ポリシーでファイアウォール認証が適用される場合は、JIMSの設定が必要です。
ホスト名 |
役割 |
機能 |
---|---|---|
クライアント |
サービスリクエスター |
SRXシリーズファイアウォールを介してサーバーとのセッションを開始します。 |
SRXシリーズファイアウォール |
ファイアウォール |
クライアントのパケットを暗号化および復号化します。 |
サーバー |
サーバー |
クライアントの要求に応答します。 |
Active Directory |
アイデンティティ ソース |
アイデンティティソースとしてのActive Directory は、SRXシリーズファイアウォール、vSRX仮想ファイアウォール、ジュニパーネットワーク®スcSRXコンテナファイアウォール、またはジュニパーネットワーク®スNFXシリーズネットワークサービスプラットフォームとMicrosoft Windows Active Directoryとの統合を定義します。詳細については、 アイデンティティ ソースとしての Active Directoryを参照してください。 |
JIMS(ジムス) |
Windows サービス アプリケーション |
Juniper® Identity Management Service(JIMS)は、Active Directoryドメインからユーザー、デバイス、グループの情報を収集して管理するために設計されたWindowsサービスアプリケーションです。詳細については、 SRXシリーズファイアウォールを使用したJIMSを参照してください。 |
トポロジー図
被試験デバイス(DUT)の設定手順
必要なインターフェイスを設定します。
set interfaces ge-0/0/2 unit 0 family inet address 192.168.2.1/24 web-authentication https set interfaces ge-0/0/1 unit 0 family inet address 10.1.1.1/24
セキュリティ ゾーンを設定し、ゾーンにインターフェイスを割り当てます。
set security zones security-zone untrust host-inbound-traffic system-services ike set security zones security-zone untrust host-inbound-traffic system-services https set security zones security-zone untrust host-inbound-traffic system-services tcp-encap set security zones security-zone untrust interfaces ge-0/0/2.0 set security zones security-zone trust interfaces ge-0/0/1.0
アクセス プロファイルを設定します。
set access profile profile1 client user1 client-group group1 set access profile profile1 client user1 client-group group2 set access profile profile1 client user1 firewall-user password "$9$dPb4ZjHmzF/k.uO"
セキュリティポリシーを設定して、認証されていないユーザーにファイアウォールユーザー認証を許可します。
set security policies from-zone untrust to-zone trust policy p1 match source-address any set security policies from-zone untrust to-zone trust policy p1 match destination-address any set security policies from-zone untrust to-zone trust policy p1 match application any set security policies from-zone untrust to-zone trust policy p1 match source-identity unauthenticated-user set security policies from-zone untrust to-zone trust policy p1 match source-identity unknown-user set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall access-profile profile1 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall web-redirect-to-https set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall web-authentication-server domain1.com:8443 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication push-to-identity-management set security policies from-zone untrust to-zone trust policy p1 then log session-close
ファイアウォールユーザー認証なしで認証されたユーザーを許可するセキュリティポリシーを設定します。
set security policies from-zone untrust to-zone trust policy p2 match source-address any set security policies from-zone untrust to-zone trust policy p2 match destination-address any set security policies from-zone untrust to-zone trust policy p2 match application any set security policies from-zone untrust to-zone trust policy p2 match source-identity authenticated-user set security policies from-zone untrust to-zone trust policy p2 then permit set security policies from-zone untrust to-zone trust policy p2 then log session-close
ca プロファイルを設定します。
set security pki ca-profile ca_domain1 set security pki ca-profile ca_domain1 ca-identity ca_domain1_id
mTLS プロファイルを構成します。
set security firewall-authentication mtls-profile ma2 subject CN=test1client.* set security firewall-authentication mtls-profile-fallback-password
domain1.com サーバー証明書を実行するファイアウォールで mTLS を開始するように
web-management
を構成します。set system services web-management https interface ge-0/0/2.0 set system services web-management https pki-local-certificate srx_domain1.com set system services web-management https virtual-domain domain1.com pki-local-certificate srx_domain1.com set system services web-management https virtual-domain domain1.com mtls port 8443 set system services web-management https virtual-domain domain1.com mtls ca-profile ca_domain1 set system services web-management https virtual-domain domain1.com mtls firewall-authentication-profile ma2
(オプション)証明書検証用の証明書失効リスト(CRL)を設定します。mTLSは、受信証明書のCRL検証をサポートしています。 「証明書の失効」を参照してください。
set security pki ca-profile ca_domain1 revocation-check use-crl set security pki ca-profile ca_domain1 revocation-check crl url http://<crl-server-ip>/ca_crl.crl
付録1:すべてのデバイスでの set
コマンド
set interfaces ge-0/0/2 unit 0 family inet address 192.168.2.1/24 web-authentication https set interfaces ge-0/0/1 unit 0 family inet address 10.1.1.1/24 set security zones security-zone untrust host-inbound-traffic system-services ike set security zones security-zone untrust host-inbound-traffic system-services https set security zones security-zone untrust host-inbound-traffic system-services tcp-encap set security zones security-zone untrust interfaces ge-0/0/2.0 set security zones security-zone trust interfaces ge-0/0/1.0 set access profile profile1 client user1 client-group group1 set access profile profile1 client user1 client-group group2 set access profile profile1 client user1 firewall-user password "$9$dPb4ZjHmzF/k.uO" set security policies from-zone untrust to-zone trust policy p1 match source-address any set security policies from-zone untrust to-zone trust policy p1 match destination-address any set security policies from-zone untrust to-zone trust policy p1 match application any set security policies from-zone untrust to-zone trust policy p1 match source-identity unauthenticated-user set security policies from-zone untrust to-zone trust policy p1 match source-identity unknown-user set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall access-profile profile1 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall web-redirect-to-https set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication user-firewall web-authentication-server domain1.com:8443 set security policies from-zone untrust to-zone trust policy p1 then permit firewall-authentication push-to-identity-management set security policies from-zone untrust to-zone trust policy p1 then log session-close set security policies from-zone untrust to-zone trust policy p2 match source-address any set security policies from-zone untrust to-zone trust policy p2 match destination-address any set security policies from-zone untrust to-zone trust policy p2 match application any set security policies from-zone untrust to-zone trust policy p2 match source-identity authenticated-user set security policies from-zone untrust to-zone trust policy p2 then permit set security policies from-zone untrust to-zone trust policy p2 then log session-close set security pki ca-profile ca_domain1 set security pki ca-profile ca_domain1 ca-identity ca_domain1_id set security firewall-authentication mtls-profile ma2 subject CN=test1client.* set security firewall-authentication mtls-profile-fallback-password set system services web-management https interface ge-0/0/2.0 set system services web-management https pki-local-certificate srx_domain1.com set system services web-management https virtual-domain domain1.com pki-local-certificate srx_domain1.com set system services web-management https virtual-domain domain1.com mtls port 8443 set system services web-management https virtual-domain domain1.com mtls ca-profile ca_domain1 set system services web-management https virtual-domain domain1.com mtls firewall-authentication-profile ma2 set security pki ca-profile ca_domain1 revocation-check use-crl set security pki ca-profile ca_domain1 revocation-check crl url http://<crl-server-ip>/ca_crl.crl
クライアントとサーバーの鍵証明書の生成
Goal : 1. Generate CA certificate. 2. Generate server cert for srx_domain1.com domain and sign it with CA cert and load it in SRX. 3. Generate client cert sign it with CA cert and load it in client browser. ---------------------------- 1. Generate CA certificate : ---------------------------- First you need to set up CA, and then you sign server and client certificates. Below steps will help creating the certificates in the Linux machine where openssl is installed. To create CA certificate, create a basic configuration file: $ touch openssl-ca.cnf, Then, add the following to it: ## Begining of file HOME = . RANDFILE = $ENV::HOME/.rnd #################################################################### [ ca ] default_ca = CA_default # The default ca section [ CA_default ] default_days = 365 # How long to certify for default_crl_days = 30 # How long before next CRL default_md = sha256 # Use public key default MD preserve = no # Keep passed DN ordering x509_extensions = ca_extensions # The extensions to add to the cert email_in_dn = no # Don't concat the email in the DN copy_extensions = copy # Required to copy SANs from CSR to cert #################################################################### [ req ] default_bits = 4096 default_keyfile = cakey.pem distinguished_name = ca_distinguished_name x509_extensions = ca_extensions string_mask = utf8only #################################################################### [ ca_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = US stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Maryland localityName = Locality Name (eg, city) localityName_default = MyLocality organizationName = Organization Name (eg, company) organizationName_default = Test CA, Limited organizationalUnitName = Organizational Unit (eg, division) organizationalUnitName_default = Server Research Department commonName = Common Name (e.g. server FQDN or YOUR name) commonName_default = MYCA emailAddress = Email Address emailAddress_default = test@example.com #################################################################### [ ca_extensions ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always, issuer basicConstraints = critical, CA:true keyUsage = keyCertSign, cRLSign ## End of file. Then, execute the following. The -nodes omits the password or passphrase so you can examine the certificate. $ openssl req -x509 -config openssl-ca.cnf -days 365 -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM After the command executes, cacert.pem will be your certificate for CA operations, and cakey.pem will be the private key. You can verify the certificate with the following command : $ openssl x509 -in cacert.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 11485830970703032316 (0x9f65de69ceef2ffc) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=MD, L=MyLocality, CN=Test CA/emailAddress=test@example.com Validity Not Before: Jan 24 14:24:11 2014 GMT Not After : Feb 23 14:24:11 2014 GMT Subject: C=US, ST=MD, L=MyLocality, CN=Test CA/emailAddress=test@example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: 00:b1:7f:29:be:78:02:b8:56:54:2d:2c:ec:ff:6d: ... 39:f9:1e:52:cb:8e:bf:8b:9e:a6:93:e1:22:09:8b: 59:05:9f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A X509v3 Authority Key Identifier: keyid:4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: Certificate Sign, CRL Sign Signature Algorithm: sha256WithRSAEncryption 4a:6f:1f:ac:fd:fb:1e:a4:6d:08:eb:f5:af:f6:1e:48:a5:c7: ... cd:c6:ac:30:f9:15:83:41:c1:d1:20:fa:85:e7:4f:35:8f:b5: 38:ff:fd:55:68:2c:3e:37 You can also test its purpose with following command : $ openssl x509 -purpose -in cacert.pem -inform PEM Certificate purposes: SSL client : No SSL client CA : Yes SSL server : No SSL server CA : Yes Netscape SSL server : No Netscape SSL server CA : Yes S/MIME signing : No S/MIME signing CA : Yes S/MIME encryption : No S/MIME encryption CA : Yes CRL signing : Yes CRL signing CA : Yes Any Purpose : Yes Any Purpose CA : Yes OCSP helper : Yes OCSP helper CA : Yes Time Stamp signing : No Time Stamp signing CA : Yes -----BEGIN CERTIFICATE----- MIIFpTCCA42gAwIBAgIJAJ9l3mnO7y/8MA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV ... aQUtFrV4hpmJUaQZ7ySr/RjCb4KYkQpTkOtKJOU1Ic3GrDD5FYNBwdEg+oXnTzWP tTj//VVoLD43 -----END CERTIFICATE----- Load CA cert on SRX : router# set security pki ca-profile ca_domain1 ca-identity ca_domain1_id router# run request security pki ca-certificate load ca-profile ca_domain1 filename /var/tmp/cacert.pem Load CA cert on client browser : ca_cert.pem in 'authorities' section of client browser certificates [Can also be done after step3]. ------------------------------------------------------------------------- 2. Generate server cert for srx_domain1.com domain and sign it with CA cert : ------------------------------------------------------------------------- First, touch the openssl-server.cnf (you can make one of these for user certificates also) : $ touch openssl-server.cnf Then open it, and add the following. ## Begining of file. HOME = . RANDFILE = $ENV::HOME/.rnd #################################################################### [ req ] default_bits = 2048 default_keyfile = serverkey.pem distinguished_name = server_distinguished_name req_extensions = server_req_extensions string_mask = utf8only #################################################################### [ server_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = US stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = MD localityName = Locality Name (eg, city) localityName_default = MyLocality organizationName = Organization Name (eg, company) organizationName_default = Test Server, Limited commonName = Common Name (e.g. server FQDN or YOUR name) commonName_default = srx_domain1 emailAddress = Email Address emailAddress_default = srx_domain1@srx_domain1.com #################################################################### [ server_req_extensions ] subjectKeyIdentifier = hash basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = @alternate_names nsComment = "OpenSSL Generated Certificate" #################################################################### [ alternate_names ] DNS.1 = srx_domain1.com DNS.2 = www.srx_domain1.com DNS.3 = mail.srx_domain1.com DNS.4 = ftp.srx_domain1.com # IPv4 localhost IP.1 = 127.0.0.1 # IPv6 localhost IP.2 = ::1 ## End of file. Now, create the server certificate request using below command. $ openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out servercert.csr -outform PEM After this command executes, you will have a request in servercert.csr and a private key in serverkey.pem. Verify the created certificate with below command : $ openssl req -text -noout -verify -in servercert.csr Certificate: verify OK Certificate Request: Version: 0 (0x0) Subject: C=US, ST=MD, L=MyLocality, CN=srx_domain1/emailAddress=srx_domain1@srx_domain1.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d: ... f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51: 86:e1 Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Subject Key Identifier: 1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61 X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 Subject Alternative Name: DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com Netscape Comment: OpenSSL Generated Certificate Signature Algorithm: sha256WithRSAEncryption 6d:e8:d3:85:b3:88:d4:1a:80:9e:67:0d:37:46:db:4d:9a:81: ... 76:6a:22:0a:41:45:1f:e2:d6:e4:8f:a1:ca:de:e5:69:98:88: a9:63:d0:a7 Next, you have to sign it with your CA. First, open openssl-ca.cnf and add the following two sections. #################################################################### [ signing_policy ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ signing_req ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment Second, add the following to the [ CA_default ] section of openssl-ca.cnf. I left them out earlier, because they can complicate things (they were unused at the time). Now you'll see how they are used, so hopefully they will make sense. base_dir = . certificate = $base_dir/cacert.pem # The CA certificate private_key = $base_dir/cakey.pem # The CA private key new_certs_dir = $base_dir # Location for new certs after signing database = $base_dir/index.txt # Database index file serial = $base_dir/serial.txt # The current serial number unique_subject = no # Set to 'no' to allow creation of # several certificates with same subject. Third, touch index.txt and serial.txt: $ touch index.txt $ echo '01' > serial.txt Then, perform the following: $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out servercert.pem -infiles servercert.csr You should see similar to the following: Using configuration from openssl-ca.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :ASN.1 12:'MD' localityName :ASN.1 12:'MyLocality' commonName :ASN.1 12:'Test CA' emailAddress :IA5STRING:'test@example.com' Certificate is to be certified until Oct 20 16:12:39 2016 GMT (1000 days) Sign the certificate? [y/n]:Y 1 out of 1 certificate requests certified, commit? [y/n]Y Write out database with 1 new entries Data Base Updated After the command executes, you will have a freshly minted server certificate in servercert.pem. The private key was created earlier and is available in serverkey.pem. Finally, you can inspect your freshly minted certificate with the following: $ openssl x509 -in servercert.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 9 (0x9) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=MD, L=MyLocality, CN=Test CA/emailAddress=test@srx_domain1.com Validity Not Before: Jan 24 19:07:36 2014 GMT Not After : Oct 20 19:07:36 2016 GMT Subject: C=US, ST=MD, L=MyLocality, CN=Test Server Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d: ... f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51: 86:e1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61 X509v3 Authority Key Identifier: keyid:42:15:F2:CA:9C:B1:BB:F5:4C:2C:66:27:DA:6D:2E:5F:BA:0F:C5:9E X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 Subject Alternative Name: DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com Netscape Comment: OpenSSL Generated Certificate Signature Algorithm: sha256WithRSAEncryption b1:40:f6:34:f4:38:c8:57:d4:b6:08:f7:e2:71:12:6b:0e:4a: ... 45:71:06:a9:86:b6:0f:6d:8d:e1:c5:97:8d:fd:59:43:e9:3c: 56:a5:eb:c8:7e:9f:6b:7a Please refer to openssl documentation for copy_extension, unique_subject, policy_match etc and add those the file if needed. This document describes only the basic key generation steps. Load sever certificate on SRX : router# run request security pki local-certificate load filename server_CASignedcert.pem key server_key.pem certificate-id srx_domain1 ------------------------------------------------------- 3. Generate client cert and load it in client browser : -------------------------------------------------------- Follow the steps in step-2 and generate client certificate. In case you need to connect CN of the certificate to the username from Active-directory - where user's role can be fetched, ensure that client CN is test1client@srx_domain1.com, where, Active-directory already has a user with name test1client in domain srx_domain1.com. Active-directory entry : PS C:\Users\Administrator> Get-ADUser -Filter {SamAccountName -like "*test*"} DistinguishedName : CN=test1client N,DC=srx_domain1,DC=com Enabled : True GivenName : test1Client Name : test1client N ObjectClass : user ObjectGUID : a28777ef-0023-45f1-a192-147eff664cbd SamAccountName : test1client UserPrincipalName : test1client@srx_domain1.com After the client certificate is generated in pem format, convert it in pkcs format : openssl pkcs12 -export -out client_cert.p12 -in clientcert.pem -inkey clientkey.pem -passin pass:root -passout pass:root Now, on client machine, on web browser, load client_cert.p12 in 'your certificates' section. Also, load ca_cert.pem in 'authorities' section of browser certificates.
検証
このセクションでは、この例の機能を検証するために使用できる show
コマンドの一覧を示します。
mTLS認証の検証
目的
mTLS認証を確認します。
アクション
動作モードから、 show services user-identification debug-counters | match MTLS
コマンドを入力してmTLS認証のステータスを表示します。
user@host> show services user-identification debug-counters | match MTLS MTLS Authentication Successful : 2 MTLS Authentication failed : 0 MTLS profile match failed, fallback password : 0 MTLS auth processed by userfw : 1 MTLS auth processed by fwauthd : 0 MTLS auth processed by none : 0 MTLS failure due to NULL domain : 0 MTLS PTIM failed : 0
意味
サンプル出力では、次のことが確認されます。
-
mTLS認証が正常に設定されました。
-
ユーザー ファイアウォールが mTLS 認証を正常に処理しました。