Solaris のシステム管理 (IP サービス)

第 26 章 Oracle Solaris IP フィルタ (作業)

この章では、Solaris IP フィルタを使用する作業を手順ごとに説明します。Oracle Solaris IP フィルタの概要情報については、第 25 章Oracle Solaris IP フィルタ (概要)を参照してください。

この章では、次の内容について説明します。

Oracle Solaris IP フィルタの構成

次の作業マップに、Oracle Solaris IP フィルタを構成するための手順を示します。

表 26–1 Oracle Solaris IP フィルタの構成 (作業マップ)

作業 

説明 

参照先 

Oracle Solaris IP フィルタを初期段階で有効にします。 

Oracle Solaris IP フィルタは、デフォルトでは無効です。Solaris IP フィルタを手動で有効にするか /etc/ipf/ ディレクトリにある構成ファイルを使用して、システムをリブートする必要があります。Solaris 10 7/07 リリース以降では、pfil モジュールの代わりにパケットフィルタリングフックを使用して Oracle Solaris IP フィルタを有効にします。

「Oracle Solaris IP フィルタを有効にする方法」

Oracle Solaris IP フィルタを再度有効にします。 

Oracle Solaris IP フィルタが非アクティブ化された、または無効になった場合は、システムをリブートするか、ipf コマンドを使用して、Oracle Solaris IP フィルタを再度有効にできます。

「Oracle Solaris IP フィルタを再度有効にする方法」

ループバックフィルタリングを有効にします。 

オプションとして、ループバックフィルタリングを有効にすると、ゾーン間のトラフィックのフィルタリングなどを行うことができます。 

「ループバックフィルタリングを有効にする方法」

ProcedureOracle Solaris IP フィルタを有効にする方法

Solaris 10 7/07 以降の OS を実行しているシステムで Oracle Solaris IP フィルタを有効にするには、次の手順に従います。Solaris 10 7/07 OS より前の Oracle Solaris 10 を実行しているシステムで Oracle Solaris IP フィルタを有効にする場合は、pfil モジュールの使用」を参照してください。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. パケットフィルタリング構成ファイルを作成します。

    パケットフィルタリング構成ファイルには、Oracle Solaris IP フィルタが使用するパケットフィルタリング規則が含まれています。起動時にパケットフィルタリング規則をロードする場合は、/etc/ipf/ipf.conf ファイルを編集して IPv4 パケットフィルタリングを実装します。IPv6 パケットフィルタリング規則には /etc/ipf/ipf6.conf ファイルを使用します。起動時にパケットフィルタリング規則をロードしない場合は、適当な場所に ipf.conf ファイルを保存し、パケットフィルタリングを手動でアクティブ化します。パケットのフィルタリングについては、「Oracle Solaris IP フィルタのパケットフィルタリング機能の使用」を参照してください。構成ファイルの処理については、「Oracle Solaris IP フィルタ構成ファイルの作成と編集」を参照してください。

  3. (省略可能) ネットワークアドレス変換 (NAT) 構成ファイルを作成します。


    注 –

    ネットワークアドレス変換 (NAT) では、IPv6 はサポートされていません。


    ネットワークアドレス変換を使用する場合は、ipnat.conf ファイルを作成します。ネットワークアドレス変換を使用する場合は、ipnat.conf ファイルを作成します。 起動時に NAT 規則をロードしない場合は、適当な場所に ipnat.conf ファイルを保存し、NAT 規則を手動でアクティブ化します。

    NAT については、「Oracle Solaris IP フィルタの NAT 機能の使用」を参照してください。

  4. (省略可能) アドレスプール構成ファイルを作成します。

    ひとかたまりのアドレスを単一のアドレスプールとして参照する場合は、ipool.conf ファイルを作成します。起動時にアドレスプール構成ファイルをロードする場合は、アドレスプールを保存する /etc/ipf/ippool.conf というファイルを作成します。起動時にアドレスプール構成ファイルをロードしない場合は、適当な場所に ippool.conf ファイルを保存し、規則を手動でアクティブ化します。

    アドレスプールは、IPv4 アドレスだけまたは IPv6 アドレスだけを含むことができます。IPv4 アドレスと IPv6 アドレスの両方を含むこともできます。

    アドレスプールについては、「Oracle Solaris IP フィルタのアドレスプール機能の使用」を参照してください。

  5. (省略可能) ループバックトラフィックのフィルタリングを有効にします。

    システムに構成されているゾーン間のトラフィックのフィルタリングを行う場合は、ループバックフィルタリングを有効にする必要があります。「ループバックフィルタリングを有効にする方法」を参照してください。ゾーンに適用する適切な規則セットも必ず定義してください。

  6. Oracle Solaris IP フィルタをアクティブにします。


    # svcadm enable network/ipfilter
    

ProcedureOracle Solaris IP フィルタを再度有効にする方法

Solaris IP フィルタがアクティブでない場合は、再度有効にできます。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. Oracle Solaris IP フィルタを有効にし、次のいずれかの方法でフィルタリングをアクティブにします。

    • マシンをリブートします。


      # reboot
      

      注 –

      IP フィルタが有効になっているときに次のファイルが存在する場合は、リブート後にそれらのファイルがロードされます。 /etc/ipf/ipf.conf ファイル (IPv6 を使用している場合は /etc/ipf/ipf6.conf ファイル) または /etc/ipf/ipnat.conf ファイル。


    • 次の一連のコマンドを実行して、Oracle Solaris IP フィルタを有効にし、フィルタリングをアクティブにします。

      1. Oracle Solaris IP フィルタを有効にします。


        # ipf -E
        
      2. パケットフィルタリングのアクティブ化


        # ipf -f filename
        
      3. (省略可能) NAT のアクティブ化


        # ipnat -f filename
        

        注 –

        ネットワークアドレス変換 (NAT) では、IPv6 はサポートされていません。


Procedureループバックフィルタリングを有効にする方法


注 –

ループバックトラフィックをフィルタリングできるのは、システムで Solaris 10 7/07 リリース以降が実行されている場合のみです。以前の Oracle Solaris 10 リリースでは、ループバックフィルタリングはサポートされません。


  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. Oracle Solaris IP フィルタが実行中の場合は、IP フィルタを停止します。


    # svcadm disable network/ipfilter
    
  3. /etc/ipf.conf ファイルまたは /etc/ipf6.conf ファイルを編集して、ファイルの先頭に次の行を追加します。


    set intercept_loopback true;

    この行は、ファイル内で定義されるどの IP フィルタ規則よりも前に置く必要があります。ただし、この行の前にコメントを挿入することはできます。次に例を示します。


    # 
    # Enable loopback filtering to filter between zones 
    # 
    set intercept_loopback true; 
    # 
    # Define policy 
    # 
    block in all 
    block out all 
    <other rules>
    ...
  4. Oracle Solaris IP フィルタを起動します。


    # svcadm enable network/ipfilter
    
  5. ループバックフィルタリングの状態を確認するには、次のコマンドを使用します。


    # ipf —T ipf_loopback
    ipf_loopback    min 0   max 0x1 current 1
    #

    ループバックフィルタリングが無効になっている場合、このコマンドは次の出力を生成します。


    ipf_loopback    min 0   max 0x1 current 0

Oracle Solaris IP フィルタの非アクティブ化と無効化

次のような場合、パケットフィルタリングと NAT を非アクティブ化または無効にしたほうがよいこともあります。

次の作業マップに、Oracle Solaris IP フィルタの機能を非アクティブ化または無効にする手順を示します。

表 26–2 Oracle Solaris IP フィルタの非アクティブ化と無効化 (作業マップ)

作業 

説明 

説明 

パケットフィルタリングの非アクティブ化 

ipf コマンドでパケットフィルタリングを非アクティブにする

「パケットフィルタリングを非アクティブにする方法」

NAT の非アクティブ化 

ipnat コマンドで NAT を非アクティブにする

「NAT を非アクティブにする方法」

パケットフィルタリングと NAT の無効化 

ipf コマンドでパケットフィルタリングと NAT を無効にする

「パケットフィルタリングを無効にする方法」

Procedureパケットフィルタリングを非アクティブにする方法

次の手順は、パケットフィルタリング規則をアクティブなフィルタリング規則セットから消去することによって、Oracle Solaris IP フィルタのパケットフィルタリングを非アクティブにします。この手順では、Oracle Solaris IP フィルタは無効になりません。規則を規則セットに追加することによって、Oracle Solaris IP フィルタを再度アクティブ化することもできます。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のいずれかの方法で Oracle Solaris IP フィルタ規則を非アクティブにします。

    • アクティブな規則セットをカーネルから削除します。


      # ipf -Fa
      

      このコマンドは、すべてのパケットフィルタリング規則を非アクティブにします。

    • 受信パケットのフィルタリング規則を削除します。


      # ipf -Fi
      

      このコマンドは、 受信パケットのパケットフィルタリング規則を非アクティブにします。

    • 送信パケットのフィルタリング規則を削除します。


      # ipf -Fo
      

      このコマンドは、 送信パケットのパケットフィルタリング規則を非アクティブにします。

ProcedureNAT を非アクティブにする方法

次の手順は、NAT 規則をアクティブな NAT 規則セットから消去することで、Oracle Solaris IP フィルタの NAT 規則を非アクティブにします。この手順では、Oracle Solaris IP フィルタは無効になりません。規則を規則セットに追加することによって、Oracle Solaris IP フィルタを再度アクティブ化することもできます。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. NAT をカーネルから削除します。


    # ipnat -FC
    

    -C オプションは、現在の NAT 規則リストのすべてのエントリを削除します。-F オプションは、現在アクティブな NAT マッピングを示す現在の NAT 変換テーブルのすべてのアクティブなエントリを削除します。

Procedureパケットフィルタリングを無効にする方法

この手順を実行すると、パケットフィルタリングと NAT の両方がカーネルから削除されます。この手順を使用する場合は、パケットフィルタリングと NAT を再度有効にするには、Solaris IP フィルタを有効する必要があります。詳細については、「Oracle Solaris IP フィルタを再度有効にする方法」を参照してください。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. パケットフィルタリングを無効にし、すべてのパケットがネットワークを通過できるようにします。


    # ipf –D
    

    注 –

    ipf -D コマンドは、規則セットから規則を消去します。フィルタリングを再び有効にするときには、規則セットに規則を追加する必要があります。


pfil モジュールの使用

この節では、pfil STREAMS モジュールを使用して Oracle Solaris IP フィルタをアクティブまたは非アクティブにする方法と、pfil 統計を参照する方法について説明します。これらの手順は、次の Oracle Solaris 10 リリースのいずれかを実行しているシステムでのみ使用できます。

次の作業マップに、pfil モジュールを構成するための作業を示します。

表 26–3 pfil モジュールの使用 (作業マップ)

タスク 

説明 

参照先 

Oracle Solaris IP フィルタの有効化 

Oracle Solaris IP フィルタは、デフォルトでは無効です。Solaris IP フィルタを手動で有効にするか /etc/ipf/ ディレクトリにある構成ファイルを使用して、システムをリブートする必要があります。

「以前の Oracle Solaris 10 リリースで Oracle Solaris IP フィルタを有効にする方法」

NIC でのパケットフィルタリングのアクティブ化 

pfil モジュールを構成して、NIC でのパケットフィルタリングをアクティブにします

「NIC でパケットフィルタリングをアクティブにする方法」

NIC の Oracle Solaris IP フィルタの非アクティブ化 

NIC を削除し、すべてのパケットが NIC を通過できるようにします。 

「NIC の Oracle Solaris IP フィルタを非アクティブにする方法」

pfil 統計の参照

pfil モジュールの統計を参照すると、ndd コマンドで Oracle Solaris IP フィルタのトラブルシューティングを行う際に役立ちます。

「Oracle Solaris IP フィルタの pfil 統計を参照する方法」

Procedure以前の Oracle Solaris 10 リリースで Oracle Solaris IP フィルタを有効にする方法

Oracle Solaris IP フィルタは Oracle Solaris とともにインストールされます。ただし、パケットフィルタリングはデフォルトでは有効になっていません。次の手順で Oracle Solaris IP フィルタをアクティブ化してください。


注 –

システムで Solaris 10 7/07 リリース以降が実行されている場合は、「Oracle Solaris IP フィルタを有効にする方法」の、パケットフィルタリングフックを使用する手順に従ってください。


  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 適当なファイルエディタを起動して、 /etc/ipf/pfil.ap ファイルを編集します。

    このファイルには、ホスト上のネットワークインタフェースカード (NIC) の名前が含まれています。デフォルトでは、名前はコメントとされます。フィルタリングを実行するネットワークトラフィックのデバイス名をコメントから外してください。システムの NIC の名前が含まれていない場合は、NIC を指定する行を追加してください。


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    hme     -1      0       pfil (Device has been uncommented for filtering)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. network/pfil サービスインスタンスを再起動することによって、/etc/ipf/pfil.ap ファイルの変更内容を有効にします。


    # svcadm restart network/pfil
    
  4. パケットフィルタリング構成ファイルを作成します。

    パケットフィルタリング構成ファイルには、Oracle Solaris IP フィルタが使用するパケットフィルタリング規則が含まれています。起動時にパケットフィルタリング規則をロードする場合は、/etc/ipf/ipf.conf ファイルを編集して IPv4 パケットフィルタリングを実装します。IPv6 パケットフィルタリング規則には /etc/ipf/ipf6.conf ファイルを使用します。起動時にパケットフィルタリング規則をロードしない場合は、適当な場所に ipf.conf ファイルを保存し、パケットフィルタリングを手動でアクティブ化します。パケットのフィルタリングについては、「Oracle Solaris IP フィルタのパケットフィルタリング機能の使用」を参照してください。構成ファイルの処理については、「Oracle Solaris IP フィルタ構成ファイルの作成と編集」を参照してください。

  5. (省略可能) ネットワークアドレス変換 (NAT) 構成ファイルを作成します。


    注 –

    ネットワークアドレス変換 (NAT) では、IPv6 はサポートされていません。


    ネットワークアドレス変換を使用する場合は、ipnat.conf ファイルを作成します。ネットワークアドレス変換を使用する場合は、ipnat.conf ファイルを作成します。 起動時に NAT 規則をロードしない場合は、適当な場所に ipnat.conf ファイルを保存し、NAT 規則を手動でアクティブ化します。

    NAT については、「Oracle Solaris IP フィルタの NAT 機能の使用」を参照してください。

  6. (省略可能) アドレスプール構成ファイルを作成します。

    ひとかたまりのアドレスを単一のアドレスプールとして参照する場合は、ipool.conf ファイルを作成します。起動時にアドレスプール構成ファイルをロードする場合は、アドレスプールを保存する /etc/ipf/ippool.conf というファイルを作成します。起動時にアドレスプール構成ファイルをロードしない場合は、適当な場所に ippool.conf ファイルを保存し、規則を手動でアクティブ化します。

    アドレスプールは、IPv4 アドレスだけまたは IPv6 アドレスだけを含むことができます。IPv4 アドレスと IPv6 アドレスの両方を含むこともできます。

    アドレスプールについては、「Oracle Solaris IP フィルタのアドレスプール機能の使用」を参照してください。

  7. 次のいずれかの方法で Oracle Solaris IP フィルタをアクティブにします。

    • IP フィルタを有効にして、マシンを再起動します。


      # svcadm enable network/ipfilter
      # reboot
      

      注 –

      NIC で ifconfig unplumb コマンドと ifconfig plumb コマンドを安全に使用できない場合は、リブートが必要です。


    • ifconfig unplumb コマンドと ifconfig plumb コマンドを使用して、NIC を有効にします。次に、IP フィルタを有効にします。IPv6 パケットフィルタリングを実装するには、inet6 バージョンのインタフェースが plumb されている必要があります。


      # ifconfig hme0 unplumb
      # ifconfig hme0 plumb 192.168.1.20 netmask 255.255.255.0 up
      # ifconfig hme0 inte6 unplumb
      # ifconfig hme0 inet6 plumb fec3:f849::1/96 up
      # svcadm enable network/ipfilter
      

      ifconfig コマンドの詳細については、ifconfig(1m) のマニュアルページを参照してください。

ProcedureNIC でパケットフィルタリングをアクティブにする方法

/etc/ipf/ipf.conf ファイル (IPv6 を使用している場合は /etc/ipf/ipf6.conf ファイル) が存在する場合は、Oracle Solaris IP フィルタは起動時に有効になります。Oracle Solaris IP フィルタを有効にしたあと、NIC でフィルタリングを有効にする必要がある場合は、次の手順で行います。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 適当なファイルエディタを起動して、 /etc/ipf/pfil.ap ファイルを編集します。

    このファイルには、ホスト上の NIC の名前が含まれています。デフォルトでは、名前はコメントとされます。フィルタリングを実行するネットワークトラフィックのデバイス名をコメントから外してください。システムの NIC の名前が含まれていない場合は、NIC を指定する行を追加してください。


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    hme     -1      0       pfil (Device has been uncommented for filtering)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. network/pfil サービスインスタンスを再起動することによって、/etc/ipf/pfil.ap ファイルの変更内容を有効にします。


    # svcadm restart network/pfil
    
  4. 次の方法のいずれかで NIC を有効にします。

    • マシンをリブートします。


      # reboot
      

      注 –

      NIC で ifconfig unplumb コマンドと ifconfig plumb コマンドを安全に使用できない場合は、リブートが必要です。


    • unplumbplumb オプションを指定して ifconfig コマンドを実行し、フィルタリングする NIC を有効にします。IPv6 パケットフィルタリングを実装するには、inet6 バージョンの各インタフェースが plumb されている必要があります。


      # ifconfig hme0 unplumb
      # ifconfig hme0 plumb 192.168.1.20  netmask 255.255.255.0  up
      # ifconfig hme0 inet6 unplumb
      # ifconfig hme0 inet6 plumb fec3:f840::1/96 up
      

      ifconfig コマンドの詳細については、ifconfig(1m) のマニュアルページを参照してください。

ProcedureNIC の Oracle Solaris IP フィルタを非アクティブにする方法

NIC でフィルタリングパケットを停止するには、次の手順を実行します。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 適当なファイルエディタを起動して、 /etc/ipf/pfil.ap ファイルを編集します。

    このファイルには、ホスト上の NIC の名前が含まれています。ネットワークトラフィックのフィルタリングに使用されていた NIC は、コメントから外されます。ネットワークトラフィックのフィルタリングで使用しなくなったデバイスの名前をコメントにします。


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    #hme    -1      0       pfil (Commented-out device no longer filters network traffic)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. 次の方法のいずれかで NIC を非アクティブにします。

    • マシンをリブートします。


      # reboot
      

      注 –

      NIC で ifconfig unplumb コマンドと ifconfig plumb コマンドを安全に使用できない場合は、リブートが必要です。


    • unplumbplumb オプションを指定して ifconfig コマンドを実行し、NIC を非アクティブにします。IPv6 パケットフィルタリングを非アクティブにするには、inet6 バージョンの各インタフェースを unplumb する必要があります。次の手順を実行します。システムのサンプルデバイスは hme です。

      1. 無効にするデバイスのメジャー番号を特定します。


        # grep hme /etc/name_to_major
        hme 7
      2. hme0 の現在の autopush 構成を表示します。


        # autopush -g -M 7 -m 0
           Major     Minor     Lastminor       Modules
               7      ALL          -           pfil
      3. その autopush 構成を削除します。


        # autopush -r -M 7 -m 0
        
      4. デバイスを開いて IP アドレスを割り当てます。


        # ifconfig hme0 unplumb
        # ifconfig hme0 plumb 192.168.1.20  netmask 255.255.255.0  up
        # ifconfig hme0 inet6 unplumb
        # ifconfig hme0 inet6 plumb fec3:f840::1/96 up
        

        ifconfig コマンドの詳細については、ifconfig(1m) のマニュアルページを参照してください。

ProcedureOracle Solaris IP フィルタの pfil 統計を参照する方法

Oracle Solaris IP フィルタをトラブルシューティングするときに pfil 統計を参照できます。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. pfil 統計の参照


    # ndd -get /dev/pfil qif_status
    

例 26–1 Oracle Solaris IP フィルタの pfil 統計の参照

次の例は、pfil 統計の参照方法を示しています。


# ndd -get /dev/pfil qif_status
ifname ill q OTHERQ num sap hl nr nw bad copy copyfail drop notip nodata
   notdata
QIF6 0 300011247b8 300011248b0 6 806 0 4 9 0 0 0 0 0 0 0
dmfe1 3000200a018 30002162a50 30002162b48 5 800 14 171 13681 0 0 0 0 0 0 0

Oracle Solaris IP フィルタ規則セットの処理

次の作業マップに、Oracle Solaris IP フィルタの規則セットに関する手順を示します。

表 26–4 Oracle Solaris IP フィルタ規則セットの処理 (作業マップ)

作業 

説明 

参照先 

Oracle Solaris IP フィルタのパケットフィルタリング規則セットの管理、参照、変更 

 

「Oracle Solaris IP フィルタのパケットフィルタリング規則セットの管理」

 

アクティブなパケットフィルタリング規則セットを参照する 

「アクティブなパケットフィルタリング規則セットを参照する方法」

 

アクティブでないパケットフィルタリング規則セットを参照する 

「アクティブでないパケットフィルタリング規則セットを参照する方法」

 

別のアクティブな規則セットをアクティブにする 

「別のパケットフィルタリング規則セット、または更新されたパケットフィルタリング規則セットをアクティブにする方法」

 

規則セットを削除する 

「パケットフィルタリング規則セットを削除する方法」

 

規則セットへ規則を追加する 

「アクティブなパケットフィルタリング規則セットに規則を追加する方法」

「アクティブでないパケットフィルタリング規則セットに規則を追加する方法」

 

アクティブな規則セットとアクティブでない規則セット間を移動する 

「アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットを切り替える方法」

 

アクティブでない規則セットをカーネルから削除する 

「カーネルからアクティブでないパケットフィルタリング規則セットを削除する方法」

Oracle Solaris IP フィルタの NAT 規則の管理、参照、変更 

 

「Oracle Solaris IP フィルタ向け NAT 規則の管理」

 

アクティブな NAT 規則を参照する 

「アクティブな NAT 規則を参照する方法」

 

NAT 規則を削除する 

「NAT 規則を削除する方法」

 

NAT 規則へさらに規則を追加する 

「NAT 規則に規則を追加する方法」

Oracle Solaris IP フィルタのアドレスプールの管理、参照、変更 

 

「Oracle Solaris IP フィルタのアドレスプールの管理」

 

アクティブなアドレスプールを参照する 

「アクティブなアドレスプールを参照する方法」

 

アドレスプールを削除する 

「アドレスプールを削除する方法」

 

アドレスプールへさらに規則を追加する 

「規則をアドレスプールに追加する方法」

Oracle Solaris IP フィルタのパケットフィルタリング規則セットの管理

Solaris IP フィルタが有効な場合、アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットの両方をカーネルに置くことができます。アクティブな規則セットによって、受信パケットと送信パケットに対して実行するフィルタリングが決まります。アクティブでない規則セットでも規則を格納します。アクティブでない規則セットは、アクティブな規則セットにしない限り、使用されることはありません。アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットの両方を管理、参照、変更できます。

Procedureアクティブなパケットフィルタリング規則セットを参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. カーネルにロードされているアクティブなパケットフィルタリング規則セットを参照します。


    # ipfstat -io
    

例 26–2 アクティブなパケットフィルタリング規則セットの参照

次の例は、カーネルにロードされたアクティブなパケットフィルタリング規則セットからの出力を示しています。


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe1 from 192.168.1.0/24 to any
pass in all
block in on dmfe1 from 192.168.1.10/32 to any

Procedureアクティブでないパケットフィルタリング規則セットを参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. アクティブでないパケットフィルタリング規則セットを参照します。


    # ipfstat -I -io
    

例 26–3 アクティブでないパケットフィルタリング規則セットの参照

次の例は、アクティブでないパケットフィルタリング規則セットからの出力を示しています。


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all

Procedure別のパケットフィルタリング規則セット、または更新されたパケットフィルタリング規則セットをアクティブにする方法

次のいずれかのタスクを実行する場合には、ここで示す手順を実行します。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次の手順から 1 つを選択します。

    • まったく異なる規則セットをアクティブにする場合は、別個のファイルを選択し、そこに新規規則セットを作成します。

    • 規則セットを含む構成ファイルを編集して、現在の規則セットを更新します。

  3. 現在の規則セットを削除し、新しい規則セットをロードします。


    # ipf -Fa -f filename
    

    filename には、新しい規則セットを含む新規ファイル、またはアクティブな規則セットを含む更新されたファイルを指定できます。

    アクティブな規則セットがカーネルから削除されます。filename ファイル内の規則がアクティブな規則セットになります。


    注 –

    現在の構成ファイルの再読み込みをしていても、このコマンドを実行する必要があります。実行しないと、以前の規則セットがアクティブであり続けるため、更新した構成ファイル内の変更された規則セットが適用されません。

    更新した規則セットをロードするのに ipf -D svcadm restart などのコマンドを使わないでください。これらのコマンドは、新しい規則セットをロードする前にファイアウォールを無効にするため、ネットワークが危険にさらされます。



例 26–4 別のパケットフィルタリング規則セットのアクティブ化

次の例は、あるパケットフィルタリング規則セットを、別の構成ファイル /etc/ipf/ipf.conf 内の別のパケットフィルタリング規則セットに置換する方法を示しています。


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe all
# ipf -Fa -f /etc/ipf/ipf.conf
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any


例 26–5 更新したパケットフィルタリング規則セットの再読み込み

次の例は、現在アクティブでこれから更新するパケットフィルタリング規則セットを再読み込みする方法を示しています。この例で使用しているファイルは、/etc/ipf/ipf.conf です。


# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any

(Edit the /etc/ipf/ipf.conf configuration file.)

# ip -Fa -f /etc/ipf/ipf.conf
# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any
block in quick on elx10 from 192.168.0.0/12 to any

Procedureパケットフィルタリング規則セットを削除する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 規則セットを削除します。


    # ipf -F [a|i|o]
    
    -a

    すべてのフィルタリング規則を規則セットから削除します。

    -i

    受信パケットのフィルタリング規則を削除します。

    -o

    送信パケットのフィルタリング規則を削除します。


例 26–6 パケットフィルタリング規則セットの削除

次の例は、すべてのフィルタリング規則をアクティブなフィルタリング規則セットから削除する方法を示しています。


# ipfstat -io
block out log on dmf0 all
block in log quick from 10.0.0.0/8 to any
# ipf -Fa
# ipfstat -io
empty list for ipfilter(out)
empty list for ipfilter(in)

Procedureアクティブなパケットフィルタリング規則セットに規則を追加する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のいずれかの方法で規則をアクティブな規則セットに追加します。

    • ipf -f - コマンドを使用して、コマンド行で、規則セットに規則を追加します。


      # echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
      
    • 次のコマンドを実行します。

      1. 適当なファイルに規則セットを作成します。

      2. 作成しておいた規則をアクティブな規則セットに追加します。


        # ipf -f filename
        

        filename の規則がアクティブな規則セットの最後に追加されます。Solaris IP フィルタは「最後に一致した規則を採用する」アルゴリズムを使用するため、quick キーワードを使用していないときは、追加した規則によってフィルタリングの優先順位が決まります。パケットが quick キーワードを含む規則に一致する場合は、その規則に対する処理が実行され、それ以降の規則はチェックされません。


例 26–7 アクティブなパケットフィルタリング規則セットへの規則の追加

次の例は、コマンド行から、アクティブなパケットフィルタリング規則セットに規則を追加する方法を示しています。


# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
# echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on dmfe1 proto tcp from 10.1.1.1/32 to any

Procedureアクティブでないパケットフィルタリング規則セットに規則を追加する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 適当なファイルに規則セットを作成します。

  3. 作成しておいた規則をアクティブでない規則セットに追加します。


    # ipf -I -f filename
    

    filename の規則がアクティブでない規則セットの最後に追加されます。Solaris IP フィルタは「最後に一致した規則を採用する」アルゴリズムを使用するため、quick キーワードを使用していないときは、追加した規則によってフィルタリングの優先順位が決まります。パケットが quick キーワードを含む規則に一致する場合は、その規則に対する処理が実行され、それ以降の規則はチェックされません。


例 26–8 アクティブでない規則セットへの規則の追加

次の例は、ファイルからアクティブでない規則セットに規則を追加する方法を示しています。


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
# ipf -I -f /etc/ipf/ipf.conf
# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
block in log quick from 10.0.0.0/8 to any

Procedureアクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットを切り替える方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. アクティブな規則セットとアクティブでない規則セットを切り替えます。


    # ipf -s
    

    このコマンドを使用すると、カーネル内のアクティブな規則セットとアクティブでない規則セットを切り替えることができます。なお、アクティブでない規則セットが空の場合は、パケットフィルタリングは行われません。


例 26–9 アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットの切り替え

次の例は、ipf - s コマンドの使用によって、どのようにアクティブでない規則セットがアクティブな規則セットになり、アクティブな規則セットがアクティブでない規則セットになるのかを示しています。


Procedureカーネルからアクティブでないパケットフィルタリング規則セットを削除する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 全削除コマンドで、アクティブでない規則セットを指定します。


    # ipf -I -Fa
    

    このコマンドが、アクティブでない規則セットをカーネルから消去します。


    注 –

    続けて ipf -s を実行すると、空のアクティブでない規則セットがアクティブな規則セットになります。アクティブな規則セットが空の場合は、フィルタリングが行われません



例 26–10 カーネルからのアクティブでないパケットフィルタリング規則セットの削除

次の例は、すべての規則が削除されるように、アクティブでないパケットフィルタリング規則セットを消去する方法を示しています。


# ipfstat -I -io
empty list for inactive ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on dmfe1 proto tcp from 10.1.1.1/32 to any
# ipf -I -Fa
# ipfstat -I -io
empty list for inactive ipfilter(out)
empty list for inactive ipfilter(in)

Oracle Solaris IP フィルタ向け NAT 規則の管理

次の手順で NAT 規則を管理、参照および変更します。

Procedureアクティブな NAT 規則を参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. アクティブな NAT 規則を参照します。


    # ipnat -l
    

例 26–11 アクティブな NAT 規則の参照

次の例は、アクティブな NAT 規則セットからの出力を示しています。


# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:

ProcedureNAT 規則を削除する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 現在の NAT 規則を削除します。


    # ipnat -C
    

例 26–12 NAT 規則の削除

次の例は、現在の NAT 規則のエントリを削除する方法を示してます。


# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:
# ipnat -C
1 entries flushed from NAT list
# ipnat -l
List of active MAP/Redirect filters:

List of active sessions:

ProcedureNAT 規則に規則を追加する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のいずれかの方法で規則をアクティブな規則セットに追加します。

    • ipnat-f - コマンドを使用して、コマンド行で、NAT 規則セットに規則を追加します。


      # echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
      
    • 次のコマンドを実行します。

      1. 適当なファイルに追加の NAT 規則を作成します。

      2. 作成しておいた規則をアクティブな NAT 規則に追加します。


        # ipnat -f filename
        

        filename の規則がアクティブな NAT 規則の最後に追加されます。


例 26–13 NAT 規則セットへの規則の追加

次の例は、コマンド行から、NAT 規則セットに規則を追加する方法を示しています。


# ipnat -l
List of active MAP/Redirect filters:

List of active sessions:
# echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:

Oracle Solaris IP フィルタのアドレスプールの管理

次の手順でアドレスプールを管理、参照および変更します。

Procedureアクティブなアドレスプールを参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. アクティブなアドレスプールを参照します。


    # ippool -l
    

例 26–14 アクティブなアドレスプールの参照

次の例は、アクティブなアドレスプールの内容を参照する方法を示しています。


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };

Procedureアドレスプールを削除する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 現在のアドレスプールのエントリを削除します。


    # ippool -F
    

例 26–15 アドレスプールの削除

次の例は、アドレスプールを削除する方法を示しています。


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };
# ippool -F
1 object flushed
# ippool -l

Procedure規則をアドレスプールに追加する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のいずれかの方法で規則をアクティブな規則セットに追加します。

    • ippool-f - コマンドを使用して、コマンド行で、規則セットに規則を追加します。


      # echo "table role = ipf type = tree number = 13 
      {10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24};" | ippool -f -
      
    • 次のコマンドを実行します。

      1. 適当なファイルに追加のアドレスプールを作成します。

      2. 作成しておいた規則をアクティブなアドレスプールに追加します。


        # ippool -f filename
        

        filename の規則がアクティブなアドレスプールの最後に追加されます。


例 26–16 アドレスプールへの規則の追加

次の例は、コマンド行から、アドレスプール規則セットにアドレスプールを追加する方法を示しています。


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };
# echo "table role = ipf type = tree number = 100
 {10.0.0.0/32, 172.16.1.2/32, 192.168.1.0/24};" | ippool -f -
# ippool -l
table role = ipf type = tree number = 100
        { 10.0.0.0/32, 172.16.1.2/32, 192.168.1.0/24; };
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };

Oracle Solaris IP フィルタの統計および情報の表示

表 26–5 Oracle Solaris IP フィルタの統計および情報の表示 (作業マップ)

作業 

説明 

説明 

状態テーブルの参照 

ipfstat コマンドで、パケットフィルタリングに関する情報を取得する

「Oracle Solaris IP フィルタの状態テーブルを参照する方法」

状態統計の参照 

ipfstat -s コマンドでパケット状態情報の統計を参照する

「Oracle Solaris IP フィルタの状態統計を参照する方法」

NAT 統計の参照 

ipnat -s コマンドで NAT 統計を参照する

「Oracle Solaris IP フィルタの NAT 統計を参照する方法」

アドレスプール統計の参照 

ippool - s コマンドでアドレスプール統計を参照する

「Oracle Solaris IP フィルタのアドレスプール統計情報を表示する方法」

ProcedureOracle Solaris IP フィルタの状態テーブルを参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 状態テーブルを参照します。


    # ipfstat
    

    注 –

    -t オプションを使用すると、状態テーブルをトップユーティリティー形式で参照できます。



例 26–17 Oracle Solaris IP フィルタの状態テーブルの参照

次の例は、状態テーブルの参照方法を示しています。


# ipfstat
bad packets:            in 0    out 0
 input packets:         blocked 160 passed 11 nomatch 1 counted 0 short 0
output packets:         blocked 0 passed 13681 nomatch 6844 counted 0 short 0
 input packets logged:  blocked 0 passed 0
output packets logged:  blocked 0 passed 0
 packets logged:        input 0 output 0
 log failures:          input 0 output 0
fragment state(in):     kept 0  lost 0
fragment state(out):    kept 0  lost 0
packet state(in):       kept 0  lost 0
packet state(out):      kept 0  lost 0
ICMP replies:   0       TCP RSTs sent:  0
Invalid source(in):     0
Result cache hits(in):  152     (out):  6837
IN Pullups succeeded:   0       failed: 0
OUT Pullups succeeded:  0       failed: 0
Fastroute successes:    0       failures:       0
TCP cksum fails(in):    0       (out):  0
IPF Ticks:      14341469
Packet log flags set: (0)
        none

ProcedureOracle Solaris IP フィルタの状態統計を参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 状態統計を参照します。


    # ipfstat -s
    

例 26–18 Oracle Solaris IP フィルタの状態統計の参照

次の例は、状態統計の参照方法を示しています。


# ipfstat -s
IP states added:
        0 TCP
        0 UDP
        0 ICMP
        0 hits
        0 misses
        0 maximum
        0 no memory
        0 max bucket
        0 active
        0 expired
        0 closed
State logging enabled

State table bucket statistics:
        0 in use        
        0.00% bucket usage
        0 minimal length
        0 maximal length
        0.000 average length

ProcedureOracle Solaris IP フィルタの NAT 統計を参照する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. NAT 統計の参照


    # ipnat -s
    

例 26–19 Oracle Solaris IP フィルタの NAT 統計の参照

次の例は、NAT 統計の参照方法を示しています。


# ipnat -s
mapped  in      0       out     0
added   0       expired 0
no memory       0       bad nat 0
inuse   0
rules   1
wilds   0

ProcedureOracle Solaris IP フィルタのアドレスプール統計情報を表示する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. アドレスプール統計の参照


    # ippool -s
    

例 26–20 Oracle Solaris IP フィルタのアドレスプール統計の参照

次の例は、アドレスプール統計の参照方法を示しています。


# ippool -s
Pools:  3
Hash Tables:    0
Nodes:  0

Oracle Solaris IP フィルタ用ログファイルの処理

表 26–6 Oracle Solaris IP フィルタログファイルの処理 (作業マップ)

作業 

説明 

説明 

ログファイルの作成 

別個の Oracle Solaris IP フィルタログファイルを作成する 

「Oracle Solaris IP フィルタのログファイルを設定する方法」

ログファイルの参照 

ipmon コマンドで、状態、NAT、通常のログファイルを参照する

「Oracle Solaris IP フィルタのログファイルを参照する方法」

パケットログバッファーの消去 

ipmon -F コマンドでパケットログバッファーの内容を削除する

「パケットログファイルを消去する方法」

ロギングされたパケットのファイルへの保存 

あとで参照できるようにロギングされたパケットをファイルに保存する 

「ロギングされたパケットをファイルに保存する方法」

ProcedureOracle Solaris IP フィルタのログファイルを設定する方法

デフォルトでは、Oracle Solaris IP フィルタのすべてのログ情報が syslogd ファイルに記録されます。Oracle Solaris IP フィルタのトラフィック情報を、デフォルトログファイルに記録される可能性のあるほかのデータとは別個に記録するため、ログファイルを設定することをお勧めします。次の手順を実行します。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/syslog.conf を編集して、次の 2 行を追加します。


    # Save IPFilter log output to its own file 
    local0.debug             /var/log/log-name
    

    注 –

    2 番目の行の local0.debug/var/log/log-name との区切りには、Space バーではなく Tab キーを必ず使用してください。


  3. 新規ログファイルを作成します。


    # touch /var/log/log-name
    
  4. system-log サービスを再起動します。


    # svcadm restart system-log
    

例 26–21 Oracle Solaris IP フィルタログの作成

次の例は、ipmon.log を作成して IP フィルタ情報を保存する方法を示しています。

/etc/syslog.conf に、次の記述を追加します。


# Save IPFilter log output to its own file 
local0.debug             /var/log/ipmon.log

コマンド行で、次のコマンドを実行します。


# touch /var/log/ipmon.log
# svcadm restart system-log

ProcedureOracle Solaris IP フィルタのログファイルを参照する方法

始める前に

Oracle Solaris IP フィルタデータの記録用に、別個のログファイルを作成することをお勧めします。詳細は、「Oracle Solaris IP フィルタのログファイルを設定する方法」を参照してください。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 状態、NAT、または通常のログファイルを参照します。ログファイルを参照するには、適切なオプションと共に次のコマンドを入力してください。


    # ipmon -o [S|N|I] filename
    
    S

    状態ログファイルを表示します。

    N

    NAT ログファイルを表示します。

    I

    通常の IP ログファイルを表示します。

    状態、NAT、および通常のログファイルをすべて表示するには、すべてのオプションを使用します。


    # ipmon -o SNI filename
    
    • ipmon デーモンを最初に手動で停止した場合は、次のコマンドを使って状態、NAT、および Oracle Solaris IP フィルタログファイルを表示することもできます。


      # ipmon -a filename
      

      注 –

      ipmon デーモンが実行中の場合は、ipmon -a 構文を使用しないでください。通常、このデーモンは、システムのブート時に自動的に起動されます。ipmon -a コマンドを実行すると、ipmon の別のコピーも開かれます。この場合、両方のコピーが同じログ情報を読み取るため、一方だけが特定のログメッセージを取得します。


    ログファイルの参照については、ipmon(1M) のマニュアルページを参照してください。


例 26–22 Oracle Solaris IP フィルタのログファイルの参照

次の例は、/var/ipmon.log からの出力を示しています。


# ipmon -o SNI /var/ipmon.log
02/09/2004 15:27:20.606626 hme0 @0:1 p 129.146.157.149 -> 
129.146.157.145 PR icmp len 20 84 icmp echo/0 IN

または


# pkill ipmon
# ipmon -aD /var/ipmon.log
02/09/2004 15:27:20.606626 hme0 @0:1 p 129.146.157.149 -> 
129.146.157.145 PR icmp len 20 84 icmp echo/0 IN

Procedureパケットログファイルを消去する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. パケットログバッファーを消去します。


    # ipmon -F
    

例 26–23 パケットログファイルの消去

次の例は、ログファイルが削除されたときの出力を示しています。ログファイルに何も保存されていない場合も、この例のようなレポートが出力されます。


# ipmon -F
0 bytes flushed from log buffer
0 bytes flushed from log buffer
0 bytes flushed from log buffer

Procedureロギングされたパケットをファイルに保存する方法

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. ロギングされたパケットをファイルへ保存します。


    # cat /dev/ipl > filename
    

    Control-C を入力して、コマンド行のプロンプトに戻って、このプロシージャーを中断するまで、パケットは filename ファイルに継続的にロギングされます。


例 26–24 ファイルへのロギングされたパケットの保存

次の例は、ロギングされたパケットがファイルに保存されたときの結果を表します。


# cat /dev/ipl > /tmp/logfile
^C#

# ipmon -f /tmp/logfile
02/09/2004 15:30:28.708294 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 52 -S IN
02/09/2004 15:30:28.708708 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.792611 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 70 -AP IN
02/09/2004 15:30:28.872000 hme0 @0:1 p 129.146.157.149,33923 -> 
 129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.872142 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 43 -AP IN
02/09/2004 15:30:28.872808 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.872951 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 47 -AP IN
02/09/2004 15:30:28.926792 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN 
.
.
(output truncated)

Oracle Solaris IP フィルタ構成ファイルの作成と編集

規則セットとアドレスプールを作成および変更するには、構成ファイルを直接編集する必要があります。構成ファイルは、次のような標準的な UNIX 構文規則に従っています。

ProcedureOracle Solaris IP フィルタの構成ファイルを作成する方法

次の手順では、次のファイルの設定方法を説明します。

  1. IP Filter Management の権利プロファイルを持つ役割またはスーパーユーザーになります。

    IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 適当なファイルエディタを起動します。構成したい機能の構成ファイルを作成または編集します。

    • パケットフィルタリング規則の構成ファイルを作成するには、ipf.conf ファイルを編集します。

      Oracle Solaris IP フィルタは、ipf.conf ファイルに保存したパケットフィルタリング規則を使用します。パケットフィルタリングの規則ファイルを /etc/ipf/ipf.conf ファイルに保存した場合は、システムの起動時に、このファイルがロードされます。フィルタリング規則を起動時にロードしない場合は、このファイルを別の場所に保存します。次に、ipf コマンドで規則をアクティブにします (「別のパケットフィルタリング規則セット、または更新されたパケットフィルタリング規則セットをアクティブにする方法」を参照)。

      パケットフィルタリング規則を作成する方法については、「Oracle Solaris IP フィルタのパケットフィルタリング機能の使用」を参照してください。


      注 –

      ipf.conf ファイルが空の場合は、フィルタリングは行われません。空の ipf.conf ファイルは、次のような規則セットを持っているのと同じです。


      pass in all
      pass out all

    • NAT 規則の構成ファイルを作成するには、 ipnat.conf ファイルを編集します。

      Oracle Solaris IP フィルタは、ipnat.conf ファイルに保存した NAT 規則を使用します。NAT の規則ファイルを /etc/ipf/ipnat.conf ファイルに保存した場合は、システムの起動時に、このファイルがロードされます。NAT 規則を起動時にロードしない場合は、適当な場所に ipnat.conf ファイルを保存します。次に、 ipnat コマンドで NAT 規則をアクティブ化します。

      NAT の規則の作成については、「Oracle Solaris IP フィルタの NAT 機能の使用」を参照してください。

    • アドレスプールの構成ファイルを作成するには、ippool.conf ファイルを編集します。

      Oracle Solaris IP フィルタは、ippool.conf ファイルに保存したアドレスプールを使用します。アドレスプールの規則ファイルを /etc/ipf/ippool.conf ファイルに保存した場合は、システムの起動時に、このファイルがロードされます。アドレスプールを起動時にロードしない場合は、適当な場所に ippool.conf ファイルを保存します。次に、ippool コマンドでアドレスプールをアクティブ化できます。

      アドレスプールの作成については、「Oracle Solaris IP フィルタのアドレスプール機能の使用」を参照してください。

Oracle Solaris IP フィルタの構成ファイルの例

次の例は、フィルタリング構成で使用されるパケットフィルタリング規則を示しています。


例 26–25 Oracle Solaris IP フィルタのホスト構成

この例は、 elxl ネットワークインタフェースを備えたホストマシンの構成を示しています。


# pass and log everything by default
pass in log on elxl0 all
pass out log on elxl0 all

# block, but don't log, incoming packets from other reserved addresses
block in quick on elxl0 from 10.0.0.0/8 to any
block in quick on elxl0 from 172.16.0.0/12 to any

# block and log untrusted internal IPs. 0/32 is notation that replaces 
# address of the machine running Solaris IP Filter.
block in log quick from 192.168.1.15 to <thishost>
block in log quick from 192.168.1.43 to <thishost>

# block and log X11 (port 6000) and remote procedure call 
# and portmapper (port 111) attempts
block in log quick on elxl0 proto tcp from any to elxl0/32 port = 6000 keep state
block in log quick on elxl0 proto tcp/udp from any to elxl0/32 port = 111 keep state

この規則セットは、最初の段階では、すべてのデータが elxl インタフェースを出入りできる制限なしの規則です。2 番目の規則セットは、プライベートアドレス空間 10.0.0.0 および 172.16.0.0 からの受信パケットがファイアウォールの中に入るのをブロックします。次の規則セットは、ホストマシンからの特定の内部アドレスをブロックします。そして、最後の規則セットは、ポート 6000 およびポート 111 から受信されるパケットをブロックします。



例 26–26 Oracle Solaris IP フィルタのサーバー構成

この例は、Web サーバーとして機能するホストマシンの構成を示しています。このマシンには、eri ネットワークインタフェースがあります。


# web server with an eri interface
# block and log everything by default; then allow specific services
# group 100 - inbound rules
# group 200 - outbound rules
# (0/32) resolves to our IP address)
*** FTP proxy ***


# block short packets which are packets fragmented too short to be real.
block in log quick all with short


# block and log inbound and outbound by default, group by destination
block in log on eri0 from any to any head 100
block out log on eri0 from any to any head 200


# web rules that get hit most often
pass in quick on eri0 proto tcp from any \
to eri0/32 port = http flags S keep state group 100
pass in quick on eri0 proto tcp from any \
to eri0/32 port = https flags S keep state group 100


# inbound traffic - ssh, auth
pass in quick on eri0 proto tcp from any \
to eri0/32 port = 22 flags S keep state group 100
pass in log quick on eri0 proto tcp from any \
to eri0/32 port = 113 flags S keep state group 100
pass in log quick on eri0 proto tcp from any port = 113 \
to eri0/32 flags S keep state group 100


# outbound traffic - DNS, auth, NTP, ssh, WWW, smtp
pass out quick on eri0 proto tcp/udp from eri0/32 \
to any port = domain flags S keep state group 200
pass in quick on eri0 proto udp from any port = domain to eri0/32 group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = 113 flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 port = 113 \
to any flags S keep state group 200

pass out quick on eri0 proto udp from eri0/32 to any port = ntp group 200
pass in quick on eri0 proto udp from any port = ntp to eri0/32 port = ntp group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = ssh flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = http flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 \
to any port = https flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = smtp flags S keep state group 200


# pass icmp packets in and out
pass in quick on eri0 proto icmp from any to eri0/32  keep state group 100
pass out quick on eri0 proto icmp from eri0/32 to any keep state group 200


# block and ignore NETBIOS packets
block in quick on eri0 proto tcp from any \
to any port = 135 flags S keep state group 100

block in quick on eri0 proto tcp from any port = 137 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any to any port = 137 group 100
block in quick on eri0 proto udp from any port = 137 to any group 100

block in quick on eri0 proto tcp from any port = 138 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any port = 138 to any group 100

block in quick on eri0 proto tcp from any port = 139 to any flags S keep state
group 100
block in quick on eri0 proto udp from any port = 139 to any group 100


例 26–27 Oracle Solaris IP フィルタのルーター構成

この例は、内部インタフェース ce0 と外部インタフェース ce1 を備えるルーターの構成を示しています。


# internal interface is ce0 at 192.168.1.1
# external interface is ce1 IP obtained via DHCP
# block all packets and allow specific services
*** NAT ***
*** POOLS ***


# Short packets which are fragmented too short to be real.
block in log quick all with short


# By default, block and log everything.
block in log on ce0 all
block in log on ce1 all
block out log on ce0 all
block out log on ce1 all


# Packets going in/out of network interfaces that aren't on the loopback
# interface should not exist.
block in log quick on ce0 from 127.0.0.0/8 to any
block in log quick on ce0 from any to 127.0.0.0/8
block in log quick on ce1 from 127.0.0.0/8 to any
block in log quick on ce1 from any to 127.0.0.0/8


# Deny reserved addresses.
block in quick on ce1 from 10.0.0.0/8 to any
block in quick on ce1 from 172.16.0.0/12 to any
block in log quick on ce1 from 192.168.1.0/24 to any
block in quick on ce1 from 192.168.0.0/16 to any


# Allow internal traffic
pass in quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24
pass out quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24


# Allow outgoing DNS requests from our servers on .1, .2, and .3
pass out quick on ce1 proto tcp/udp from ce1/32 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.2 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.3 to any port = domain keep state


# Allow NTP from any internal hosts to any external NTP server.
pass in quick on ce0 proto udp from 192.168.1.0/24 to any port = 123 keep state
pass out quick on ce1 proto udp from any to any port = 123 keep state


# Allow incoming mail
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = smtp keep state


# Allow outgoing connections: SSH, WWW, NNTP, mail, whois
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 22 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 22 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 443 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 443 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = nntp keep state
block in quick on ce1 proto tcp from any to any port = nntp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = nntp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = smtp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = whois keep state
pass out quick on ce1 proto tcp from any to any port = whois keep state


# Allow ssh from offsite
pass in quick on ce1 proto tcp from any to ce1/32 port = 22 keep state


# Allow ping out
pass in quick on ce0 proto icmp all keep state
pass out quick on ce1 proto icmp all keep state


# allow auth out
pass out quick on ce1 proto tcp from ce1/32 to any port = 113 keep state
pass out quick on ce1 proto tcp from ce1/32 port = 113 to any keep state


# return rst for incoming auth
block return-rst in quick on ce1 proto tcp from any to any port = 113 flags S/SA


# log and return reset for any TCP packets with S/SA
block return-rst in log on ce1 proto tcp from any to any flags S/SA


# return ICMP error packets for invalid UDP packets
block return-icmp(net-unr) in proto udp all