トラステッド内部ネットワーク・モデル (単純な IP フィルター操作) を構成するためのステップ

トラステッド内部ネットワーク・モデルでは、サーバーは、プライベートとして制御されるネットワーク内部にあるホストから発信されるトラフィックを保護します。

始める前に

このモデルの説明では、以下のステートメント、概念、およびファイルを取り扱います。

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

図 1. トラステッド内部ネットワーク・モデル
z/OS (9.1.1.1) と、管理マシン (9.1.1.2) を使用する、内部ネットワーク (9.1.1.0/24) を示しています。

この例では、内部ネットワーク上のトラフィックを制御するために、以下の要件が満たされていなければならないものとします。

手順

これらの要件を満たし、トラステッド内部ネットワーク・モデルを構成するには、以下のステップを実行します。

  1. 保護するゾーン数を判別します。 この例では、ゾーンは 1 つだけで、それは内部ネットワーク 9.1.1.0/24 です。
  2. 各ゾーンについて、どのようなサービスが許可されるかを決定し、必要とするそれぞれのサービスについて IpService ブロックを定義します。オプションで、各ゾーン内のすべてのインターフェースにセキュリティー・クラスを割り当てます。 この例の要件として、HTTP と FTP の 2 つのサービスが提示されています。 このホストへのトラフィックはローカルのものであり、したがってルーティングはローカルとして指定されます。これらのサービスの転送は許可されません。

    この内部ネットワーク全体が 1 つのゾーン内で定義されるので、アドレス 9.1.1.1 を持つインターフェースに対して固有のセキュリティー・クラスを定義することができます。この例では、すべての内部ネットワーク・インターフェースの SECCLASS パラメーターに、任意値 1 が割り当てられます。この値は、トラステッド・ネットワークを意味するものとして解釈できます。IpService ブロック内に SecurityClass パラメーターを指定する場合は、それに関連したインターフェースにも、TCP/IP プロファイル内の LINK または INTERFACE ステートメントの SECCLASS パラメーターで同じ値を割り当てる必要があります。 この例では、SECCLASS パラメーター値が 1 のインターフェース、つまり内部ネットワークに接続されているものと見なされるインターフェースを経由するトラフィックのみが許可されます。

    IpService
    {
      SourcePortRange       80
      DestinationPortRange  1024 65535
      Protocol              tcp
      Direction             bidirectional InboundConnect
      Routing               local
      SecurityClass         1
    }

    通常の FTP は 2 つのウェルノウン・ポートを使用するので、2 つのサービスが必要です。1 つは制御接続用で、もう 1 つはデータ接続用です。

    IpService
    {
      SourcePortRange       21
      DestinationPortRange  1024 65535
      Protocol              tcp
      Direction             bidirectional InboundConnect
      Routing               local
      SecurityClass         1
    
    }
    
    IpService
    {
      SourcePortRange       20
      DestinationPortRange  1024 65535
      Protocol              tcp
      Direction             bidirectional OutboundConnect
      Routing               local
      SecurityClass         1
    
    }

    InboundConnect キーワードは、TCP 接続の開始が許可されないサービスに使用します。OutboundConnect キーワードは、TCP 接続要求の受信が許可されないサービスに使用します。どちらのキーワードも指定されていない場合は、どちらの側からも TCP 接続を開始することができます。

  3. 保護するデータ・エンドポイントを判別します。 この例では、2 セットのデータ・エンドポイントを保護します。一方は管理マシンからの接続を表すもので、もう一方はサブネットワーク上の他のすべてのホストからの接続を表します。
    Local  Address of secure server: 9.1.1.1
    Remote Address of administrative machine: 9.1.1.2
    
    Local  Address of secure server: 9.1.1.1
    Remote Address of all hosts on internal network: 9.1.1.0/24
  4. 各セットのデータ・エンドポイント間に必要なセキュリティーのレベルを判別します。 この例では、許可のみが必要です。したがって、IPSec 情報は必要ありません。 z/OS® IP セキュリティー・ポリシーは、暗黙的にデフォルト拒否ポリシーを提供するので、他のトラフィックはすべて拒否されます。
  5. 接続をログに記録するかどうかも含めて、必要なセキュリティーのレベル (permit、deny、ipsec) を指定する IpGenericFilterAction ステートメントを構成します。 この例では、ロギング要件の異なる 2 つのタイプのトラフィックを許可する必要があるため、以下のように 2 つのアクションが必要です。
    IpGenericFilterAction    permit-log
    {
       IpFilterAction       permit
       IpFilterLogging       yes
    }
    
    IpGenericFilterAction    permit-nolog
    {
       IpFilterAction       permit
       IpFilterLogging       no
    }
  6. 2 つのエンドポイント間で IPSec が必要な場合は、フェーズ 1 ネゴシエーションのパラメーターを定義する KeyExchangePolicy ステートメントを構成し、フェーズ 2 ネゴシエーションの制御を定義する IpDynVpnAction ステートメントを構成し、セキュリティー・アソシエーションをどのように活動化するかを決定します。 この例では IPSec は必要ありません。機密を要する重要データが内部ネットワーク上を流れる場合は、IPSec を指定して一部の IP パケットを暗号化することにより、内部ネットワーク上の 2 つのホスト間でやりとりされる情報を効果的に保護することができます。
  7. データ・エンドポイントの各セットについて、IpFilterRule ブロックを定義します。 各規則には、許可されるサービス (許可される各サービスについてそれぞれ 1 つの IpService ステートメント)、および、必要なセキュリティーのレベル (IpGenericFilterAction ステートメントに対する参照) を含める必要があります。IPSec が必要な場合は、IKE トラフィック (UDP、ポート 500) を許可する IpFilterRule ステートメントを作成します。NAT トラバーサルを許可する場合は、ポート 4500 での IKE UDP トラフィックを許可する IpFilterRule ステートメントを作成します。

    この例では、ソース・アドレスは、セキュア・ホスト上のアドレスの 1 つを参照します。宛先アドレスはリモート・ホストを参照します。 IpService ステートメントは、ステップ 2 で定義したものです。IpGenericFilterAction ステートメントでは、既に定義済みのアクションを参照する必要があるという点に注意してください。

    IpFilterRule             AdminFTP
    {
       IpSourceAddr          9.1.1.1
       IpDestAddr            9.1.1.2
       IpService
       {
          SourcePortRange       21
          DestinationPortRange  1024 65535
          Protocol              tcp
          Direction             bidirectional InboundConnect
          Routing               local
          SecurityClass         1
    
       }
       IpService
       {
          SourcePortRange       20
          DestinationPortRange  1024 65535
          Protocol              tcp
          Direction             bidirectional OutboundConnect
          Routing               local
          SecurityClass         1
       }
       IpGenericFilterActionRef  permit-log
    }
    IpFilterRule             InternalNetWeb
    {
       IpSourceAddr          9.1.1.1
       IpDestAddrSet         9.1.1.0/24
       IpService
       {
          SourcePortRange       80
          DestinationPortRange  1024 65535
          Protocol              tcp
          Direction             bidirectional InboundConnect
          Routing               local
          SecurityClass         1
       }
       IpGenericFilterActionRef  permit-nolog
    }
    
    IpGenericFilterAction        permit-log
    {
      IpFilterAction             permit
      IpFilterLogging            yes
    }
    
    IpGenericFilterAction        permit-nolog
    {
      IpFilterAction             permit
      IpFilterLogging            no
    }

    この例では IPSec は不要なので、IKE トラフィックに対するフィルターは必要ありません。

  8. IpFilterPolicy ブロックに IpFilterRule ステートメントを含めます。 IpFilterPolicy ブロック内では、IP フィルター規則とそれぞれの相対位置が、最も明確に限定されたものから不明確に限定されたものへの順になるようにしてください。AdminFTP 規則は、特定ホストからのトラフィックを制御するものなので、InternalNetWeb 規則の前に配置します。注意すべきは、個々の規則のロギングを使用可能にするには、FilterLogging パラメーターを指定した IP フィルター・ポリシーのグローバル・レベルで、フィルター・ロギングを使用可能にする必要があるという点です。
    IpFilterPolicy
    {
       FilterLogging            on
    
       IpFilterRule             AdminFTP
       {
          IpSourceAddr          9.1.1.1
          IpDestAddr            9.1.1.2
          IpService
          {
             SourcePortRange       21
             DestinationPortRange  1024 65535
             Protocol              tcp
             Direction             bidirectional InboundConnect
             Routing               local
             SecurityClass         1
          }
          IpService
          {
             SourcePortRange       20
             DestinationPortRange  1024 65535
             Protocol              tcp
             Direction             bidirectional OutboundConnect
             Routing               local
             SecurityClass         1
          }
          IpGenericFilterActionRef  permit-log
       }
       IpFilterRule             InternalNetWeb
       {
          IpSourceAddr          9.1.1.1
          IpDestAddrSet         9.1.1.0/24
          IpService             WebServer
          {
             SourcePortRange       80
             DestinationPortRange  1024 65535
             Protocol              tcp
             Direction             bidirectional InboundConnect
             Routing               local
             SecurityClass         1
          }
          IpGenericFilterActionRef  permit-nolog
       }
    }
  9. 構成したすべてのステートメントをスタック固有 IP セキュリティー構成ファイルに含めます。 IpFilterPolicy ステートメントおよび IpGenericFilterAction ステートメントをこのファイルに指定する場合、特定の順序はありませんが、論理的に関連のある項目が近接して配置されていれば、このファイルはさらに読みやすくなります。人が読んだり保守を行ったりする場合に作業しやすくするには、番号記号 (#) で始まるコメントを使用して、このファイルを文書化してください。

    以下に示すのは、2 つのフィルター規則を持つ、内部ネットワーク用の完全なスタック固有 IP セキュリティー構成ファイルです。

    # IP Security policy for Secure Server
    ##########################
    # IpFilterPolicy block   #
    ##########################
    IpFilterPolicy
    {
       FilterLogging            on
       #Allow admin FTP; log traffic
       IpFilterRule             AdminFTP
       {
          IpSourceAddr          9.1.1.1
          IpDestAddr            9.1.1.2
          IpService
          {
             SourcePortRange       21
             DestinationPortRange  1024 65535
             Protocol              tcp
             Direction             bidirectional InboundConnect
             Routing               local
             SecurityClass         1
          }
          IpService
          {
             SourcePortRange       20
             DestinationPortRange  1024 65535
             Protocol              tcp
             Routing               local
             SecurityClass         1
             Direction             bidirectional OutboundConnect
          }
          IpGenericFilterActionRef  permit-log
       }
       #Allow LAN Web traffic; don't log
       IpFilterRule             InternalNetWeb
       {
          IpSourceAddr          9.1.1.1
          IpDestAddrSet         9.1.1.0/24
          IpService
          {
             SourcePortRange       80
             DestinationPortRange  1024 65535
             Protocol              tcp
             Direction             bidirectional InboundConnect
             Routing               local
             SecurityClass         1
          }
          IpGenericFilterActionRef  permit-nolog
    }
    
    ############################
    # Generic Filter Actions   #
    ############################
    IpGenericFilterAction    permit-log
    {
       IpFilterAction        permit
       IpFilterLogging       yes
    }
    
    IpGenericFilterAction    permit-nolog
    {
       IpFilterAction        permit
       IpFilterLogging       no
    }
  10. 各ゾーンごとに IP フィルター・グループを定義し、そのゾーンに属する IP フィルター規則を組み込みます。 ステップ 9 では、両方の IpFilterRule ステートメントに、IpFilterRule ブロックの外部で定義されているステートメント (IpGenericFilterAction ステートメント) への参照が含まれています。 ほかにも、例えば IP アドレスやサービスなどのように、明らかに複数回必要になる情報があります。このようなこれらの存在するステートメントをオブジェクト参照に変更することにより、同じ情報を繰り返し入力する必要性が排除され、構成ファイルが一層明瞭になります。これらの参照を利用するには、再使用可能なステートメントに名前を付ける必要があります。
    • 単一 IP アドレスは、IpAddr ステートメントを使用します。このステートメントには、Addr というパラメーターが 1 つだけ含まれています。
      IpAddr         InternalNetServerAddress
      {
         Addr        9.1.1.1
      {
      
      IpAddr         InternalNetAdminAddress
      {
         Addr        9.1.1.2
      }
    • 範囲とサブネットワークは、IpAddrSet ステートメントにより定義します。このステートメントには Range または Prefix のいずれかの属性が含まれています。
      IpAddrSet      InternalNet
      {
         Prefix      9.1.1.0/24
      }
    • 参照される各 IpService ステートメントには、名前を付ける必要があります。
      IpService      WebServer
      {
         SourcePortRange       80
         DestinationPortRange  1024 65535
         Protocol              tcp
         Direction             bidirectional InboundConnect
         Routing               local
         SecurityClass         1
      }
      
      IpService     FTPServer-Control
      {
         SourcePortRange       21
         DestinationPortRange  1024 65535
         Protocol              tcp
         Direction             bidirectional InboundConnect
         Routing               local
         SecurityClass         1
      }
      IpService     FTPServer-Data
      {
         SourcePortRange       20
         DestinationPortRange  1024 65535
         Protocol              tcp
         Direction             bidirectional OutboundConnect
         Routing               local
         SecurityClass         1
      }
    • FTP は 2 つの個別のサービスから成っており、その両方を凝縮して、この 2 つの FTP サービスを参照する 1 つの IpServiceGroup にすることができます。
      IpServiceGroup    FTPServer
      {
         IpServiceRef   FTPServer-Control
         IpServiceRef   FTPServer-Data
      }
    • IP フィルター規則もグループ化することができます。内部ネットワークに適用されるフィルター規則は、同一セキュリティー・ゾーンに適用されるという意味で必然的に相互関係があります。このため、それらの規則を結合して 1 つの IpFilterGroup ステートメントに含めることができます。
      IpFilterGroup     InternalNetZoneA
      {
         IpFilterRef    AdminFTP
         IpFilterRef    InternalNetWeb
      }

      注意すべきは、IpFilterPolicy ブロック内で IpFilterRule ステートメント・リストが順序付けされるのと同様に、IpFilterGroup ブロック内の IpFilterRef ステートメント・リストも順序付けされるという点です。InternalNetWeb 規則は、管理マシンも含めて、ネットワーク内のすべての IP アドレスに適用されます。これに対して、AdminFTP 規則はもっと特定的に適用されます。その理由は、この規則はそのネットワーク内の特定アドレスのみに適用されるからです。このリスト内では、より特定して適用される規則を最初に配置します。

    これで、すべての再使用可能なステートメントの明確化および個別定義を完了しましたので、その再使用可能なステートメント・タイプを必要とするどのステートメントにも、これらのステートメントを組み込むことができます。以下に、参照を使用する変更済みのスタック固有 IP セキュリティー構成ファイルを示します。名前を追加し、関連ステートメントを集めて編成することで、IpFilterPolicy ステートメントの目的が明確化されるという点に注意してください。

    # IP Security policy for Secure Server
    ##########################
    # IpFilterPolicy block   #
    ##########################
    IpFilterPolicy
    {
       FilterLogging            on
       IpFilterGroupRef     InternalNetZoneA
    }
    
    ##########################
    # Security Zones         #
    ##########################
    IpFilterGroup     InternalNetZoneA
    {
       IpFilterRuleRef    AdminFTP
       IpFilterRuleRef    InternalNetWeb
    }
    
    ##########################
    # Filter rules           #
    ##########################
    #Allow admin FTP; log traffic
    IpFilterRule                 AdminFTP
    {
       IpSourceAddrRef           InternalNetServerAddress
       IpDestAddrRef             InternalNetAdminAddress
       IpServiceGroupRef         FTPServer
       IpGenericFilterActionRef  permit-log
    }
    
    #Allow LAN Web traffic; don't log
    IpFilterRule                 InternalNetWeb
    {
       IpSourceAddrRef           InternalNetServerAddress
       IpDestAddrSetRef          InternalNet
       IpServiceRef              WebServer
       IpGenericFilterActionRef  permit-nolog
    }
    
    ######## All reusable reference statements defined below ########
    
    ############################
    # Generic Filter Actions   #
    ############################
    IpGenericFilterAction    permit-log
    {
       IpFilterAction        permit
       IpFilterLogging       yes
    }
    
    IpGenericFilterAction    permit-nolog
    {
       IpFilterAction        permit
       IpFilterLogging       no
    }
    
    
    ##########################
    # Reusable Services      #
    ##########################
    IpService      WebServer
    {
       SourcePortRange       80
       DestinationPortRange  1024 65535
       Protocol              tcp
       Direction             bidirectional InboundConnect
       Routing               local
       SecurityClass         1
    }
    
    IpService     FTPServer-Control
    {
       SourcePortRange       21
       DestinationPortRange  1024 65535
       Protocol              tcp
       Direction             bidirectional InboundConnect
       Routing               local
       SecurityClass         1
    }
    
    IpService     FTPServer-Data
    {
       SourcePortRange       20
       DestinationPortRange  1024 65535
       Protocol              tcp
       Direction             bidirectional OutboundConnect
       Routing               local
       SecurityClass         1
    }
    
    ############################
    # Reusable Service Groups   #
    ############################
    IpServiceGroup    FTPServer
    {
       IpServiceRef   FTPServer-Control
       IpServiceRef   FTPServer-Data
    }
    
    ############################
    # Reusable IP Addresses    #
    ############################
    IpAddr         InternalNetServerAddress
    {
       Addr        9.1.1.1
    }
    
    IpAddr         InternalNetAdminAddress
    {
       Addr        9.1.1.2
    }
    
    IpAddrSet      InternalNet
    {
       Prefix      9.1.1.0/24
    }

    このスタック固有 IP セキュリティー構成ファイルは、管理者に FTP アクセス権を付与し、内部ネットワーク内のすべてのユーザーに Web アクセス権を付与します。 このポリシーは、要約して参照を使用する方法に大きく依存することにより、見てすぐに分るだけでなく、参照されているどのオブジェクトが変更されても、それを参照しているどのステートメントにも伝搬されます。 したがって、管理マシンまたは内部サブネットワークの IP アドレスが変更されても、IpAddr または IpAddrSet ステートメントに 1 回変更を加えるだけです。複数の規則にある多くのインスタンスを変更する必要はありません。