ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- IP パケットの入出力に関するパケットフィルタ処理リストの変更
ipf [-6AdDEInoPRrsvVyzZ] [-l block | pass | nomatch] [-T optionlist] [-F i | o | a | s | S] -f filename [-f filename...]
ipf ユーティリティーは、Solaris IP フィルタ機能に関連するコマンド群の 1 つです。ipfilter(5) を参照してください。
ipf ユーティリティーは、設定されたファイル名 (ハイフン (-) は標準入力として扱う) を開き、そのファイルを解析して、パケットフィルタの規則セットに対して追加または削除する規則のセットを抽出します。
解析に問題がない場合は、ipf によって処理された各規則がカーネルの内部リストに追加されます。規則は、ipf に指定したときの順序で内部リストの末尾に追加されます。
ipf の使用は、/dev/ipauth、/dev/ipl、および /dev/ipstate へのアクセスによって制限されます。これらのファイルのデフォルトのアクセス権では、ipf のすべての操作を root ユーザーとして実行する必要があります。
Solaris IP フィルタは、Solaris オペレーティングシステムとともにインストールされます。ただし、パケットフィルタ処理はデフォルトでは有効になっていません。次の手順で Solaris IP フィルタ機能をアクティブ化してください。
IP Filter Management の権利プロファイル (rbac(5) を参照) を持つ役割またはスーパーユーザーになります。
システムおよびサービスのファイアウォールポリシーを構成します。svc.ipfd(1M) および ipf(4) を参照してください。
(省略可能) ネットワークアドレス変換 (NAT) 構成ファイルを作成します。ipnat.conf(4) を参照してください。
(省略可能) アドレスプール構成ファイルを作成します。ippool(4) を参照してください。
ひとかたまりのアドレスを単一のアドレスプールとして参照する場合は、ipool.conf ファイルを作成します。ブート時にアドレスプール構成ファイルをロードする場合は、アドレスプールを保存する /etc/ipf/ippool.conf というファイルを作成します。ブート時にアドレスプール構成ファイルをロードしない場合は、/etc/ipf 以外の場所に ippool.conf ファイルを保存し、規則を手動でアクティブ化します。
次のようにして Solaris IP フィルタを有効にします。
# svcadm enable network/ipfilter
パケットフィルタ処理を一時的に無効にしたあとで再度有効にするには、マシンをリブートするか、次のコマンドを入力します。
# svcadm enable network/ipfilter
これによって基本的に次の ipf コマンドを実行します。
Solaris IP フィルタを有効にします。
# ipf -E
ippools を読み込みます。
# ippool -f <ippool configuration file>
ippool(1M) を参照してください。
(省略可能) パケットフィルタ処理をアクティブ化します。
ipf -f <ipf configuration file>
(省略可能) NAT をアクティブ化します。
ipnat -f <IPNAT configuration file>
ipnat(1M) を参照してください。
注 - システムをリブートすると、IP フィルタ構成が自動的にアクティブ化されます。
次のオプションがサポートされています。
このオプションは、IPv6 規則を解析する場合と読み込む場合に必要です。IPv6 規則の読み込みについては、将来変更される可能性があります。
アクティブなリストを変更するためのリストを設定します (デフォルト)。
デバッグモードを有効にします。フィルタ規則が処理されるたびに、生成されるフィルタ規則の 16 進ダンプが出力されます。
フィルタを無効にします (有効になっている場合)。読み込み可能なカーネルのバージョンでは機能しません。
フィルタを有効にします (無効になっている場合)。読み込み可能なカーネルのバージョンでは機能しません。
フラッシュするフィルタリストを指定します。パラメータとして、i (input、入力)、o (output、出力)、または a (all、すべてのフィルタ規則の削除) のいずれかを指定します。1 文字だけ指定することも、その文字で始まる語全体を指定することもできます。このオプションはほかのオプションの前またはあとに指定できますが、各オプションはコマンド行に指定された順序で実行されます。
状態テーブルからエントリをフラッシュするには、-F オプションと s (完全に確立されていない接続に関する状態情報を削除する場合) または S (状態テーブル全体を削除する場合) を組み合わせて使用します。これら 2 つのオプションは、どちらか 1 つしか指定できません。ipfstat -s の出力には、接続が完全に確立しなかったことを示す両方向の異常とともに、完全に確立された接続が 4/4 として表示されます。
ipf がパケットフィルタの規則リストを変更するのに必要な入力の取得元ファイルを指定します。
アクティブでないリストを変更するためのリストを設定します。
デフォルトのパケットログ機能を切り替えます。このオプションに対する有効な引数は、pass、block、および nomatch です。オプションを設定すると、フィルタ処理を終了し、設定カテゴリと一致したパケットがログに記録されます。これは、読み込まれたどの規則にも一致しないすべてのパケットをログに記録するのに非常に便利です。
ipf が ioctl コールや、現在実行中のカーネルを変更する操作を実行しないようにします。
デフォルトで、入力リスト (デフォルト) ではなく出力リストに規則を追加します (または出力リストから規則を削除します)。
認証規則テーブルに一時的なエントリとして規則を追加します。
IP アドレスからホスト名への解決とポート番号からサービス名への解決の両方を無効にします。
一致するフィルタ規則を、内部リストに追加するのではなく、内部リストから削除します。
現在アクティブなフィルタリストを代替リストと入れ替えます。
IP フィルタのカーネル変数を実行時に変更できるようにします。変数によっては、変更できるようにするために IP フィルタを無効な状態 (-D) にする必要がある場合とそうでない場合があります。optionlist パラメータは、チューニングコマンドをコンマで区切ったリストです。チューニングコマンドは次のいずれかです。
カーネルに含まれるすべての変数と、その最大値、最小値、および現在の値のリストを取得します。
変数の現在の値を取得します。
新しい値を設定します。
次に例を示します。
# Print out all IPFilter kernel tunable parameters ipf -T list # Display the current TCP idle timeout and then set it to 3600 ipf -D -T fr_tcpidletimeout,fr_tcpidletimeout=3600 -E # Display current values for fr_pass and fr_chksrc, then set # fr_chksrc to 1. ipf -T fr_pass,fr_chksrc,fr_chksrc=1
詳細モードを有効にします。規則の処理に関する情報が表示されます。
バージョン情報を表示します。ipf バイナリにコンパイルされたバージョン情報が表示されます。このバイナリはカーネルコードから取得されます (実行中または存在する場合)。ipf バイナリがカーネル内にある場合は、その現在の状態に関する情報 (ログ機能がアクティブかどうかや、デフォルトのフィルタ処理など) が表示されます。
IP フィルタによって管理されているカーネル内部のインタフェースリストを、現在のインタフェースステータスリストを使って手動で再同期します。
入力ファイル内の各規則について、その統計情報を 0 にリセットし、0 にする前の統計情報を表示します。
カーネルに保持されているフィルタ処理関連のグローバル統計情報だけを 0 にリセットします。フラグメントや状態の統計情報には影響しません。
IP フィルタ疑似デバイスへのリンク。
ipf の起動時構成ファイルの場所。ipf(4) を参照してください。
IP フィルタの例が多数含まれています。
属性についての詳細は、attributes(5) を参照してください。
|
ipfstat(1M), ipmon(1M), ipnat(1M), ippool(1M), svcadm(1M), svc.ipfd(1M), ipf(4), ipnat.conf(4), ippool(4), attributes(5), ipfilter(5)
カーネル内部のパケットフィルタ処理リストに実際にコマンドを適用するには、コマンドを root ユーザーとして実行する必要があります。