JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理 (IP サービス)     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I システム管理の概要: IP サービス

1.  Oracle Solaris TCP/IP プロトコル群 (概要)

パート II TCP/IP の管理

2.  TCP/IP ネットワークの計画 (手順)

3.  IPv6 の紹介(概要)

4.  IPv6 ネットワークの計画 (手順)

5.  TCP/IP ネットワークサービスと IPv4 アドレス指定の構成 (作業)

6.  ネットワークインタフェースの管理 (作業)

7.  IPv6 ネットワークの構成 (手順)

8.  TCP/IP ネットワークの管理 (手順)

9.  ネットワークの問題の障害追跡 (手順)

10.  TCP/IP と IPv4 の詳細 (リファレンス)

11.  IPv6 の詳細 (リファレンス)

パート III DHCP

12.  DHCP について (概要)

13.  DHCP サービスの使用計画 (手順)

14.  DHCP サービスの構成 (手順)

15.  DHCP の管理 (手順)

16.  DHCP クライアントの構成と管理

17.  DHCP の障害追跡 (リファレンス)

18.  DHCP コマンドと DHCP ファイル (リファレンス)

パート IV IP セキュリティー

19.  IP セキュリティーアーキテクチャー (概要)

20.  IPsec の構成 (手順)

21.  IP セキュリティーアーキテクチャー (リファレンス)

22.  インターネットキー交換 (概要)

23.  IKE の設定 (手順)

24.  インターネットキー交換 (リファレンス)

25.  Oracle Solaris の IP フィルタ (概要)

IP フィルタの新機能

パケットフィルタリングフック

IP フィルタの IPv6 パケットフィルタリング

フィルタとは

オープンソースの IPFilter の情報入手先

IP フィルタのパケット処理

IP フィルタの使用ガイドライン

IP フィルタの構成ファイルの使用

IP フィルタ規則セットの操作

IP フィルタのパケットのフィルタリング機能の使用

パケットのフィルタリング規則の構成

IP フィルタの NAT 機能の使用

NAT 規則の構成

IP フィルタのアドレスプール機能の使用

アドレスプールの構成

パケットフィルタリングフック

IP フィルタと pfil STREAMS モジュール

IP フィルタ用の IPv6

IP フィルタのマニュアルページ

26.  IP フィルタ (手順)

パート V モバイル IP

27.  モバイル IP (概要)

28.  モバイル IP の管理 (手順)

29.  モバイル IP のファイルおよびコマンド (リファレンス)

パート VI IPMP

30.  IPMP の紹介 (概要)

31.  IPMP の管理 (手順)

パート VII IP サービス品質 (IPQoS)

32.  IPQoS の紹介 (概要)

33.  IPQoS 対応ネットワークの計画 (手順)

34.  IPQoS 構成ファイルの作成 (手順)

35.  IPQoS の起動と保守(手順)

36.  フローアカウンティングの使用と統計情報の収集 (手順)

37.  IPQoS の詳細 (リファレンス)

用語集

索引

IP フィルタ規則セットの操作

ファイアウォールを管理するために、IP フィルタを使用して、ネットワークトラフィックをフィルタリングするための規則セットを指定します。次の種類の規則セットを作成できます。

さらに、まとまった IP アドレスを参照するために、アドレスプールを作成することもできます。作成したプールは、あとで規則セット内で使用できます。アドレスプールは、規則処理を速めるために役立ちます。また、アドレスプールによって、大きなまとまりのアドレスをより簡単に管理できます。

IP フィルタのパケットのフィルタリング機能の使用

パケットフィルタリング規則セットを使用して、パケットのフィルタリングを設定します。ipf コマンドで、パケットフィルタリング規則セットを処理します。ipf コマンドの詳細については、ipf(1M) コマンドを参照してください。

パケットフィルタリング規則は、ipf コマンドによってコマンド行で作成することも、パケットフィルタリングの構成ファイル内で作成することもできます。起動時にパケットフィルタリング規則をロードする場合は、パケットフィルタリング規則を保存する /etc/ipf/ipf.conf という構成ファイルを作成します。 起動時にパケットフィルタリング規則をロードしない場合は、適当な場所に ipf.conf ファイルを保存し、 ipf コマンドによってパケットフィルタリングを手動でアクティブ化します。

IP フィルタには、アクティブ規則セットと非アクティブ規則セットの 2 つのパケットフィルタリング規則セットを維持管理することができます。大部分の場合、作業ではアクティブ規則セットを使用します。ただし、ipf -I コマンドを使用すると、コマンドアクションを非アクティブ規則リストに適用できます。非アクティブ規則リストは、ユーザーが選択しない限り、IP フィルタによって使用されることはありません。非アクティブ規則リストによって、アクティブなパケットのフィルタリングに影響を与えずに、規則を保存できます。

IP フィルタは、設定された規則リストの最初から最後まで規則を処理してから、パケットの通過またはブロックを行います。IP フィルタは、パケットを通過させるかどうかを決めるフラグを維持管理しています。フラグは、規則セット全体を調べ、最後に一致した規則を基にパケットを通過させるか、ブロックするかを決定します。

このプロセスには、2 つの例外があります。最初の例外は、パケットが quick キーワードを含む規則に一致した場合です。規則が quick キーワードを含む場合は、その規則に対する処理が実行され、それ以降の規則はチェックされません。2 番目の例外は、パケットが group キーワードを含む規則に一致した場合です。パケットがグループに一致すると、グループでタグ付けされた規則だけがチェックされます。

パケットのフィルタリング規則の構成

パケットのフィルタリング規則を作成するには、次の構文を使用します。

action [in|out] option keyword, keyword...

  1. 各規則がアクションを開始します。IP フィルタは、パケットが規則に適合する場合、アクションを実行します。次の一覧に、パケットに対して実行される一般的なアクションを示します。

    block

    パケットはフィルタを通過できません。

    pass

    パケットはフィルタを通過します。

    log

    パケットをロギングしますが、パケットをブロックするか、通過させるかの決定は行いません。ログを参照するには、ipmon コマンドを使用します。

    count

    フィルタの統計にパケットを含めます。統計を参照するには、 ipfstat コマンドを使用します。

    skip number

    フィルタは number フィルタリング規則をスキップします。

    auth

    パケット情報を確認するユーザープログラムが実行するパケット認証を要求します。このプログラムは、パケットを通過させるか、ブロックするかを決定します。

  2. アクション後の出力は、in または out のはずです。ユーザーの選択により、パケットのフィルタリング規則が、受信パケットと発信パケットのどちらに適用されるのかが決定されます。

  3. 次に、オプションの一覧からオプションを選択します。複数のオプションを使用する場合は、次の順序で使用してください。

    log

    規則が最後に一致した規則の場合、パケットをロギングします。ログを参照するには、ipmon コマンドを使用します。

    quick

    パケットが一致した場合、quick オプションを含む規則を実行します。これ以上の規則チェックは行われません。

    on interface-name

    パケットが指定したインタフェースを出入りする場合だけ、規則を適用します。

    dup-to interface-name

    パケットをコピーし、interface-name 上の複製を任意で指定した IP アドレスに送信します。

    to interface-name

    パケットを interface-name の出力キューに移動します。

  4. オプションの指定後、パケットが規則に一致するかどうかを決定するさまざまなキーワードを選択できます。次のキーワードは、以下の順序で使用してください。


    注 - デフォルトでは、構成ファイルのいずれの規則にも一致しないパケットは、すべてフィルタを通過します。


    tos

    16 進数または 10 進数の整数で表されたサービスタイプの値を基に、パケットをフィルタリングします。

    ttl

    生存期間の値を基に、パケットの一致を取ります。パケットに保存されている生存期間の値は、破棄される前にパケットがネットワーク上に存在できる期間を示します。

    proto

    特定のプロトコルに対して一致を取ります。/etc/protocols ファイルに指定されている任意のプロトコル名を使用したり、そのプロトコルを表す 10 進数の数を指定したりできます。キーワード tcp/udp は、TCP または UDP パケットとの一致を取るために使用できます。

    from/to/all/ any

    発信元 IP アドレス、宛先 IP アドレス およびポート番号のいずれか、 またはすべてに対して一致を取ります。all キーワードは、すべての発信元からのパケットおよびすべての宛先へのパケットを受諾するために使用します。

    with

    パケットに関連する指定された属性に対して一致を取ります。オプションがない場合にパケットを一致させるには、キーワードの前に not または no と記述します。

    flags

    設定されている TCP フラグを基にフィルタリングを行う TCP で使用します。TCP フラグについては、ipf(4) のマニュアルページを参照してください。

    icmp-type

    ICMP のタイプによってフィルタリングを行います。このキーワードは proto オプションが icmp に設定されているときに使用され、flags オプションが指定されているときは使用されません。

    keep keep-options

    保存しておくパケットの情報を決定します。使用可能な keep-options には、state オプションと frags オプションなどがあります。state オプションは、セッションに関する情報を、TCP、UDP、および ICMP パケットで保存できます。frags オプションは、パケットのフラグメントに関する情報を保存し、後のフラグメントにその情報を適用します。keep-options は、一致したパケットをアクセス制御リストのチェックなしで、通過させます。

    head number

    番号 number で指定されるフィルタリング規則に対して、新しいグループを作成します。

    group number

    デフォルトグループではなく、グループ番号 number のグループに規則を追加します。ほかのグループを指定しない場合は、すべてのフィルタリング規則がグループ 0 に保存されます。

次の例は、規則を作成するためにパケットのフィルタリング規則構文をまとめる方法を示しています。IP アドレス 192.168.0.0/16 からの受信トラフィックをブロックするには、規則リストに次の規則を含めます。

block in quick from 192.168.0.0/16 to any

パケットフィルタリング規則を記述するときの詳細な文法および構文については、ipf(4) のマニュアルページを参照してください。パケットのフィルタリングに関連する作業については、「IP フィルタのパケットフィルタリング規則セットの管理」を参照してください。この例の IP アドレススキーム (192.168.0.0/16) については、 第 2 章TCP/IP ネットワークの計画 (手順)を参照してください。

IP フィルタの NAT 機能の使用

NAT は、発信元 IP アドレスと宛先 IP アドレスをほかのインターネットアドレスまたはイントラネットアドレスに変換するマッピング規則を設定します。これらの規則は、受信 IP パケットまたは発信 IP パケットの 発信元アドレスおよび宛先アドレスを変更し、パケットを送信します。また、NAT を使用して、あるポートから別のポートにトラフィックの方向を変更することもできます。NAT は、パケットに修正または方向の変更が行われても、パケットの完全性を維持します。

ipnat コマンドは、NAT 規則リストを処理するために使用します。ipnat コマンドの詳細については、ipnat(1M) コマンドを参照してください。

NAT 規則は、 ipnat コマンドを使用してコマンド行で作成することもNAT 構成ファイルで作成することもできます。NAT 構成規則は、ipnat.conf ファイルに保存されます。ネットワークアドレス変換を使用する場合は、ipnat.conf ファイルを作成します。 起動時に NAT 規則をロードしない場合は、適当な場所に ipnat.conf ファイルを保存し、ipnat コマンドによってパケットフィルタリングを手動でアクティブ化します。

NAT 規則は IPv4 と IPv6 アドレス両方に適用できます。しかし、1 つの規則で両方のアドレスの種類を指定することはできません。アドレスの種類ごとに規則を別個に設定する必要があります。IPv6 アドレスを含む NAT 規則では、mapproxy および rdrproxy NAT コマンドを同時に使用することはできません。

NAT 規則の構成

次の構文で NAT 規則を作成します。

command interface-name parameters

  1. 各規則の冒頭には、次のコマンドのいずれかが記述されています。

    map

    ある IP アドレスまたはネットワークを規制のないラウンドロビン方式で別の IP アドレスまたはネットワークにマッピングします。

    rdr

    ある IP アドレスとポートのペアから別の IP アドレスとポートのペアにパケットの方向を変更します。

    bimap

    外部 IP アドレスと内部 IP アドレス間で双方向の NAT を確立します。

    map-block

    静的 IP アドレスをベースにした変換を確立します。このコマンドは、アドレスを指定の範囲に変換するアルゴリズムに基づいています。

  2. このコマンドのあとには、hme0 などのインタフェース名を記述します。

  3. 次に、NAT 構成を決定するさまざまなパラメータを選択します。次に、この種のパラメータの例をいくつか挙げます。

    ipmask

    ネットワークマスクを指定します。

    dstipmask

    ipmask が変換されるアドレスを指定します。

    mapport

    ポート番号の範囲と tcpudp または tcp/udp プロトコルを指定します。

次の例は、NAT 規則を作成するために NAT 規則の構文をまとめる方法を示しています。発信元アドレスが 192.168.1.0/24 のデバイス de0 から発信されるパケットを書き換え、外部に対して発信元アドレスが 10.1.0.0/16 であることを示すには、NAT 規則セットに次の規則を含めます。

map de0 192.168.1.0/24 -> 10.1.0.0/16

次の規則は IPv6 アドレスに適用されます。

map ppp0 fec0:1::/64 -> 2000:1:2::/72 portmap tcp/udp 1025:65000
map-block ppp0 fe80:0:0:209::/64 -> 209:1:2::/72 ports auto
rdr ce0 209::ffff:fe13:e43e port 80 -> fec0:1::e,fec0:1::f port 80 tcp round-robin

NAT 規則を記述する際の詳細な文法と形式については、ipnat(4) のマニュアルページを参照してください。

IP フィルタのアドレスプール機能の使用

アドレスプールは、アドレスとネットマスクのペアのまとまりに名前付けを行います。アドレスプールは、IP アドレスと規則の一致を取るために必要な時間を短縮します。また、アドレスプールによって、大きなまとまりのアドレスをより簡単に管理できます。

アドレスプール構成規則は、ippool.conf ファイルに保存されます。起動時にアドレスプール規則をロードする場合は、アドレスプールの規則を保存する /etc/ipf/ippool.conf というファイルを作成します。 起動時に アドレスプール規則をロードしない場合は、適当な場所に ippool.conf ファイルを保存し、ippool コマンドによってパケットフィルタリングを手動でアクティブ化します。

アドレスプールの構成

次の構文でアドレスプールを作成します。

table role = role-name type = storage-format number = reference-number
table

複数のアドレスへの参照を定義します。

role

IP フィルタでのプールの役割を指定します。この時点で、参照できる役割は ipf だけです。

type

プールの保存形式を指定します。

number

フィルタリング規則が使用する参照番号を指定します。

たとえば、アドレスが 10.1.1.1 および 10.1.1.2 でネットワークが 192.16.1.0 のグループをプール番号 13 で参照する場合、アドレスプールの構成ファイルに次の規則を含めます。

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

次に、フィルタリング規則のプール番号 13 を参照するには、次の例のような規則を構築します。

pass in from pool/13 to any

なお、プールへの参照を含む規則ファイルをロードする前に、プールファイルをロードする必要があります。プールファイルをロードしていない場合、次の出力のようにプールは未定義となります。

# ipfstat -io
empty list for ipfilter(out)
block in from pool/13(!) to any

プールをあとで追加しても、そのプールの追加によってカーネルの規則セットが更新されることはありません。そのプールを参照する規則ファイルも再ロードする必要があります。

パケットフィルタリング規則を記述するときの詳細な文法および構文については、ippool(4) のマニュアルページを参照してください。