ADC-Entrust 統合を構成する
次のフローチャートは、Entrust HSMをCitrix ADCで使用するために実行する必要があるタスクを示しています。
上記のフローチャートに示すように、次のタスクを実行します。
- HSM でリモート設定プッシュを有効にします。
- Entrust HSM を使用するように ADC を設定します。
- HSM に NSIP アドレスを追加します。
- RFS の ADC へのアクセス許可を設定します。
- 起動時に
Hardserver
の自動開始を設定します。 - ADC に HSM を登録します。
- ADCにRFSの詳細を追加します。
- ADCをRFSに同期させます。
- Entrust HSM が ADC に正常に登録されていることを確認します。
- (任意)HSM RSA キーを作成します。
- Citrix ADCでエンティティを構成します。
- HSM キーを追加します。
- HSM キーを使用して証明書とキーのペアを追加します。
- 仮想サーバーを追加します。
- サーバーオブジェクトを追加します。
- サービスを追加します。
- サービスを仮想サーバーにバインドします。
- 証明書とキーのペアを仮想サーバにバインドします。
- 設定を確認します。
委託 HSM の設定
Entrust HSM 上の RFS の IP アドレスを指定して、RFS がプッシュする設定を受け入れるようにします。Entrust HSM の nShield Connect 前面パネルを使用して、次の手順を実行します。
Entrust HSM 上のリモートコンピュータの IP アドレスを指定します
- [ システム構成] > [設定ファイルオプション] > [自動プッシュを許可] に移動します。
- [ON] を選択し、設定を受け入れるコンピュータ (RFS) の IP アドレスを指定します。
HSM でのリモート設定プッシュを有効にする
Entrust HSM 上の RFS の IP アドレスを指定して、RFS がプッシュする設定を受け入れるようにします。Entrust HSM の nShield Connect 前面パネルを使用して、次の手順を実行します。
Entrust HSM 上のリモートコンピュータの IP アドレスを指定します
- [ システム構成] > [設定ファイルオプション] > [自動プッシュを許可] に移動します。
- [ON] を選択し、設定を受け入れるコンピュータ (RFS) の IP アドレスを指定します。
Entrust HSM を使用するように ADC を構成する
このドキュメントで使用されているサンプル値:
NSIPアドレス=10.217.2.43
HSM IP アドレスを委託 = 10.217.2.112
RFS IPアドレス=10.217.2.6
HSM に NSIP アドレスを追加します
通常は、nShield Connect フロントパネルを使用して、クライアントを HSM に追加します。詳細については、「nShield Connect クイックスタートガイド」を参照してください。
または、RFS を使用して、ADC をクライアントとして HSM に追加します。ADCを追加するには、RFSのHSM構成にNSIPアドレスを追加してから、構成をHSMにプッシュする必要があります。構成をプッシュする前に、HSMの電子シリアル番号(ESN)を知っている必要があります。
HSM の ESN を取得するには、RFS で次のコマンドを実行します。
root@ns# /opt/nfast/bin/anonkneti <Entrust HSM IP address>
<!--NeedCopy-->
例:
root@ns# /opt/nfast/bin/anonkneti 10.217.2.112
BD17-C807-58D9 5e30a698f7bab3b2068ca90a9488dc4e6c78d822
<!--NeedCopy-->
ESN番号はBD17-C807-58D9です。
ESN 番号を確認したら、vi などのエディタを使用して RFS の HSM 設定ファイルを編集します。
vi /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config
<!--NeedCopy-->
hs_clients
セクションに、次のエントリを追加します。
# Amount of data in bytes to encrypt with a session key before session key# renegotiation, or 0 for unlimitied. (default=1024\*1024\*8b=8Mb).
# datalimit=INT
addr=10.217.2.43
clientperm=unpriv
keyhash=0000000000000000000000000000000000000000
esn=
timelimit=86400
datalimit=8388608
-----
<!--NeedCopy-->
注: 1 つ以上のハイフンを区切り文字として含めて、同じセクションに複数のエントリを追加します。
設定を HSM にプッシュするには、RFS で次のコマンドを実行します。
/opt/nfast/bin/cfg-pushnethsm --address=<Entrust HSM IP address> --force /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config
<!--NeedCopy-->
例:
/opt/nfast/bin/cfg-pushnethsm --address=10.217.2.112 --force
/opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config
<!--NeedCopy-->
RFS の ADC のアクセス許可を設定します
RFS で ADC のアクセス許可を設定するには、RFS で次のコマンドを実行します。
/opt/nfast/bin/rfs-setup --force -g --write-noauth <NetScaler IP address>
<!--NeedCopy-->
例:
[root@localhost bin]# /opt/nfast/bin/rfs-setup --force -g --write-noauth 10.217.2.43
Adding read-only remote_file_system entries
Ensuring the directory /opt/nfast/kmdata/local exists
Adding new writable remote_file_system entries
Ensuring the directory /opt/nfast/kmdata/local/sync-store exists
Saving the new config file and configuring the hardserver
Done
<!--NeedCopy-->
ADC がポート 9004 を使用して RFS と Entrust HSM の両方に到達できることを確認します。
起動時に hardserver
の自動開始を構成する
ファイルを作成し、アプライアンスを再起動します。これで、アプライアンスを再起動するたびに、このファイルが見つかると、 Hardserver
が自動的に開始されます。
シェルプロンプトで、次のように入力します。
touch /var/opt/nfast/bin/thales_hsm_is_enrolled
<!--NeedCopy-->
コマンドプロンプトで入力します。
reboot
<!--NeedCopy-->
ADC に HSM を登録する
ディレクトリを /var/opt/nfast/bin に変更します。
HSM の詳細を ADC 構成に追加するには、ADC で次のコマンドを実行します。
nethsmenroll --force <Thales_nShield_Connect_ip_address> $(anonkneti <Thales_nShield_Connect_ip_address>)
例:
root@ns# ./nethsmenroll --force 10.217.2.112 $(anonkneti 10.217.2.112)
OK configuring hardserver's nethsm imports
<!--NeedCopy-->
この手順では、/var/opt/nfast/kmdata/config/configファイルのnethsm_imports
セクションにある行 # ntoken_esn=ESN の後に次のエントリを追加します。
…
local_module=0
remote_ip=10.217.2.112
remote_port=9004
remote_esn=BD17-C807-58D9
keyhash=5e30a698f7bab3b2068ca90a9488dc4e6c78d822
timelimit=86400
datalimit=8388608
privileged=0
privileged_use_high_port=0
ntoken_esn=
<!--NeedCopy-->
ディレクトリを/var/opt/nfast/binに変更してADCで次のコマンドを実行します。
touch "thales_hsm_is_enrolled"
<!--NeedCopy-->
注: ADCに登録されているHSMを削除するには、次のように入力します。
./nethsmenroll –-remove <NETHSM-IP>
<!--NeedCopy-->
ADCにRFSの詳細を追加する
RFSの詳細を追加するには、ディレクトリを/var/opt/nfast/bin/に変更します。 次に、次のコマンドを実行します。
./rfs-sync --no-authenticate --setup <rfs_ip_address>
<!--NeedCopy-->
例:
./rfs-sync --no-authenticate --setup 10.217.2.6
No current RFS synchronization configuration.
Configuration successfully written; new config details:
Using RFS at 10.217.2.6:9004: not authenticating.
<!--NeedCopy-->
この手順では、/var/opt/nfast/kmdata/コンフィグ/コンフィグ/コンフィグファイルの rfs_sync_client
セクションの # local_esn=ESN 行の後に次のエントリを追加します。
……
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=
<!--NeedCopy-->
注: ADC に登録されている RFS を削除するには、次のように入力します。
./rfs_sync –remove
<!--NeedCopy-->
ADCをRFSに同期させる
すべてのファイルを同期するには、ディレクトリを次のように変更します。 /var/opt/nfast/bin 次に、ADCで次のコマンドを実行します。
./rfs-sync –-update
<!--NeedCopy-->
このコマンドは、RFS の /opt/nfast/kmdata/local ディレクトリからすべてのワールドファイル、モジュールファイル、キーファイルをフェッチし、ADC の /var/opt/nfast/kmdata/local ディレクトリに格納します。ワールドファイル、module_XXXX_XXXX_XXXXファイル(XXXX_XXXX_XXXXは登録されているHSMのESN)、および必要なRSAキーと証明書ファイルのみを手動でコピーすることをお勧めします。です。
Entrust HSM が ADC に正常に登録されていることを確認します
ADC を RFS に同期したら、次の操作を行います。
- ローカル
Hardserver
が稼働していることを確認します。(サーバーの実行を委託)。 - 構成された HSM の状態を取得し、n_modules(モジュール数)フィールドと km 情報フィールドの値がゼロ以外であることを確認します。
- HSM が正しく登録され、ADC が使用できること(0x2 Usable 状態)を確認します。
-
sigtest
を使用した負荷テストは正しく実行されます。
ディレクトリを/var/opt/nfast/bin に変更し、シェルプロンプトで次のコマンドを実行します。
root@ns# ./chkserv root@ns# ./nfkminfo root@ns# ./sigtest
<!--NeedCopy-->
例については、 付録を参照してください 。
HSM RSA キーの作成
HSM キーとしてサポートされているのは RSA キーのみです。
注: RFS の/opt/nfast/kmdata/local
フォルダに既にキーが存在する場合は、この手順をスキップしてください。
RSA キー、自己署名証明書、および証明書署名要求 (CSR) を作成します。CSR を認証局に送信して、サーバ証明書を取得します。
次の例では、次のファイルが作成されます。
- RSA キーを埋め込む:key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
- 自己署名証明書:example_selfcert
- 証明書署名リクエスト:example_req
注:generatekey
コマンドは、厳密なFIPS 140-2 Level 3 Security Worldでサポートされています。キーや OCS の作成など、多くの操作を制御するには、管理者カードセット (ACS) またはオペレータカードセット (OCS) が必要です。このgeneratekey
コマンドを実行すると、ACS カードまたは OCS カードを挿入するように求められます。厳格なFIPS 140-2 Level 3 Security Worldの詳細については、nShield Connect ユーザーガイドを参照してください。
次の例では、Level-2 Security Worldを使用します。この例では、コマンドは太字です。
例:
[root@localhost bin]# ./generatekey embed
size: Key size? (bits, minimum 1024) [1024] > 2048
OPTIONAL: pubexp: Public exponent for RSA key (hex)? []
>
embedsavefile: Filename to write key to? []
> example
plainname: Key name? [] > example
x509country: Country code? [] > US
x509province: State or province? [] > CA
x509locality: City or locality? [] > Santa Clara
x509org: Organisation? [] > Citrix
x509orgunit: Organisation unit? [] > NS
x509dnscommon: Domain name? [] > www.citrix.com
x509email: Email address? [] > example@citrix.com
nvram: Blob in NVRAM (needs ACS)? (yes/no) [no] >
digest: Digest to sign cert req with? (md5, sha1, sha256, sha384, sha512)
[default sha1] > sha512
key generation parameters:
operation Operation to perform generate
application Application embed
verify Verify security of key yes
type Key type RSA
size Key size 2048
pubexp Public exponent for RSA key (hex)
embedsavefile Filename to write key to example
plainname Key name example
x509country Country code US
x509province State or province CA
x509locality City or locality Santa Clara
x509org Organisation Citrix
x509orgunit Organisation unit NS
x509dnscommon Domain name www.citrix.com
x509email Email address example@citrix.com
nvram Blob in NVRAM (needs ACS) no
digest Digest to sign cert req with sha512
Key successfully generated.
Path to key: /opt/nfast/kmdata/local/key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
You have new mail in /var/spool/mail/root
<!--NeedCopy-->
結果:
CSR (例_req)、自己署名証明書 (例_selfcert)、および埋め込み形式のアプリケーションキートークンファイル (/opt/nfast/kmdata/ローカル/キー埋め込み_2ed5428ae159bdbd63f25292c7113ec2c78) を作成しました。
ADC は単純な形式のキーのみをサポートしているため、埋め込みキーを単純なキーに変換する必要があります。
埋め込みキーを単純なキーに変換するには、RFS で次のコマンドを実行します。
[root@localhost bin]# ./generatekey -r simple
from-application: Source application? (embed, simple) [embed] > embed
from-ident: Source key identifier? (c6410ca00af7e394157518cb53b2db46ff18ce29,
2ed5428aaeae1e159bdbd63f25292c7113ec2c78)
[default c6410ca00af7e394157518cb53b2db46ff18ce29]
> 2ed5428aaeae1e159bdbd63f25292c7113ec2c78
ident: Key identifier? [] > examplersa2048key
plainname: Key name? [] > examplersa2048key
key generation parameters:
operation Operation to perform retarget
application Application simple
verify Verify security of key yes
from-application Source application embed
from-ident Source key identifier 2ed5428aaeae1e159bdbd63f25292c7113ec2c78
ident Key identifier examplersa2048key
plainname Key name examplersa2048key
Key successfully retargetted.
Path to key: /opt/nfast/kmdata/local/key_simple_examplersa2048key
<!--NeedCopy-->
重要:
ソースキー識別子の入力を求められたら、埋め込みキーとして「 2ed5428aae1e159bd63f25292c7113ec2c78 」と入力します。
結果:
プレフィックス key_simple を持つキー (たとえば、key_simple_examplersa2048key) が作成されます。
注: examplersa2048keyはキー識別子(ID)であり、ADCではHSMキー名と呼ばれます。キー識別子は一意です。すべての単純なファイルには、プレフィックスkey_simple があります。
ADC でエンティティを構成する
ADC がトラフィックを処理する前に、次のことを行う必要があります。
- 機能を有効にします。
- サブネット IP(SNIP)アドレスを追加します。
- ADCにHSMキーを追加します。
- HSM キーを使用して証明書とキーのペアを追加します。
- 仮想サーバーを追加します。
- サーバーオブジェクトを追加します。
- サービスを追加します。
- サービスを仮想サーバーにバインドします。
- 証明書とキーのペアを仮想サーバにバインドします。
- 設定を確認します。
ADCの機能を有効にする
機能を有効にする前に、ADC にライセンスが存在している必要があります。
CLI を使用した機能の有効化
コマンドプロンプトで、次のコマンドを実行します。
enable feature lb
enable feature ssl
<!--NeedCopy-->
GUI を使用した機能の有効化
System > Settingsに移動してModes and FeaturesグループでConfigure basic featuresを選択し、SSL Offloadingを選択します。
サブネット IP アドレスの追加
サブネット IP アドレスの詳細については、「 サブネット IP アドレスの構成」を参照してください。
CLI を使用して SNIP アドレスを追加し、設定を確認します
コマンドプロンプトで、次のコマンドを実行します。
add ns ip <IPAddress> <netmask> -type SNIP
show ns ip
<!--NeedCopy-->
例:
add ns ip 192.168.17.253 255.255.248.0 -type SNIP
Done
show ns ip
Ipaddress Traffic Domain Type Mode Arp Icmp Vserver State
--------- -------------- ---- ---- --- ---- ------- ------
1) 192.168.17.251 0 NetScaler IP Active Enabled Enabled NA Enabled
2) 192.168.17.252 0 VIP Active Enabled Enabled Enabled Enabled
3) 192.168.17.253 0 SNIP Active Enabled Enabled NA Enabled
Done
<!--NeedCopy-->
GUIを使用してSNIPアドレスを追加し、構成を確認します
[システム] > [ネットワーク] > [IP] に移動し、IP アドレスを追加して、[IP タイプ] を [サブネット IP] として選択します。
HSM キーと証明書を ADC にコピーします
セキュアなファイル転送ユーティリティを使用して、キー (key_simple_examplersa2048key) を/var/opt/nfast/kmdata/local
ローカルフォルダーにコピーし、証明書 (example_selfcert) を ADC の/nsconfig/ssl
フォルダーに安全にコピーします。
ADCにキーを追加します
すべてのキーは、キー単純な接頭辞を持っています。ADCにキーを追加する場合は、HSMキー名としてidentを使用します。たとえば、追加したキーが key_simple_XXXX の場合、HSM キー名は XXXX になります。
重要:
- HSM キー名は、埋め込みキーを単純なキー形式に変換したときに指定した ident と同じである必要があります。
- キーは、ADC の
/var/opt/nfast/kmdata/local/
ディレクトリに存在する必要があります。
CLI を使用した HSM キーの追加
シェルプロンプトで、次のコマンドを実行します。
add ssl hsmKey <hsmKeyName> -key <string>
<!--NeedCopy-->
例:
add ssl hsmKey examplersa2048key –key key_simple_examplersa2048key
Done
<!--NeedCopy-->
GUI を使用して HSM キーを追加する
[ トラフィック管理] > [SSL] > [HSM] に移動し、HSM キーを追加します。
ADCに証明書とキーのペアを追加する
証明書とキーのペアについては、「 証明書とキーのペアの追加または更新」を参照してください。
CLI を使用した証明書とキーのペアの追加
コマンドプロンプトで、次のコマンドを実行します。
add ssl certKey <certkeyName> -cert <string> -hsmKey <string>
<!--NeedCopy-->
例:
add ssl certKey key22 -cert example_selfcert -hsmKey examplersa2048key
Done
<!--NeedCopy-->
GUI を使用した証明書とキーのペアの追加
Traffic Management > SSL > Certificates証明書キーペアを追加します。
仮想サーバーの追加
仮想サーバーの詳細については、「 SSL 仮想サーバー構成」を参照してください。
CLI を使用した SSL ベースの仮想サーバーの構成
コマンドプロンプトで、次のコマンドを実行します。
add lb vserver <name> <serviceType> <IPAddress> <port>
<!--NeedCopy-->
例:
add lb vserver v1 SSL 192.168.17.252 443
<!--NeedCopy-->
GUI を使用して SSL ベースの仮想サーバーを構成する
[トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを作成し、プロトコルを SSL として指定します。
サーバーオブジェクトの追加
ADCにサーバーオブジェクトを追加する前に、バックエンドサーバーが作成されていることを確認してください。次の例では、Linux システムで組み込みの Python HTTP サーバーモジュールを使用しています。
例:
%python –m SimpleHTTPServer 80
<!--NeedCopy-->
CLI を使用したサーバーオブジェクトの追加
コマンドプロンプトで、次のコマンドを実行します。
add server <name> <IPAddress>
<!--NeedCopy-->
例:
add server s1 192.168.17.246
<!--NeedCopy-->
GUI を使用したサーバーオブジェクトの追加
Traffic Management > Load Balancing > Serversに移動してサーバーを追加します。
サービスを追加する
詳細については、「 サービスの設定」を参照してください。
CLI を使用したサービスの設定
コマンドプロンプトで、次のコマンドを実行します。
add service <name> <serverName> <serviceType> <port>
<!--NeedCopy-->
例:
add service sr1 s1 HTTP 80
<!--NeedCopy-->
GUI を使用したサービスの構成
[ トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを作成します。
サービスを仮想サーバーにバインドする
詳細については、「 SSL 仮想サーバーへのサービスのバインド」を参照してください。
CLIを使用してサービスを仮想サーバーにバインドします
コマンドプロンプトで、次のコマンドを実行します。
bind lb vserver <name> <serviceName>
<!--NeedCopy-->
例:
bind lb vserver v1 sr1
<!--NeedCopy-->
GUIを使用してサービスを仮想サーバーにバインドする
- Traffic Management > Load Balancing > Virtual Serversに移動します。
- 仮想サーバを開き、[Services] ペインをクリックして、サービスを仮想サーバにバインドします。
証明書とキーのペアを ADC の仮想サーバーにバインドします
詳細については、 SSL 仮想サーバーに証明書とキーのペアをバインドするを参照してください。
CLI を使用して証明書とキーのペアを仮想サーバーにバインドする
コマンドプロンプトで、次のコマンドを実行します。
bind ssl vserver <vServerName> -certkeyName <string>
<!--NeedCopy-->
例:
bind ssl vserver v1 -certkeyName key22
Warning: Current certificate replaces the previous binding
<!--NeedCopy-->
GUI を使用して証明書とキーのペアを仮想サーバーにバインドする
- Traffic Management > Load Balancing > Virtual Serversに移動します。
- SSL 仮想サーバーを開き、[詳細設定]で [SSL 証明書] をクリックします。
- サーバー証明書を仮想サーバーにバインドします。
構成を確認します
CLI を使用して設定を表示するには、次の手順を実行します。
コマンドプロンプトで、次のコマンドを実行します。
show lb vserver <name>
show ssl vserver <vServerName>
<!--NeedCopy-->
例:
show lb vserver v1
v1 (192.168.17.252:443) - SSL Type: ADDRESS
State: UP
Last state change was at Wed Oct 29 03:11:11 2014
Time since last state change: 0 days, 00:01:25.220
Effective State: UP
Client Idle Timeout: 180 sec
Down state flush: ENABLED
Disable Primary Vserver On Down : DISABLED
Appflow logging: ENABLED
No. of Bound Services : 1 (Total) 1 (Active)
Configured Method: LEASTCONNECTION
Current Method: Round Robin, Reason: Bound service's state changed to UP
Mode: IP
Persistence: NONE
Vserver IP and Port insertion: OFF
Push: DISABLED Push VServer:
Push Multi Clients: NO
Push Label Rule: none
L2Conn: OFF
Skip Persistency: None
IcmpResponse: PASSIVE
RHIstate: PASSIVE
New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0
Mac mode Retain Vlan: DISABLED
DBS_LB: DISABLED
Process Local: DISABLED
Traffic Domain: 0
1) sr1 (192.168.17.246: 80) - HTTP State: UP Weight: 1
Done
<!--NeedCopy-->
sh ssl vserver v1
Advanced SSL configuration for VServer v1:
DH: DISABLED
Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: key22 Server Certificate
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
GUI を使用して設定を表示するには、次の手順を実行します。
Traffic Management > Load Balancing > Virtual Serversに移動してSSL仮想サーバーをダブルクリックして開いて、構成を表示します。