Solaris のシステム管理 (第 3 巻)

IPsec ポリシーによる Web サーバーの保護

この手順では、Web サーバーで処理する Web トラフィックと、この Web サーバーからの DNS クライアント要求の省略 (bypass) について説明します。他のすべてのトラフィックには、3DES アルゴリズムと SHA-1 アルゴリズムでは ESP を要求し、出力トラフィックに共有 SA を使用し、セキュリティアソシエーションが多くなり過ぎないようにします。

  1. システムコンソールからスーパーユーザーになります。


    注 -

    リモートログインすると、セキュリティ的に重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システム全体のセキュリティがリモートログインセッションレベルに低下します。


  2. セキュリティポリシー検査を省略するサービスを指定します。

    Web サーバーの場合、TCP ポート 80 (HTTP) と 443 (保護 HTTP) が該当します。Web サーバーが DNS 名検査をしないときは、TCP と UDP の両方にポート 53 も組み込む必要がある場合もあります。

  3. たとえば MyIPsecInitFile のように、選択したファイル名で読み取り専用ファイルを作成し、このファイルに次の行を入力します。


    # Web traffic that Web server should bypass.
    	{sport 80 ulp tcp} bypass {dir out}
    	{dport 80 ulp tcp} bypass {dir in}
    	{sport 443 ulp tcp} bypass {dir out}
    	{dport 443 ulp tcp} bypass {dir in}
    
    	# Outbound DNS lookups should also be bypassed.
    	{dport 53} bypass {dir out}
    	{sport 53} bypass {dir in}
    
    	# Require all other traffic to use ESP with 3DES and SHA-1.
    	# Use a shared SA for outbound traffic, so as not to require a
    	# large supply of security associations.
    	{} permit {encr_algs 3des encr_auth_algs sha}
    	{} apply {encr_algs 3des encr_auth_algs sha sa shared}

    これで、保護トラフィックだけがシステムをアクセスするようになります。ただし先の手順で省略するようにリストしたトラフィックは例外です。

  4. 2 つの操作のどちらかを実行します。

    1. 先の手順で作成したファイルを、/etc/inet/ipsecinit.conf にコピーし、次のコマンドでリブートします。


      # cp filename /etc/inet/ipsecinit.conf
      # reboot
      
    2. 作成したファイルを次のコマンドで呼び出します。


      ipsecconf -a filename
      

      注 -

      このファイルにはネームサービスが必要ないためにこの操作が可能です。また、ipsecconf を呼び出しても、既存の TCP 接続には IPsec ポリシーが適用されません。そのため、ipsecconf コマンドを実行すると警告が表示されます。


こうして、Web サーバーでは、Web サーバートラフィックと出力 DNS 要求と応答だけを処理します。他のサービスは ipseckey(1M) でセキュリティアソシエーションを追加して、IPsec をリモートシステムで有効にしないと機能しません。