ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのネットワークのセキュリティー保護 Oracle Solaris 11.1 Information Library (日本語) |
3. Web サーバーと Secure Sockets Layer プロトコル
4. Oracle Solaris の IP フィルタ (概要)
IPsec で 2 つのシステム間のトラフィックを保護するには
IPsec を使って Web 以外のトラフィックから Web サーバーを保護する方法
トンネルモードを使用して VPN を IPsec で保護する例
IPsec で VPN を保護するタスクのためのネットワークトポロジの説明
次のタスクマップでは、ユーザーが IPsec を管理するときに使用する可能性のあるタスクを示します。
|
次の手順では、「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順 4 で使用するキーイング素材を提供します。partym と enigma という 2 つのシステムの鍵を生成しようとしています。一方のシステムで鍵を生成してから、このシステムの鍵を両方のシステムで使用します。
始める前に
非大域ゾーンのキーイング素材を手動で管理するには、大域ゾーン内にいる必要があります。
root 役割になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
16 進のアウトバウンドトラフィックと、同じく 16 進のインバウンドトラフィックには、それぞれ 3 種類の乱数が必要です。つまり、1 台のシステムで次の数値を生成する必要があります。
spi キーワードの値として、2 つの 16 進数の乱数。1 つはアウトバウンドトラフィック用です。もう 1 つはインバウンドトラフィック用です。それぞれの乱数の最大桁数は 8 桁です。
AH の SHA-2 アルゴリズム用の 2 つの 16 進数の乱数。各数字の長さは 512 文字でなければいけません。1 つは dst enigma 用です。もう 1 つは dst partym 用です。
ESP の 3DES アルゴリズム用の 2 つの 16 進数の乱数。各数字の長さは 168 文字でなければいけません。1 つは dst enigma 用です。もう 1 つは dst partym 用です。
乱数発生関数がすでにある場合は、それを使用してください。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「pktool コマンドを使用して対称鍵を生成する方法」とそのセクションの IPsec の例に従って、pktool コマンドを使用します。
# ipseckeys - This file takes the file format documented in # ipseckey(1m). # Note that naming services might not be available when this file # loads, just like ipsecinit.conf. # # Backslashes indicate command continuation. # # for outbound packets on enigma add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg 3des \ auth_alg sha512 \ encrkey d41fb74470271826a8e7a80d343cc5aa... \ authkey e896f8df7f78d6cab36c94ccf293f031... # # for inbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg 3des \ auth_alg sha512 \ encrkey dd325c5c137fb4739a55c9b3a1747baa... \ authkey ad9ced7ad5f255c9a8605fba5eb4d2fd...
# chmod 400 /etc/inet/secret/ipseckeys
# ipseckey -c -f /etc/inet/secret/ipseckeys
注 - 両システムの鍵情報は同じでなければなりません。
# svcadm enable svc:/network/ipsec/manual-key:default
# svcadm refresh ipsec/manual-key
次の手順
IPsec ポリシーの設定がまだ完了していない場合、IPsec の手順に戻って IPsec ポリシーを有効にするかリフレッシュしてください。
Oracle Solaris の役割によるアクセス制御 (RBAC) 機能でシステムを管理している場合は、ネットワーク管理の役割またはネットワークセキュリティーの役割を提供するためにこの手順を使用します。
始める前に
役割を作成して割り当てるには、root 役割になる必要があります。標準ユーザーは、使用可能な権利プロファイルの内容を一覧表示できます。
% getent prof_attr | grep Network | more Console User:RO::Manage System as the Console User... Network Management:RO::Manage the host and network configuration... Network Autoconf Admin:RO::Manage Network Auto-Magic configuration via nwamd... Network Autoconf User:RO::Network Auto-Magic User... Network ILB:RO::Manage ILB configuration via ilbadm... Network LLDP:RO::Manage LLDP agents via lldpadm... Network VRRP:RO::Manage VRRP instances... Network Observability:RO::Allow access to observability devices... Network Security:RO::Manage network and host security...:profiles=Network Wifi Security,Network Link Security,Network IPsec Management... Network Wifi Management:RO::Manage wifi network configuration... Network Wifi Security:RO::Manage wifi network security... Network Link Security:RO::Manage network link security... Network IPsec Management:RO::Manage IPsec and IKE... System Administrator:RO::Can perform most non-security administrative tasks: profiles=...Network Management... Information Security:RO::Maintains MAC and DAC security policies: profiles=...Network Security...
Network Management プロファイルは、System Administrator プロファイルを補完するプロファイルです。System Administrator 権利プロファイルを役割に含めると、その役割は Network Management プロファイルでコマンドを実行できます。
% getent exec_attr | grep "Network Management" ... Network Management:solaris:cmd:::/sbin/dlstat:euid=dladm;egid=sys ... Network Management:solaris:cmd:::/usr/sbin/snoop:privs=net_observability Network Management:solaris:cmd:::/usr/sbin/spray:euid=0 ...
決定には、手順 1 の権利プロファイルの定義を参考にしてください。
すべてのネットワークセキュリティーを扱う役割を作成する場合は、Network Security 権利プロファイルを使用します。
IPsec と IKE だけを扱う役割を作成するには、Network IPsec Management 権利プロファイルを使用します。
Network Management プロファイルに加え、Network Security または Network IPsec Management 権利プロファイルを持つ役割は、ipadm、ipseckey、snoop コマンドなどを適切な特権で実行できます。
役割の作成、役割のユーザーへの割り当て、ネームサービスでの変更の登録については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「RBAC の初期構成 (タスクマップ)」を参照してください。
例 7-4 ネットワークセキュリティーの責任を役割に振り分ける
この例では、管理者がネットワークセキュリティーの責任を 2 つの役割に振り分けます。一方の役割は Wifi とリンクのセキュリティーを管理し、もう一方の役割は IPsec と IKE を管理します。各役割には、シフトごとに 1 人、合計 3 人を割り当てます。
管理者によって次のように役割が作成されます。
最初の役割には LinkWifi という名前を付けます。
この役割には Network Wifi、Network Link Security、および Network Management 権利プロファイルを割り当てます。
その後、該当するユーザーにこの LinkWifi 役割を割り当てます。
2 番目の役割には IPsec Administrator という名前を付けます。
この役割には Network IPsec Management および Network Management 権利プロファイルを割り当てます。
その後、該当するユーザーにこの IPsec Administrator 役割を割り当てます。
次の手順では、IPsec の管理、IKE の管理、および手動での鍵管理に SMF サービスを使用する代表的な方法について説明します。デフォルトでは、policy サービスと ipsecalgs サービスは有効になっています。また、デフォルトでは、ike サービスと manual-key サービスは無効になっています。
始める前に
root 役割になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svcadm refresh svc:/network/ipsec/policy
# svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf # svccfg -s policy listprop config/config_file config/config_file astring /etc/inet/MyIpsecinit.conf # svcadm refresh svc:/network/ipsec/policy # svcadm restart svc:/network/ipsec/policy
# svcadm enable svc:/network/ipsec/ike
# svcadm restart svc:/network/ipsec/ike:default
# svccfg -s ike setprop config/admin_privilege = astring: "modkeys" # svccfg -s ike listprop config/admin_privilege config/admin_privilege astring modkeys # svcadm refresh svc:/network/ipsec/ike # svcadm restart svc:/network/ipsec/ike
# svcadm disable svc:/network/ipsec/ike
# svcadm enable svc:/network/ipsec/manual-key:default
# svcadm refresh manual-key
# svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile # svccfg -s manual-key listprop config/config_file config/config_file astring /etc/inet/secret/MyIpseckeyfile # svcadm refresh svc:/network/ipsec/manual-key # svcadm restart svc:/network/ipsec/manual-key
# svcadm disable svc:/network/ipsec/manual-key
# svcadm refresh svc:/network/ipsec/ipsecalgs
注意事項
サービスのステータスを調べるには、svcs service コマンドを使用します。サービスが maintenance (保守) モードになっている場合は、svcs -x service コマンドの出力に表示されるデバッグのヒントに従ってください。
パケットが保護されていることを確認するには、snoop コマンドで接続をテストします。snoop 出力に表示される接頭辞は、次のとおりです。
AH: 接頭辞は、AH がヘッダーを保護していることを示します。AH: が表示されるのは、auth_alg を使ってトラフィックを保護している場合です。
ESP: 接頭辞は、暗号化されたデータが送信されていることを示します。ESP: が表示されるのは、encr_auth_alg か encr_alg を使ってトラフィックを保護している場合です。
始める前に
さらに、接続をテストするためには、両方のシステムにアクセスできなければなりません。
snoop の出力を作成するには、root 役割になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
% su - Password: Type root password #
partym の端末ウィンドウで、enigma システムからパケットをスヌープします。
# snoop -d net0 -v enigma Using device /dev/bge (promiscuous mode)
別の端末ウィンドウで、enigma システムにリモートからログインします。パスワードを入力します。次に、root 役割になり、パケットを enigma システムから partym システムに送信します。パケットは、snoop -v enigma コマンドで取り込む必要があります。
% ssh enigma Password: Type your password % su - Password: Type root password # ping partym
partym システムで、冒頭の IP ヘッダー情報のあとに AH と ESP 情報が含まれている出力を確認します。次のような AH と ESP の情報は、パケットが保護されていることを示します。
IP: Time to live = 64 seconds/hops IP: Protocol = 51 (AH) IP: Header checksum = 4e0e IP: Source address = 192.168.116.16, enigma IP: Destination address = 192.168.13.213, partym IP: No options IP: AH: ----- Authentication Header ----- AH: AH: Next header = 50 (ESP) AH: AH length = 4 (24 bytes) AH: <Reserved field = 0x0> AH: SPI = 0xb3a8d714 AH: Replay = 52 AH: ICV = c653901433ef5a7d77c76eaa AH: ESP: ----- Encapsulating Security Payload ----- ESP: ESP: SPI = 0xd4f40a61 ESP: Replay = 52 ESP: ....ENCRYPTED DATA.... ETHER: ----- Ether Header ----- ...