セキュリティー保護された Web サーバーでは、Web クライアントであれば Web サービスと通信できます。セキュリティー保護された Web サーバーでは、Web トラフィック以外のトラフィックは、セキュリティー検査を通る必要があります。次の手順には、Web トラフィックの検査省略手順が含まれています。さらに、この Web サーバーでは、セキュリティー保護されていない DNS クライアント要求を出すことができます。その他のすべてのトラフィックでは、AES と SHA-1 アルゴリズムによる ESP が必要です。
IPsec ポリシーの構成は大域ゾーンで行う必要があります。排他的 IP ゾーンについては、非大域ゾーンで IPsec ポリシーを構成します。「IPsec で 2 つのシステム間のトラフィックを保護するには」を完了して、次の条件が成立しています。
2 つのシステム間の通信は IPsec で保護されています。
鍵情報は手動または IKE によって生成されます。
パケットが保護されていることを確認してあります。
システムコンソール上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
セキュリティーポリシー検査を省略するサービスを指定します。
Web サーバーの場合、TCP ポート 80 (HTTP) と 443 (保護 HTTP) が該当します。Web サーバーが DNS 名検査をするときは、TCP と UDP の両方にポート 53 も組み込む必要がある場合もあります。
Web サーバーの IPsec ポリシーを作成し、有効にします。
手順 12 はすべての Solaris リリースで省略可能です。
Web サーバーのポリシーを IPsec ポリシーファイルに追加します。
/etc/inet/ipsecinit.conf ファイルに次の行を追加します。
# Web traffic that web server should bypass. {lport 80 ulp tcp dir both} bypass {} {lport 443 ulp tcp dir both} bypass {} # Outbound DNS lookups should also be bypassed. {rport 53 dir both} bypass {} # Require all other traffic to use ESP with AES and SHA-1. # Use a unique SA for outbound traffic from the port {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
これで、保護トラフィックだけがシステムへのアクセスを許可されます。ただし、手順 4 で説明した、検査を省略するトラフィックは例外です。
IPsec ポリシーファイルの構文を確認します。
# ipsecconf -c -f /etc/inet/ipsecinit.conf |
IPsec ポリシーを更新します。
# svcadm refresh svc:/network/ipsec/policy:default |
IPsec 用の鍵を更新します。
「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順 5 で IKE を構成した場合は、ike サービスを再起動します。
# svcadm restart svc:/network/ipsec/ike |
「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順 5 で鍵を手動で構成した場合は、manual-key サービスを更新します。
# svcadm refresh svc:/network/ipsec/manual-key:default |
これで設定が完了しました。必要に応じて、手順 12 を実行します。
Web サーバーポリシー用のファイルを /etc/inet ディレクトリに 作成します。
次の手順は、Solaris 10 4/09 リリースより前のリリースを実行している Web サーバーを構成するためのものです。
このファイルにその目的を表す名前を与えます (たとえば、IPsecWebInitFile)。このファイルに次のように入力します。
# Web traffic that web server should bypass. {lport 80 ulp tcp dir both} bypass {} {lport 443 ulp tcp dir both} bypass {} # Outbound DNS lookups should also be bypassed. {rport 53 dir both} bypass {} # Require all other traffic to use ESP with AES and SHA-1. # Use a unique SA for outbound traffic from the port {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
これで、保護トラフィックだけがシステムへのアクセスを許可されます。ただし、手順 4 で説明した、検査を省略するトラフィックは例外です。
手順 8 で作成したファイルの内容を /etc/inet/ipsecinit.conf ファイルにコピーします。
IPsecWebInitFile ファイルを読み取り専用アクセス権で保護します。
# chmod 400 IPsecWebInitFile |
リブートせずに Web サーバーをセキュリティー保護します。
次のオプションのいずれかを選択します。
鍵管理に IKE を使用する場合は、in.iked デーモンをいったん停止後、再起動します。
# pkill in.iked # /usr/lib/inet/in.iked |
手動でキーを管理する場合は、ipseckey および ipsecconf コマンドを実行します。
ipsecconf コマンドの引数には、 IPsecWebInitFile を使用します。引数に ipsecinit.conf ファイルを使用すると、ipsecconf コマンドは、ファイル内のポリシーがすでにシステムに実装されている場合は、エラーを生成します。
# ipseckey -c -f /etc/inet/secret/ipseckeys # ipsecconf -a /etc/inet/IPsecWebInitFile |
ipsecconf コマンドの実行時には警告を読んでください。ソケットがすでにラッチされている (使用されている) 場合には、システムへ侵入される恐れがあります。詳細については、「ipsecinit.conf と ipsecconf のセキュリティーについて」を参照してください。in.iked デーモンの再起動時にも、同じ警告が表示されます。
リブートすることもできます。システムをリブートすると、IPsec ポリシーがすべての TCP 接続に適用されます。リブート時に、IPsec ポリシーのファイルで指定したポリシーが TCP 接続で使用されます。
(省略可能) Web 以外のトラフィックのために Web サーバーと通信する場合は、リモートシステムを有効にします。
リモートシステムの ipsecinit.conf ファイルに次のポリシーを入力します。
# Communicate with web server about nonweb stuff # {laddr webserver} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
IPsec ポリシーが一致した場合にかぎり、リモートシステムは、非 Web トラフィックを持つ Web サーバーと安全に通信できます。