- - PR -
iptables の RETURN の使い方
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-03 11:12
iptables の RETURN の使い方を教えて下さい。
調べてみると“チェイン内のルール評価を終了” となっているのですが、いまいちよく分かりません。 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-06-03 16:34
iptablesのユーザ定義チェイン
http://www.linux.or.jp/JF/JFdocs/packet-filtering-HOWTO-7.html#ss7.4 で説明されているように、ユーザ定義チェインを作り、ジャンプさせることが出来ます。 そのチェインのルールの評価が全てすめば、自動的に呼び出し元のチェインに戻ってくるのですが、 すぐに呼び出し元のチェインに戻りたいこともあるでしょう。 そういった場合に RETURN を使えば、そのチェインの残りのルールを評価せずに すぐに呼び出しもとのチェインに戻れるのだと思います。 私はユーザ定義チェインを使ったことが無いので、あまり自信が無いですが | ||||||||
|
投稿日時: 2004-06-04 16:00
RETURNについて説明してあるものを見てみると、そのように書いてありますよね。
RETURNターゲット チェインの末尾まで落っこちるのと同じ効果がある。 組み込み済みチェイン内のルールの場合・・・そのチェインのポリシーが実行される。 ユーザ定義チェイン内のルールの場合 ・・・そのチェインを呼び出したチェインに戻り、呼び出し元のルールの直後から検査が続行される。 文章でいうとこんな感じでしょうか。。 ただiptablesを実際、記述した場合、どんな感じなのかちょっとよく分かりません。 iptablesの例を書いて頂きたいのですが。。 | ||||||||
|
投稿日時: 2004-06-04 20:29
やはりそうですよね。 短くてユーザ定義チェインならではの良い例が思いつかなかったんです。 なんとか意味のあるルールを思いつきました。 iptables -N chk_mac iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0c -j RETURN iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0e -j RETURN iptables -A chk_mac -j LOG --log-prefix "nonregistered MAC addr " iptables -A chk_mac -j DROP iptables -A INPUT -i eth0 -j chk_mac iptables -A FORWARD -i eth0 -j chk_mac こんな感じでしょうか。 | ||||||||
|
投稿日時: 2004-06-10 11:40
返信ありがとうございます。
例を記述して頂きましたが、 iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0c -j RETURN iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0e -j RETURN とする場合と iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0c -j ACCEPT iptables -A chk_mac -m mac --mac-source 02:04:06:08:0a:0e -j ACCEPT とする場合の違いが分からないのですが。。 RETURN としなくても、ACCEPT で良いような気がするのですが。。 RETURN・・・ ユーザ定義チェイン内であれば呼び出し元に返り、組み込み済みチェインであればチェインポリシーが適用される。 と調べるとあるのですが、 呼び出し元に返るというのはどこになるのでしょうか? [ メッセージ編集済み 編集者: coolkun 編集日時 2004-06-10 11:53 ] | ||||||||
|
投稿日時: 2004-06-10 15:04
後者は必ず ACCEPT ですが、前者は -j chk_mac した所に戻って それ以降の指定しだいです。
組み込み済みチェインは、システム (iptables 内部) に戻るとでも 考えれば良いのではないでしょうか。 で、その時の動作はポリシーに従うと。 | ||||||||
|
投稿日時: 2004-06-10 15:07
説明不足で混乱させてしまったようですみません。
あの使用例は設定のうちでユーザ定義チェインを使う部分だけです。 前後に他のルールが設定されていると思ってください。 あの使用例が設定の全てだとすると、確かにRETURNでもACCEPTでも違いが無いですね。 それにわざわざユーザ定義チェインを使う必要も無いですね。 ユーザ定義チェインを呼び出しているルールの後に他のルールが続く場合は 単にACCEPTとしてしまうと、残りのルールで評価されないので困ります。 呼び出し元に戻るというのがどこかという話ですが、 ユーザ定義チェインは他のチェインから呼び出されるので、その呼び出し元のチェインの次のルールに進みます。 チェインのルールの評価順序はiptablesコマンドの実行順とは必ずしも一致しない (-I 等を使った場合など)ということに気をつけてください。 | ||||||||
|
投稿日時: 2004-06-10 17:19
すみません、ちょっとよく分からなくなってしまったので思い切ってiptables の全体を記述してみますね。
#!/bin/sh # 設定の初期化 iptables -F # SNAT (LAN → インターネット) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to ***.***.**.*** # ポリシーの設定 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # ICMP DoS攻撃 対策 iptables -N icmp-dos iptables -A icmp-dos -m limit --limit 16/s --limit-burst 5 -j ????? iptables -A icmp-dos -j LOG --log-prefix "### ICMP DoS攻撃 ###" iptables -A icmp-dos -j DROP iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j icmp-dos iptables -A FORWARD -i ppp0 -p icmp --icmp-type echo-request -j icmp-dos # Stealth scan 対策 iptables -N stealth-scan iptables -A stealth-scan -m limit --limit 1000/s --limit-burst 5 -j ????? iptables -A stealth-scan -j LOG --log-prefix "### Stealth scan ###" iptables -A INPUT -i ppp0 -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j stealth-scan iptables -A FORWARD -i ppp0 -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j stealth-scan # ローカルループバック iptables -A INPUT -i lo -j ACCEPT # ICMP iptables -A INPUT -p icmp -j ACCEPT # -------------- 略 ------------------- # DROP LOG INPUT iptables -A INPUT -j LOG --log-prefix "# DROP LOG INPUT #" # DROP LOG FORWARD iptables -A FORWARD -j LOG --log-prefix "# DROP LOG FORWARD #" こんな感じですが、 iptables -A icmp-dos -m limit --limit 16/s --limit-burst 5 -j ????? iptables -A stealth-scan -m limit --limit 1000/s --limit-burst 5 -j ????? 上記の?????のところをACCEPTにした方が良いのか、RETURNにした方がいいのか分かりません。 教えて頂けますでしょうか? >ユーザ定義チェインを呼び出しているルールの後に他のルールが続く場合は 単にACCEPTとしてしまうと、残りのルールで評価されないので困ります。 なぜ残りのルールで評価されないのでしょうか? ユーザ定義チェインは必ずRETURNにするということですか? >ユーザ定義チェインは他のチェインから呼び出されるので、その呼び出し元のチェインの次のルールに進みます。 上記のiptablesではユーザ定義チェイン -N とターゲットとしてのユーザ定義が続けて記述されていますが、どうしても、 >他のチェインから呼び出される >その呼び出し元のチェイン の意味が分かりません。上記のiptablesのサンプルから具体的に教えて頂けますか? [ メッセージ編集済み 編集者: coolkun 編集日時 2004-06-10 17:22 ] |
1|2|3
次のページへ»