x.x.x.x

| HOME | FrontPage | 記事編集 | 返信 |

iptables   OS::Linux

  1. 1. アクセス制限
  2. 1-1. ポリシーを設定
  3. 1-2. フィルタリングルールを設定
  4. 1-3. ルールの追加と削除
  5. 1-4. ルールの重複

iptablesのまとめ。

1. アクセス制限

Linuxにおいてアクセス制限は全てiptablesによるべきであるヽ( ´ ー ` )ノ

1-1. ポリシーを設定

ポリシーはいわゆるデフォルトのルールです。

# /sbin/iptables -L
Chain  INPUT (policy ACCEPT)
target prot  opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

このようにINPUT, FORWARD, OUTPUTそれぞれに (policy ACCEPT) と表示されます。ACCEPTになっていると、特別に指定されていないパケットは全て許可されます。逆にDROPになっていると、特別に指定されていないパケットは全て拒否されます。現在ポリシーがACCEPTで、テーブルの中身が空なので、全てのパケットが許可されているということです。

ポリシーの変更には-Pオプションを使います。

# /sbin/iptables -P INPUT DROP
# /sbin/iptables -P FORWARD DROP
# /sbin/iptables -P OUTPUT DROP

と叩くと全てのポリシーがDROPになり、全てのパケットを廃棄します。

1-2. フィルタリングルールを設定

-p プロトコル:tcp udp icmp
-i 入力インタフェース:etho eth1 etc...
-o 出力インタフェース:etho eth1 etc...
-s 送信元IPアドレス:127.0.0.0/8のようにビットマスクで指定可
-d 宛先IPアドレス:ホスト名を指定するとアドレスに変換して保持
-dport 宛先ポート:指定時は必ず-pも指定

以上の組み合わせでフィルタリングの主要なところは事足ります。

/sbin/iptables -A INPUT -i eth1 -s 127.0.0.0/8 -j DROP

このコマンドで、インタフェースeth1から入ってきた、送信元アドレスが127.x.x.xのパケットをDROPする。という意味になります。-A INPUTは「INPUTルールの末尾に追加する」という意味です。先頭に追加は-I (大文字のi)です。

1-3. ルールの追加と削除

次のコマンドを実行すると、ルータPCに接続されたLAN側のPCからは、goo.ne.jpにもgate.ne.jpにもアクセスできます。ところがルータPC自身からはどちらにもアクセスできません。これがOUTPUTとFORWARDの違いです。

# /sbin/iptables -A OUTPUT -d goo.ne.jp -j DROP
# /sbin/iptables -A OUTPUT -d gate.ne.jp -j DROP

ルールを削除するには-Dを使いますが、まず-Lでテーブルを確認します。

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source   destination
DROP   all  --  anywhere www.goo.ne.jp
DROP   all  --  anywhere gatenet.st.wakwak.ne.jp

ここで

# iptables -D OUTPUT 1

と叩くとgoo.ne.jpのルールが削除され、

# iptables -D OUTPUT 2

と叩くとgate.ne.jpのルールが削除されます。

1-4. ルールの重複

あるルールで許可されているパケットが、別のルールで拒否されている場合、上にあるルールが優先されます。極端ですが、下の例ではDROPの方が上にあるので、www.goo.ne.jpへのアクセスは拒否されます。

Chain OUTPUT (policy ACCEPT)
target prot opt source    destination
DROP   all  --  anywhere  www.goo.ne.jp
ACCEPT all  --  anywhere  www.goo.ne.jp

ルールは上から順に適用され、ACCEPTであれDROPであれ、一度措置が確定したパケットについてそれ以上の検査を行いません。下の例は2行目で HTTPの通信(ポート80向けのパケット)を拒否していますが、すでに1行目でwww.goo.ne.jpへのパケットを許可しているので、 www.goo.ne.jp向けのHTTPパケットについて2行目の検査は行われず、通信がつながります。

Chain OUTPUT (policy ACCEPT)
target  prot opt source    destination
ACCEPT  all  --  anywhere  www.goo.ne.jp
DROP    tcp  --  anywhere  anywhere       tcp dpt:http

WikiMode speed member / 2008.08.26 00:54

返信

アカウントを未登録の方はパスワード欄を空欄にして投稿してください。 アカウントを登録済の方は、お名前とパスワードを入力すると投稿者名の末尾に member が付与されます。 ファイルのアップロードと記事編集は登録済みアカウントでしか行えません。 ファイルサイズは20MB以内です。機種依存文字(ローマ数字など)は使えません。 使えない文字は?に変換されます。疑わしい文字を使う時はPreviewで確認してください。

お名前


パスワード


添付ファイル

Large Italic Bold Erase Underline Small URI


文字装飾

行頭に以下の記号を付与することで行単位に文字を修飾できます。

+ 行頭にプラスを書いた行は赤くなります
/ 行頭に/を書いた行は紫になります
- 行頭にマイナスを書いた行は緑になります
= 行頭にイコールを書いた行は青になります
? 行頭に?を書いた行は黄色になります
! 行頭に!を書いた行は大きくなります

いずれも行頭の記号は削除されます。
行頭に+を書きたい場合は++、赤くしたくない場合は\+と記述してください。

セミコロン(;)2個ではさんだ部分は大きくなります。
セミコロン(;)3個ではさんだ部分は斜体になります。
セミコロン(;)4個ではさんだ部分は太字になります。

%2個ではさんだ部分は取り消し線が入ります。
%3個ではさんだ部分は下線が入ります。
%4個ではさんだ部分は 小さく なります。

(--
から
--)
までの行は整形済文字列になります。

行頭にカンマ (,) を書くと表を作れます。
カンマの前後に空白を挟むと中央寄せされます。
以下のようにします。

, 月 , 火 , 水 , 木 , 金 , 土 , 日
,/,小嶋,福原,杉山,下柳,安藤,鶴

/小嶋福原杉山下柳安藤

==の項目を作るとcolspanを設定できます。

, 月 , 火 , 水 , 木 , 金 , 土 , 日
,/,権藤,==,雨,権藤,==,==

/権藤権藤

セパレータを|(パイプ)にすることもできます。 その場合は行末にもセパレータが必要です。

キーワードリンク

Wikiエントリの表題(キーワード)が本文に含まれると自動でリンクが張られます。
カテゴリが指定されている場合、この機能は同一カテゴリ内の記事のみが対象になります。

他カテゴリのキーワードにリンクしたければ以下のようにします。
[[カテゴリ::キーワード]]
例えばPHP::MySQLカテゴリに投稿された表題DBDの記事にリンクしたければ以下のようにします。
[[PHP::MySQL::DBD]]

外部リンク

外部のURLにリンクしたければ以下のようにします。
[[http://www.yahoo.com/]]
名前を付けたければ以下のようにします。
[[YahooUSA http://www.yahoo.com/]]
リンク可能なURLはhttp、https、ftpのみです。

These pages are designed for NN7 & IE6.
BBSWiki ver.1.50 Final XHTML1.0+CSS.
Copyleft (!C) 2005-2007 SUICIDE BLONDE JP.
All Lefts Reserved.