Oracle® Solaris 11.2 でのネットワークのセキュリティー保護

印刷ビューの終了

更新: 2014 年 9 月
 
 

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

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


注 -  次の手順に、IPv4 ネットワークの例を示します。IPv6 パケットの場合、–IP フィルタサービスのデフォルトを表示する方法Step 2 で説明するように、IP フィルタサービスのデフォルトを表示する方法 オプションを使用します。

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

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  • アクティブなパケットフィルタリング規則セットを表示します。

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

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

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

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

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

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

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

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

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

  • IP フィルタが現在使用しているパケットフィルタリング規則セット以外のパケットフィルタリング規則セットをアクティブにする

  • 新規更新されたフィルタリング規則セットを再読み込みする

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  1. 次の手順から 1 つを選択します。
    • まったく異なる規則セットをアクティブにする場合は、別個のファイルに新規規則セットを作成します。

    • 構成ファイル内の現在の規則セットを更新します。

  2. 現在の規則セットを削除し、新しい規則セットをロードします。
    # ipf -Fa -f filename

    filename 内の規則によって、アクティブな規則セットが置き換えられます。


    注 -  更新した規則セットをロードするために ipf -D svcadm restart などのコマンドを使わないでください。これらのコマンドは、新しい規則セットをロードする前にファイアウォールを無効にするため、ネットワークが危険にさらされます。
使用例 5-1  別のパケットフィルタリング規則セットのアクティブ化

次の例は、パケットフィルタリング規則セットを別の規則セットに置き換える方法を示しています。

# ipfstat -io
empty list for ipfilter(out)
pass in quick on net0 all
# ipf -Fa -f /etc/ipf/ipfnew.conf
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
使用例 5-2  更新したパケットフィルタリング規則セットの再読み込み

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

オプションとして、アクティブなルールセットを一覧表示します。

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

次に、/etc/ipf/myorg.ipf.conf 構成ファイルを編集してサービスをリフレッシュし、アクティブなルールセットを再度一覧表示します。

# svcadm refresh network/ipfilter
# ipfstat -io
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any
block in quick on net1 from 192.168.0.0/12 to any

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

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  • 規則セットを削除します。
    # ipf -F [a|i|o]
    –a

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

    –i

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

    –o

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

使用例 5-3  パケットフィルタリング規則セットの削除

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

# ipfstat -io
block out log on net0 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)

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

既存のルールセットにルールを追加すると、テストまたはトラブルシューティングの際に役立つことがあります。規則を追加した場合も IP フィルタサービスは有効なままになります。ただし、サービスがリフレッシュされるか、再起動されるか、有効にされると、規則は IP フィルタサービスのプロパティーであるファイル内に存在しない限り、失われます。

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  • 次のいずれかの方法で規則をアクティブな規則セットに追加します。
    • ipf -f - コマンドを使用して、コマンド行で、ルールセットにルールを追加します。

      # echo "block in on net1 proto tcp from 10.1.1.1/32 to any" | ipf -f -

      サービスのリフレッシュ、再起動、または有効化時に、これらの追加された規則は IP フィルタ構成に含まれません。

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

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

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

        # ipf -f filename

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

    filename が、IP フィルタ構成ファイルのいずれかのプロパティーの値である場合、サービスの有効化、再起動、またはリフレッシュ時に規則が再読み込みされます。そうでない場合は、追加された規則は一時規則セットを提供します。

使用例 5-4  アクティブなパケットフィルタリング規則セットへの規則の追加

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

# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
# echo "block in on net1 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 net1 proto tcp from 10.1.1.1/32 to any

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

カーネル内でアクティブでないルールセットを作成すると、テストまたはトラブルシューティングの際に役立つことがあります。規則セットは、IP フィルタサービスを停止せずに、アクティブな規則セットと切り替えることができます。ただし、サービスをリフレッシュするか、再起動するか、有効にする場合、アクティブでない規則セットを追加する必要があります。

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  1. 適当なファイルに規則セットを作成します。
  2. 作成しておいた規則をアクティブでない規則セットに追加します。
    # ipf -I -f filename

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

使用例 5-5  アクティブでない規則セットへの規則の追加

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

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

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

カーネル内で別のルールセットに切り替えると、テストまたはトラブルシューティングの際に役立つことがあります。規則セットは、IP フィルタサービスを停止せずに、アクティブにすることができます。

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  • アクティブな規則セットとアクティブでない規則セットを切り替えます。
    # ipf -s

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


    注 -  IP フィルタサービスがリフレッシュされるか、再起動されるか、有効にされると、IP フィルタサービスのプロパティーであるファイル内にある規則は復元されます。アクティブでない規則セットは復元されません。
使用例 5-6  アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットの切り替え

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

  • ipf -s コマンドを実行する前に、ipfstat -I -io コマンドからの出力でアクティブでない規則セット内の規則が示されます。ipfstat -io コマンドからの出力は、アクティブな規則セットの規則を示します。

    # ipfstat -io
    empty list for ipfilter(out)
    block in log quick from 10.0.0.0/8 to any
    block in on net1 proto tcp from 10.1.1.1/32 to any
    # ipfstat -I -io
    pass out quick on net1 all
    pass in quick on net1 all
    block in log quick from 10.0.0.0/8 to any
  • ipf -s コマンドの実行後、ipfstat -I -io コマンドおよび ipfstat -io コマンドからの出力によって、2 つの規則セットの内容が切り替えられたことが示されます。

    # ipf -s
    Set 1 now inactive
    # ipfstat -io
    pass out quick on net1 all
    pass in quick on net1 all
    block in log quick from 10.0.0.0/8 to any
    # ipfstat -I -io
    empty list for inactive ipfilter(out)
    block in log quick from 10.0.0.0/8 to any
    block in on net1 proto tcp from 10.1.1.1/32 to any

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

始める前に

IP Filter Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  • 全削除コマンドで、アクティブでない規則セットを指定します。
    # ipf -I -Fa

    注 -  続けて ipf -s を実行すると、空のアクティブでない規則セットがアクティブな規則セットになります。アクティブな規則セットが空の場合は、フィルタリングが行われません
使用例 5-7  カーネルからのアクティブでないパケットフィルタリング規則セットの削除

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

# ipfstat -I -io
empty list for inactive ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on net1 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)