事業所モデルを構成するためのステップ: パート 1 (IPSec を使用するホスト対ゲートウェイ通信)

事業所モデルのパート 1 は、IP 接続をインターネットに依存する 2 つのネットワークから成っています。 このサーバーは、内部ネットワーク外のホストから発信されるトラフィックを保護しようとします。このトラフィックは、ある時点でインターネットを経由してルーティングされます。

始める前に

このモデルの説明では、以下のトピックを取り扱います。

図 1 は、セキュリティー・モデル・ネットワークの事業所部分を示しています。

図 1. 事業所モデル
z/OS ホストは、パブリック・アドレス 9.3.3.3 経由でインターネットに接続され、事業所 (9.6.0.0/16) は、公衆ゲートウェイ 9.5.5.5 経由でインターネットに接続されている

暗号化されたデータを 2 つのホスト間で直接トランスポートするために、排他的にトランスポート・モードの IPSec が使用されます。セキュリティー・エンドポイントの 1 つが、任意数のホストに対してトラフィックをルーティングするセキュリティー・ゲートウェイである場合は、トンネル・モードの IPSec カプセル化を使用する必要があります。事業所モデルでは、あるセキュリティー・ゲートウェイの背後に複数ホストが存在する可能性があり、そのセキュリティー・ゲートウェイがその全ホスト (そのセキュリティー・ゲートウェイ背後にあるホスト) に対してセキュリティー・メカニズムを提供しています。基本的な前提事項としては、ローカル・セキュア・サーバーは単一データ・エンドポイントと単一セキュリティー・エンドポイントを表し、リモート・サブネットワークは、共通のセキュリティー・エンドポイント (つまりセキュリティー・ゲートウェイ・ホスト) を共用する複数データ・エンドポイントを表すということです。ローカル・サーバーから事業所ゲートウェイへのトラフィックは IPSec により保護されますが、事業所ゲートウェイから、セキュリティー・ゲートウェイ背後のホストへのトラフィックは、暗号化は不要であり、フィルター操作でさえも不要です。

これまでのモデルの場合と同様に、ローカル・サーバーと、事業所を表すゾーンとの間に許可されるトラフィックが、完全な IP セキュリティー・ポリシーにより定義されます。ただし、リモート・セキュリティー・エンドポイントがどこに位置しているかという点に大きな違いがあります。前の例では、すべての IPSec 保護はホスト対ホスト単位で提供されていました。 互いに通信するエンドポイントのセットのそれぞれについて、2 つのホスト (ローカルとリモート) 間通信のセキュア・チャネルを表す単一の動的 VPN がありました。これに対して、IPSec セキュリティー・ゲートウェイが関与するシナリオでは、1 つの VPN が複数ホストに対してトラフィックを運ぶことが必要な場合があります。この事業所の例では、この相違に重点を置いて説明します。

この例では、ゾーン C の事業所ネットワーク (9.6.0.0/16) から、このホスト上のパブリック IP アドレス (9.3.3.3) へのネットワーク通信を許可するために、以下の要件が満たされているものとします。事業所ネットワーク上のホストは、パブリック事業所ゲートウェイ・サーバー (9.5.5.5) を経由してインターネットに接続されます。

手順

これらの要件を満たし、事業所モデルのパート 1 を構成するには、以下のステップを実行します。

  1. 保護するゾーン数を判別します。 この事業所は、ゾーン C という 1 つのゾーンで表されます。
  2. 各ゾーンについて、どのようなサービスが許可されるかを決定し、必要とするそれぞれのサービスについて IpService ブロックを定義します。 サービスは、それぞれのプロトコルと使用するウェルノウン・ポートにより定義されます。

    FTP トラフィックを記述する定義は、以下のように、1 つの IP サービス・グループにまとめることができます。

    IpServiceGroup               FTPServer
    {
      IpService                  FTPServer-Control
      {
        SourcePortRange            21
        Protocol                   tcp
        Direction                  bidirectional InboundConnect
        Routing                    local
        SecurityClass              0        		
      }
      IpService                  FTPServer-Data
      {
        SourcePortRange            20
        Protocol                   tcp
        Direction                  bidirectional OutboundConnect
        Routing                    local
        SecurityClass              0
      }
      IpService                  FTPServer-Data-Passive
      {
        SourcePortRange            50000 50200
        Protocol                   tcp
        Direction                  bidirectional InboundConnect
        Routing                    local
        SecurityClass              0
      }
    }

    Enterprise Extender のトラフィック・パターンは、以下のように 1 つの IpService ブロック内で定義することができます。

    IpService                    Enterprise-Extender
    {
      SourcePortRange            12000 12004
      DestinationPortRange       12000 12004
      Protocol                   udp
      Direction                  bidirectional
      Routing                    local
      SecurityClass              0
    }
  3. 保護するデータ・エンドポイントを判別します。 一般に、これは、ローカルとリモートの両方の IP アドレスまたはサブネットワークです。

    この例では、ローカル・ホストのパブリック IP アドレス 9.3.3.3 について、以下のステートメントを定義します。

    IpAddr                       PublicServerAddressA1
    {
      Addr                       9.3.3.3
    }

    リモート・サブネット 9.6.0.0/16 については、以下のステートメントを定義します。

    IpAddrSet                    SubnetC
    {
      Prefix                     9.6.0.0/16
    }

    ローカル・パブリック・サーバーとリモート事業所ゲートウェイの間の IKE トラフィックを許可する必要があるので、以下のように、リモート・ゲートウェイの IP アドレスも定義する必要があります。

    IpAddr                       BranchOfficeGateway
    {
      Addr                       9.5.5.5
    }
  4. 各セットのデータ・エンドポイント間に必要なセキュリティーのレベルを判別します。 この例では、EE と FTP の両方のトラフィックについて強い認証と暗号化が必要なので、ESP 認証と ESP 暗号化が使用されます。
  5. 必要なセキュリティー・レベル (permit、deny、ipsec) と、接続をログに記録するかどうかを指定するために、以下のように IpGenericFilterAction ステートメントを構成します。
    IpGenericFilterAction        ipsec
    {
      IpFilterAction             ipsec
    }
  6. どの 2 つのエンドポイント間にも IPSec が必要な場合は、以下のアクションを実行します。
    1. 以下のようにして、フェーズ 1 ネゴシエーションのパラメーターを定義する鍵交換ポリシーを構成します。
      1. フェーズ 1 セキュリティー・アソシエーションについて、必要な保護のタイプと強度を判別します。

        この例では、MD5 よりセキュア度が高い SHA1 認証、および DES より強力で、3DES と同等の AES 暗号化を使用します。Diffie-Hellman Group5 と Group14 は、128 ビット鍵を使用して AES 用の鍵生成材料を十分に生成できる強さであると見なされます。 この例では、Group14 が使用されます。

      2. どのタイプのピア認証を使用するかを決定します。

        この例では、要件の 1 つとして事前共有秘密鍵認証が指定されています。 一般的には、多くの利点があるため RSA シグニチャーの方が優先されますが、ここでは、この例の目的を達成するために事前共有秘密鍵方式を使用します。 事業所シナリオでは、リモート IKE ピアは 1 つだけ (リモート・セキュリティー・ゲートウェイ) であり、また構成方法が比較的単純であるという利点を考えれば、事前共有秘密鍵認証は妥当な選択肢と言えます。

      3. 以下のようにして、フェーズ 1 ネゴシエーションのパラメーターを定義する KeyExchangeOffer ステートメントを構成します。
        KeyExchangeOffer             SHA1-AES-PSK
        {
          HowToEncrypt               AES_CBC KeyLength 128
          HowToAuthMsgs              SHA1
          HowToAuthPeers             PresharedKey
          DHGroup                    Group14
        }
      4. NAT トラバーサルを許可するかどうかを決定します。

        この例では、以下のパラメーターを使用します。

        AllowNat No
      5. Main (メイン) または Aggressive (アグレッシブ) のいずれかのネゴシエーション・モードを決定します。

        事業所モデルではセキュリティーが優先事項の 1 つなので、フェーズ 1 ネゴシエーションには、セキュア度の高い Main (メイン) モードを使用します。

      6. 以下のように KeyExchangeAction ステートメントを構成します。
        KeyExchangeAction            Gold-PSK
        {
          HowToInitiate              main
          HowToRespondIKEv1          main
          KeyExchangeOfferRef        SHA1-AES-PSK
        }
      7. 以下のように、LocalSecurityEndpoint ステートメントと RemoteSecurityEndpoint ステートメントを構成します。
        LocalSecurityEndpoint        Public_IKED
        {
          Identity                   IpAddr 9.3.3.3
          LocationRef                PublicServerAddressA1
        }
        
        RemoteSecurityEndpoint       ZoneC_IKED
        {
          Identity                   Fqdn gateway.BO.example.com
          LocationRef                BranchOfficeGateway
        }
      8. 以下のように、2 つのエンドポイント、鍵交換アクション、および事前共有秘密鍵を含む KeyExchangeRule ステートメントを構成します。
        KeyExchangeRule              ZoneC_KeyExRule1
        {
          LocalSecurityEndpointRef   Public_IKED
          RemoteSecurityEndpointRef  ZoneC_IKED
          KeyExchangeActionRef       Gold-PSK
          PresharedKey               abracadabra
        }
      9. 以下のように、KeyExchangePolicy ステートメント・ブロックに KeyExchangeRule ステートメントを含めます。
        KeyExchangePolicy
        {
            KeyExchangeRuleRef         ZoneC_KeyExRule1
        }
    2. 以下のように、フェーズ 2 ネゴシエーションの制御を定義する IpDynVpnAction ステートメントを構成します。
      1. フェーズ 2 セキュリティー・アソシエーションについて、必要な IPSec 保護のタイプと強度を判別します。

        この例では、認証は ESP HMAC_SHA1 で、暗号化は AES です。

      2. トンネル・モードまたはトランスポート・モードが必要かどうかを判別します。

        トンネル・モードが必要なのは、セキュリティー・エンドポイントの 1 つがセキュリティー・ゲートウェイである場合です。

      3. 以下のように、フェーズ 2 ネゴシエーションのパラメーターを定義する IpDataOffer ステートメントを構成します。
        IpDataOffer                  SHA-AES-Tunnel
        {
          HowToEncap                 tunnel
          HowToEncrypt               AES_CBC KeyLength 128
          HowToAuth                  ESP HMAC_SHA1
        }
      4. ネゴシエーションの開始をどのピアに許可するかを決定します。

        スタックの開始時に EE VPN が活動化されるので、ネゴシエーションをローカルで開始 (つまり自動活動化) できることが必要です。FTP VPN はコマンド行から活動化されるので、ネゴシエーションをローカルで開始できることが必要です。

      5. 以下のように、フェーズ 2 ネゴシエーションの制御情報を定義する IpDynVpnAction ステートメントを構成します。
        IpDynVpnAction               Gold-TunnelMode
        {
          Initiation                 either
          InitiateWithPfs            group2
          AcceptablePfs              group2
          IpDataOfferRef             SHA-AES-Tunnel
        }
    3. セキュリティー・アソシエーションをどのように活動化するかを決定します。
      1. コマンド行からの活動化または自動活動化の場合は、オプションとしてローカル動的 VPN ポリシーを構成します。

        各セキュリティー・アソシエーションごとに LocalDynVpnRule ステートメントが必要になる理由は、 何もオンデマンド活動化状態でないからです。EE トラフィックの場合は 5 つ、および FTP トラフィックの場合は 2 つの LocalDynVpnRule ステートメントが必要です。

        LocalDynVpnRule              ZoneC_VPN-EE1
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              12000
           RemoteDataPort             12000
           Protocol                   UDP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-EE2
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              12001
           RemoteDataPort             12001
           Protocol                   UDP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-EE3
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              12002
           RemoteDataPort             12002
           Protocol                   UDP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-EE4
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              12003
           RemoteDataPort             12003
           Protocol                   UDP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-EE5
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              12004
           RemoteDataPort             12004
           Protocol                   UDP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-FTP-Data
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              20
           RemoteDataPort             0
           Protocol                   TCP
           AutoActivate               Yes
        }
        
        LocalDynVpnRule              ZoneC_VPN-FTP-Control
        {
           LocalIpRef                 PublicServerAddressA1
           RemoteIpSetRef             SubnetC
           LocalDataPort              21
           RemoteDataPort             0
           Protocol                   TCP
           AutoActivate               Yes
        }
      2. セキュリティー・アソシエーションをローカルで活動化し (つまり、オンデマンド、コマンド行、または自動活動化)、セキュリティー・エンドポイントの 1 つがセキュリティー・ゲートウェイとしての役割を果たす (つまりホスト対ホスト・セキュリティー・アソシエーションではない) 場合は、オプションの IpLocalStartAction ステートメントを構成します。 そして、IP フィルター規則に、IpLocalStartAction ステートメントに対する参照を組み込みます。

        ローカル・セキュア・サーバーが IKE ネゴシエーションを開始する場合は、そのサーバーはリモート IKE ピアを識別できることが必要です。 しかし、この例では、リモート・データ・エンドポイントは単一のホストではなく、サブネットワーク ZoneC 内の複数のエンドポイントです。IpLocalStartAction ステートメントは、リモート IKE ピアの識別に使用され、ローカル IKE デーモンがリモート・セキュリティー・ゲートウェイとの ipsec 接続を開始する場合に必要です。

        IpLocalStartAction             StartZoneC
        {
           RemoteSecurityEndpointRef   ZoneC_IKED
        }
      3. IPSec トラフィック (AH および ESP) を許可する IpFilterRule ステートメントを作成するか、またはグローバル IpFilterPolicy ステートメントのパラメーター PreDecap を off に設定します。

        この例では、IpFilterPolicy ステートメントで PreDecap off を使用します。

  7. データ・エンドポイントの各セットについて、IpFilterRule ステートメントを定義します。 規則には、許可されるサービス (許可される各サービスについてそれぞれ 1 つの IpService ステートメント)、および、必要なセキュリティーのレベル (IpGenericFilterAction ステートメントに対する参照) を含める必要があります。IPSec が必要な場合は、IKE トラフィック (UDP、ポート 500) を許可する IpFilterRule ステートメントを作成します。NAT トラバーサルを許可する場合は、ポート 4500 での IKE UDP トラフィックを許可する IpFilterRule ステートメントを作成します。 ステップ 3 で構成した IpAddr および IpAddrSet ステートメントを参照してください。
    IpFilterRule                 Rule1C
    {
       IpSourceAddrRef            PublicServerAddressA1
       IpDestAddrRef              BranchOfficeGateway
       IpServiceRef               IKE
       IpGenericFilterActionRef   permit
    }
    
    IpFilterRule                 Rule2C
    {
       IpSourceAddrRef            PublicServerAddressA1
       IpDestAddrSetRef           SubnetC
       IpServiceRef               Enterprise-Extender
       IpServiceGroupRef          FTPServer
       IpGenericFilterActionRef   ipsec
       IpDynVpnActionRef          Gold-TunnelMode
       IpLocalStartActionRef      StartZoneC
    }
  8. 各ゾーンについて IpFilterGroup ステートメントを定義し、それぞれのゾーンに属する IpFilterRule ステートメントを組み込みます。
  9. IpFilterPolicy ブロックに、すべての IpFilterGroup 参照と、必要に応じて追加の IpFilterRule ステートメントを組み込みます。
  10. 構成したすべてのステートメントをスタック固有 IP セキュリティー構成ファイルに含めます。

タスクの結果

以下に示すポリシーは、ローカル・セキュア・サーバーからゾーン C へのトラフィックの、完全な IP セキュリティー・ポリシーです。これは、再使用可能ステートメントが共通 IP セキュリティー構成ファイルに含まれていると想定しています。

#-------------------------------------------------------
# Filter Policy for Secure Server
#-------------------------------------------------------
IpFilterPolicy
{
  PreDecap                   off
  FilterLogging              on
  AllowOnDemand              no
  IpFilterGroupRef           ZoneC
}

#-------------------------------------------------------
# KeyExchange Policy for Secure Server
#-------------------------------------------------------
KeyExchangePolicy
{
  KeyExchangeRuleRef         ZoneC_KeyExRule1
}

#-------------------------------------------------------
# LocalDynVpn Policy for Secure Server
#-------------------------------------------------------
LocalDynVpnPolicy
{
  LocalDynVpnGroupRef        ZoneC_BranchOfficeVPNs
}

########################################################
#               Connectivity Profile
#              Secure Server To Zone C
#
#   Server to Trusted Branch Office Network
#
########################################################
IpFilterGroup                ZoneC
{
   #-------------------------------------------------------
   # Permitted Zone C traffic:
   #    Allow IKE traffic from the gateway IKE Server
   #    for branch office to this host.
   #
   #    IKE  (UDP port 500) - IKE negotiations
   #-------------------------------------------------------

   IpFilterRule                 Rule1C
   {
     IpSourceAddrRef            PublicServerAddressA1
     IpDestAddrRef              BranchOfficeGateway
     IpServiceRef               IKE
     IpGenericFilterActionRef   permit
   }

   #-------------------------------------------------------
   # IPSec-protected Zone C traffic:
   #
   # Enterprise Extender (ports 12000-12004)
   #    FTP Server - SubnetC to PublicServerAddressA
   #-------------------------------------------------------

   IpFilterRule                 Rule2C
   {
     IpSourceAddrRef            PublicServerAddressA1
     IpDestAddrSetRef           SubnetC
     IpServiceRef               Enterprise-Extender
     IpServiceGroupRef          FTPServer
     IpGenericFilterActionRef   ipsec
     IpDynVpnActionRef          Gold-TunnelMode
     IpLocalStartActionRef      StartZoneC
   }
}

IpLocalStartAction             StartZoneC
{
   AllowOnDemand               yes
   RemoteSecurityEndpointRef   ZoneC_IKED
}

KeyExchangeRule              ZoneC_KeyExRule1
{
  LocalSecurityEndpointRef   Public_IKED
  RemoteSecurityEndpointRef  ZoneC_IKED
  KeyExchangeActionRef       Gold-PSK
}

#--------------------------------------------------------
# Zone C LocalDynVpnRules
#
# Setup SAs for EE traffic from branch office zone C to
# EE (UDP ports 12000-12004).
#--------------------------------------------------------

LocalDynVpnGroup             ZoneC_BranchOfficeVPNs
{
   LocalDynVpnRule              ZoneC_VPN-EE1
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              12000
     RemoteDataPort             12000
     Protocol                   UDP
     AutoActivate               Yes
   }

   LocalDynVpnRule              ZoneC_VPN-EE2
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              12001
     RemoteDataPort             12001
     Protocol                   UDP
     AutoActivate               Yes
   }

   LocalDynVpnRule              ZoneC_VPN-EE3
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              12002
     RemoteDataPort             12002
     Protocol                   UDP
     AutoActivate               Yes
   }

   LocalDynVpnRule              ZoneC_VPN-EE4
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              12003
     RemoteDataPort             12003
     Protocol                   UDP
     AutoActivate               Yes
   }

   LocalDynVpnRule              ZoneC_VPN-EE5
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              12004
     RemoteDataPort             12004
     Protocol                   UDP
     AutoActivate               Yes
   }

#-------------------------------------------------------
# Setup SAs for FTP traffic from branch office zone C
# to an FTP server running on this host using a dynamic
# vpn (TCP port 20, 21).
#-------------------------------------------------------

   LocalDynVpnRule              ZoneC_VPN-FTP-Data
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              20
     RemoteDataPort             0
     Protocol                   TCP
     AutoActivate               Yes
   }

   LocalDynVpnRule              ZoneC_VPN-FTP-Control
   {
     LocalIpRef                 PublicServerAddressA1
     RemoteIpSetRef             SubnetC
     LocalDataPort              21
     RemoteDataPort             0
     Protocol                   TCP
     AutoActivate               Yes
   }
}