スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

パケットフィルタリング(IPフィルタリング)(2)

iptables

□書式

iptables [-t table] -[AD] チェイン ルールの詳細 [オプション]
iptables [-t table] -I チェイン [ルール番号] ルールの詳細 [オプション]
iptables [-t table] -R チェイン ルール番号 ルールの詳細 [オプション]
iptables [-t table] -D チェイン ルール番号 [オプション]
iptables [-t table] -[LFZ] [チェイン] [オプション]
iptables [-t table] -N チェイン
iptables [-t table] -X [チェイン]
iptables [-t table] -P チェイン ターゲット [オプション]
iptables [-t table] -E 旧チェイン名 新チェイン名

□iptablesには、3つの「テーブル」が用意されいる。

filterテーブル ― ネットワークパケットを処理する デフォルトのテーブル。
natテーブル ― 新しい接続を開くようなパケットに対して参照される。
          また、Network Address Translation (NAT)に使用。
mangleテーブル ― パケット変更の特定のタイプ(特別なパケット変換)に使用。

□テーブルによって使用できる「チェイン」が異なる。

filterテーブルで使用可能なチェイン

INPUT ― ホスト用のターゲットとされているネットワークパケット(受信パケット)に適用。
OUTPUT ― ローカル生成のネットワークパケット(送信パケット)に適用。
FORWARD ― ホストを通ってルーティングしたネットワークパケット(マシンを経由するパケット)に適用。

natテーブルで使用可能なチェイン

PREROUTING ― ネットワークパケットが到着すると、すぐに変換。
OUTPUT ― ローカル生成のネットワークパケット(送信パケット)を送信(ルーティング)される前に変換。
POSTROUTING ― ネットワークパケットが出て行くときに変換。

mangleテーブルで使用可能なチェイン

INPUT ― ホスト用のターゲットとされているネットワークパケット(受信パケット)に適用。
OUTPUT ― ローカル生成のネットワークパケット(送信パケット)を送信(ルーティング)される前に変換。
FORWARD ― ホストを通ってルーティングしたネットワークパケット(マシンを経由するパケット)に適用。
PREROUTING ― ネットワークパケットが到着すると、すぐに変換。
POSTROUTING ― ネットワークパケットが出て行くときに変換。

□ターゲット(ルールにマッチしたときのファイアウォールの動作)

ACCEPT    パケットを通過させる
DROP     パケットを破棄し、相手にはなにも返答しない
REJECT   パケットを破棄し、相手にはICMPを使って破棄したことを通知する
REDIRECT port   パケットを指定したポートにリダイレクトする
RETURN   チェイン内のルール評価を終了させる

その他に、SNAT、DNAT等がある

SNAT --to(--to-source) <IPアドレス> [-<IPアドレス>] [:port-port]

パケットの送信アドレスを変換。natテーブル、POSTROUTINGチェインでのみ有効。
ポートを指定すると、変換されたアドレスの指定されたポートで接続することになる。
IPアドレス、ポート共にレンジ指定が可能。

DNAT --to(--to-destination) <IPアドレス> [-<IPアドレス>] [:port-port]

パケットの送信アドレスを変換。natテーブルとPREROUTING、OUTPUTチェイン、これらのチェインから呼び出されるユーザー定義チェインのみで有効。
ポートを指定すると、変換されたアドレスの指定されたポートに接続する。
IPアドレス、ポート共にレンジ指定が可能。

□オプションは複数のグループに分けられる

・コマンド
実行する特定の動作を指定する。基本的に一つしか指定できない。

-A(--append) チェイン ルールの詳細
選択されたチェインの最後に 1 つ以上のルールを追加。

-D(--delete) チェイン ルールの詳細
-D(--delete) チェイン ルール番号
選択されたチェインから 1 つ以上のルールを削除。2 つの使い方がある。
  チェインの中の番号 (最初のルールは1) を指定する場合と、マッチするルールを指定する場合。

-I(--insert) チェイン [ルール番号] ルールの詳細
選択されたチェインにルール番号を指定して1つ以上のルールを挿入。
  ルール番号が 1 の場合、ルールはチェインの先頭に挿入される。
  ルール番号が指定されない場合も先頭に挿入される。

-R(--replace) チェイン ルール番号 ルールの詳細
選択されたチェインでルールを置換。ルール番号は 1 からはじまる。

-L(--list) [チェイン]
選択されたチェインにある全てのルールを一覧表示。
  チェインが指定されない場合、全てのチェインにあるリストを一覧表示。
  
-F(--flush) [チェイン]
選択されたチェイン(指定しなければテーブル内全てのチェイン) の内容を消去。

-Z(--zero) [チェイン]
すべてのチェインのパケットカウンタとバイトカウンタをゼロにする。
  クリアされる直前のカウンタを見るために、-L, --list (一覧表示) オプションと同時に指定可。

-N(--new-chain) チェイン
指定した名前でユーザー定義チェインを作成。同名のターゲットが既に存在してはならない。

-X(--delete-chain) [チェイン]
指定したユーザー定義チェインを削除。そのチェインが参照されていてはならない。
  削除する前に、そのチェインを参照しているルールを削除するか置き換えなければならない。
  引数が与えられない場合、テーブルにあるチェインのうち組み込み済みチェイン以外を全削除。

-P(--policy) チェイン ターゲット
チェインのポリシーを指定したターゲットに設定。
  (ユーザー定義ではない)組み込み済みチェインにしかポリシーは設定不可。
  また、組み込み済みチェインもユーザー定義チェインもポリシーのターゲットには設定不可。

-E(--rename-chain) 旧チェイン名 新チェイン名
ユーザー定義チェインを指定した名前に変更。
  見た目だけの変更なので、テーブルの構造には何も影響しない。

-h
ヘルプ。

・パラメータ

-p(--protocol) [ ! ] プロトコル
ルールで使われるプロトコル、またはチェックされるパケットのプロトコル。
指定できるプロトコルは、 tcp, udp, icmp, all のいずれか 1 つか、数値。
数値には、これらのプロトコルのどれかないし別のプロトコルを表す数値を指定することができる。
プロトコルの前に "!" を置くと、そのプロトコルを除外するという意味になる。
数値 0 は all と同じ。オプションが省略された際のデフォルトはall。

-s(--source) [ ! ] IPアドレス [/マスク]
送信元の指定。 アドレスはホスト名、ネットワーク IP アドレス (/マスクを指定する)、
  通常の IP アドレス、のいずれかである。
  マスクはネットワークマスクまたは数値(/24等)でも可。
  アドレス指定の前に "!" を置くと、そのアドレスを除外するという意味になる。
  フラグ --src は、このオプションの別名である。

-d(--destination) [ ! ] IPアドレス [/マスク]
送信先の指定。
  フラグ --dst は、このオプションの別名である。

-j(--jump) ターゲット
ルールのターゲット、つまり、パケットがマッチした場合にどうするかを指定する。
  ターゲットはユーザー定義チェイン (そのルール自身が入っているチェイン以外) でも、パケットの行方を即時に決定する特別な組み込み済みターゲットでも、拡張されたターゲットでもよい。
  このオプションがルールに指定されなかった場合、ルールにマッチしてもパケットの行方に何も影響しないが、ルールのカウンタは 1 つ加算される。

-i(--in-interface ) [ ! ] デバイス
パケットを受信することになるデバイス名。
  デバイス名の前に "!" を置くと、そのデバイスを除外するという意味になる。
  デバイス名が "+" で終っている場合、その名前で始まる任意のデバイス名にマッチする。
  このオプションが省略された場合、任意のデバイス名にマッチする。

-o(--out-interface) [ ! ] デバイス
パケットを送信することになるデバイス名 。
  デバイス名の前に "!" を置くと、そのデバイスを除外するという意味になる。
  デバイス名が "+" で終っている場合、その名前で始まる任意のデバイス名にマッチする。
  このオプションが省略された場合、任意のデバイス名にマッチする。

[ ! ] -f(--fragment)
このオプションは、分割されたパケットのうち2番目以降のパケットだけを参照するルールであることを意味する。
  このようなパケット(または ICMP タイプのパケット) は送信元・送信先ポートを知る方法がないので、送信元や送信先を指定するようなルールにはマッチしない。
   "-f" フラグの前に "!" を置くと、分割されたパケットのうち最初のものか、分割されていないパケットだけにマッチする。

□マッチングの拡張

一部のパラメータ(-pパラメータ等)では、パラメータ指定によってはさらに拡張指定が行える。
これを「マッチングの拡張」という。以下はその一部。

--sport(--source-port) [ ! ] [port[:port]]

送信元ポートを指定する。ポートはレンジで範囲指定することも可能。
パラメータ設定で「-p tcp」を指定したときに使用。

--dport(--destination-port) [ ! ] [port[:port]]

送信先ポートを指定する。ポートはレンジで範囲指定することも可能。
パラメータ設定で「-p tcp」を指定したときに使用。

--icmp-type [ ! ] typename

typenameにはICMPのタイプ(echo-requestやecho-replyなど)を指定する。
パラメータ設定で「-p icmp」を指定したときに使用。



その他多数のオプションやターゲットの拡張などがあるが、省略(書ききれない)。
もっとiptablesを使い込んでみて、必要性を感じれば書く。。
スポンサーサイト

テーマ : UNIX/Linux
ジャンル : コンピュータ

tag : LINUX CentOS 設定 iptables ファイアウォール firewall

コメントの投稿

非公開コメント

スカウター
プロフィール

Author:うにえる
個人的メモ

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。