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 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。
まったく異なる規則セットをアクティブにする場合は、別個のファイルに新規規則セットを作成します。
構成ファイル内の現在の規則セットを更新します。
# ipf -Fa -f filename
filename 内の規則によって、アクティブな規則セットが置き換えられます。
次の例は、パケットフィルタリング規則セットを別の規則セットに置き換える方法を示しています。
# 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]
すべてのフィルタリング規則を規則セットから削除します。
受信パケットのフィルタリング規則を削除します。
送信パケットのフィルタリング規則を削除します。
次の例は、すべてのフィルタリング規則をアクティブなフィルタリング規則セットから削除する方法を示しています。
# 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 フィルタ構成に含まれません。
次のコマンドを実行します。
適当なファイルに規則セットを作成します。
作成しておいた規則をアクティブな規則セットに追加します。
# ipf -f filename
filename の規則がアクティブな規則セットの最後に追加されます。IP フィルタは「最後に一致した規則を採用する」アルゴリズムを使用するため、quick キーワードを使用しないかぎり、追加した規則によってフィルタリングの優先順位が決まります。パケットが quick キーワードを含む規則に一致する場合は、その規則に対する処理が実行され、それ以降の規則はチェックされません。
filename が、IP フィルタ構成ファイルのいずれかのプロパティーの値である場合、サービスの有効化、再起動、またはリフレッシュ時に規則が再読み込みされます。そうでない場合は、追加された規則は一時規則セットを提供します。
次の例は、コマンド行から、アクティブなパケットフィルタリング規則セットに規則を追加する方法を示しています。
# 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 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。
# ipf -I -f filename
filename の規則がアクティブでない規則セットの最後に追加されます。IP フィルタは「最後に一致した規則を採用する」アルゴリズムを使用するため、quick キーワードを使用しないかぎり、追加した規則によってフィルタリングの優先順位が決まります。パケットが quick キーワードを含む規則に一致する場合は、その規則に対する処理が実行され、それ以降の規則はチェックされません。
次の例は、ファイルからアクティブでない規則セットに規則を追加する方法を示しています。
# 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
このコマンドを使用すると、カーネル内のアクティブな規則セットとアクティブでない規則セットを切り替えることができます。なお、アクティブでない規則セットが空の場合は、パケットフィルタリングは行われません。
次の例は、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
次の例は、すべての規則が削除されるように、アクティブでないパケットフィルタリング規則セットを消去する方法を示しています。
# 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)