| HOME | FrontPage | 記事編集 | 返信 |
iptablesのまとめ。
Linuxにおいてアクセス制限は全てiptablesによるべきであるヽ( ´ ー ` )ノ
ポリシーはいわゆるデフォルトのルールです。
# /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になり、全てのパケットを廃棄します。
-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)です。
次のコマンドを実行すると、ルータ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のルールが削除されます。
あるルールで許可されているパケットが、別のルールで拒否されている場合、上にあるルールが優先されます。極端ですが、下の例では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
アカウントを未登録の方はパスワード欄を空欄にして投稿してください。
アカウントを登録済の方は、お名前とパスワードを入力すると投稿者名の末尾に
が付与されます。
ファイルのアップロードと記事編集は登録済みアカウントでしか行えません。
ファイルサイズは20MB以内です。機種依存文字(ローマ数字など)は使えません。
使えない文字は?に変換されます。疑わしい文字を使う時はPreviewで確認してください。
行頭に以下の記号を付与することで行単位に文字を修飾できます。
+ 行頭にプラスを書いた行は赤くなります
/ 行頭に/を書いた行は紫になります
- 行頭にマイナスを書いた行は緑になります
= 行頭にイコールを書いた行は青になります
? 行頭に?を書いた行は黄色になります
! 行頭に!を書いた行は大きくなります
いずれも行頭の記号は削除されます。
行頭に+を書きたい場合は++、赤くしたくない場合は\+と記述してください。
セミコロン(;)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のみです。