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

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