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 ファイアウォール ユーザーをホスト 2 に対して認証します。
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 とオープン SSL を実行する 2 台の PC。1台のPCはクライアントとして機能し、もう1台のPCはHTTPSサーバーとして機能します。2台のPCは、キーファイルの作成とトラフィックの送信に使用されます。
SRX5400、SRX5600、および SRX5800 デバイス向けの Junos OS リリース 12.1X44-D10 以降、vSRX 仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、および SRX1500 サービス ゲートウェイ向けの Junos OS リリース 15.1X49-D40 以降。
Junos OSリリース12.1X44-D10およびJunos OSリリース17.3R1以降、HTTPSベースの認証がSRX5400、SRX5600、およびSRX5800デバイスに導入されています。
Junos OSリリース15.1X49-D40およびJunos OSリリース17.3R1以降、HTTPSベースの認証がvSRX仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、およびSRX1500サービスゲートウェイに導入されています。
始める前に:
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 トラフィックを使用してパススルー認証をトリガーします。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
を入力します。
検証
設定の確認
目的
構成が正しいことを確認します。
アクション
操作モードから、ID 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
コマンドは、指定された ID のファイアウォール認証ユーザー情報を表示します。出力の [認証方法] フィールドに [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 デバイス向けの Junos OS リリース 12.1X44-D10 以降、vSRX 仮想ファイアウォール、SRX300、SRX320、SRX340、SRX345、SRX380、SRX550M、および SRX1500 サービス ゲートウェイ向けの Junos OS リリース 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
プロシージャ
手順
ウェブ認証をトリガーするよう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 を使用して、ファイアウォール認証ユーザー情報を表示します。出力で authentication method パラメーターに Web 認証が表示され、認証状態パラメーターに [成功] と表示されている場合、構成は正しいです。
非認証ブラウザ用のキャプティブポータルの設定
概要 認証されていないブラウザ用にキャプティブポータルを設定する方法について説明します。
ここでは、認証専用ブラウザと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-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-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 つ以上のクライアントをプロファイル内に追加します。クライアント名はユーザー名を表します。各ユーザーのパスワードをプレーンテキスト形式で入力します。
- アクセスプロファイルを、パススルー認証方法または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 を追加し、これらのユーザーをクライアントグループ 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
パスワードを持つ 2 人のユーザー CLIENT-1 と CLIENT-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
ウェブ認証にはセカンダリ IP アドレスを使用します。この例では、ウェブ認証に 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
パスワードを持つ 2 人のユーザー CLIENT-1 と CLIENT-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"
-
動的アプリケーションによるセキュリティポリシーを作成します。
[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 に示すように設定されたバナーが表示され、サーバーにアクセスできるようになります。
検証
ファイアウォールユーザーの監視
目的
ファイアウォール認証ユーザー履歴を表示して、ファイアウォールユーザーの詳細を確認します。
アクション
動作モードから、次の show コマンドを入力します。
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
意味
コマンド出力は、ログインしているユーザー、使用された認証方法、適用されたプロファイル、ログイン試行などの詳細を提供します。
セキュリティポリシー利用の詳細の確認
目的
受信したヒット数に応じたセキュリティポリシーのユーティリティレートを表示します。
アクション
動作モードから、次の show コマンドを入力します。
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サーバーに保存できます。ポリシーで認証ユーザーグループと外部認証サーバーを参照すると、ポリシーに一致するトラフィックによって認証チェックがトリガーされます。
この例では、アクセス プロファイル Profile-1 が外部認証用にどのように設定されているかを示しています。2 つの RADIUS サーバーと 1 つの LDAP サーバーがアクセス プロファイルに設定されます。ただし、認証の順序ではRADIUSサーバーのみが指定されているため、RADIUSサーバー認証が失敗した場合、ファイアウォールユーザーは認証に失敗します。ローカル データベースはアクセスされません。
ファイアウォールクライアントがRADIUSサーバーによって認証される場合、RADIUSサーバーから返されるグループメンバーシップVSAには、RADIUSサーバー設定またはアクセスプロファイルProfile-1にアルファ、ベータ、またはガンマクライアントグループが含まれている必要があります。アクセスプロファイルは、ユーザーのユーザー名とパスワードを保存するか、そのような情報が保存されている外部認証サーバーを指します。
構成
プロシージャ
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
Client1-4 ファイアウォール ユーザーを設定し、Client-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エディターの使用を参照してください。
プロファイル内のクライアントグループのローカルユーザーを設定するには:
ファイアウォール ユーザー プロファイル Manager を設定し、クライアント グループを割り当てます。
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 認証に成功しました」です。認証に失敗すると、新しいメッセージに「認証に失敗しました」と表示されます。
構成
プロシージャ
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: すべてのデバイスでコマンドを設定する
- クライアントとサーバーのキー証明書の生成
- 検証
前提条件の例
ハードウェア要件 |
ジュニパーネットワークス® SRXシリーズファイアウォールまたはジュニパーネットワーク®スvSRX仮想ファイアウォール(vSRX3.0) |
ソフトウェア要件 |
Junos OS リリース 23.4R1 以降 |
始める前に
利点 |
mTLS 認証を使用すると、次のことができます。
|
もっと知る |
アイデンティティ認識ファイアウォール |
詳細情報 |
ファイアウォールユーザー認証 |
機能概要
このセクションでは、この例の構成コンポーネントの概要を示します。
使用技術 |
mTLS 認証を確立するには、以下を構成する必要があります。
|
一次検証タスク |
mTLS 認証を確認します。 |
トポロジの概要
この例では、クライアントはファイアウォールを介してサーバーに接続します。mTLS 認証では、クライアントとサーバーは、暗号化された TLS 接続を介して情報を交換することにより、互いの証明書を検証します。
ホスト名 |
役割 |
機能 |
---|---|---|
クライアント |
サービス依頼者 |
SRXシリーズファイアウォールを介してサーバーとのセッションを開始します。 |
SRX シリーズ ファイアウォール |
ファイアウォール |
クライアントのパケットを暗号化および復号化します。 |
サーバー |
サーバー |
クライアントの要求に応答します。 |
アクティブディレクトリ |
アイデンティティ・ソース |
アイデンティティソースとしてのActive Directory は、SRXシリーズファイアウォール、vSRX仮想ファイアウォール、ジュニパーネットワークス® cSRXコンテナファイアウォール、またはジュニパーネットワークス® NFXシリーズネットワークサービスプラットフォームとMicrosoft Windows Active Directoryの統合を定義します。詳細については、 アイデンティティ・ソースとしてのアクティブ・ディレクトリを参照してください。 |
ジムス |
Windows サービス アプリケーション |
JIMS(Juniper® Identity Management Service)は、アクティブディレクトリドメインからユーザー、デバイス、グループの情報を収集および管理するために設計された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認証を正常に処理しました。