このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

iptablesのフラグメントオプションについて疑問 このメッセージに返信する
日時: 2010/03/22 18:09
名前: さきやま
URL:
お世話になります。

本サイトのiptablesスクリプトを拝見し、
フラグメントパケット破棄の以下箇所を見つけたので、
設定してみました。

# フラグメント化されたパケットはログを記録して破棄
iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A INPUT -f -j DROP

動作を確認するため、
windows PCから「ping xxx.xxx.xxx.xxx -l 3000」を実行したところ、
上記オプションにマッチせず、通過してしまいます。

また、本当にフラグメントされたパケットを送信しているか、tcpdumpで、
観測したのですが、flags [+]の表示があり、間違いなくフラグメントされています。

「-f」オプションは他のサイトでも紹介されており、
動作的には問題ないものと考えておりますが、
実際有効なオプションなのでしょうか?

お分かりの方、ご教示ください。
よろしくお願いいたします。
記事編集 編集
Re: iptablesのフラグメントオプションについて疑問 このメッセージに返信する
日時: 2010/03/22 18:20
名前: さきやま
URL:
追記です。

iptables -A INPUT ! -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A INPUT -f -j DROP

上記のように、!をつけ、フラグメントされていないパケットは破棄と、
変更すると、ssh接続が切断され、/var/log/messagesへ
[IPTABLES FRAGMENT]が記録されるため、
「フラグメントされていない」は有効なようです。
記事編集 編集
Re: iptablesのフラグメントオプションについて疑問 このメッセージに返信する
日時: 2010/03/25 11:26
名前: hw
URL:
パケットがフラグメントに分割された場合、最初のフラグメントにだけ完全なヘッダーが書かれ、
それ以降のフラグメントには省略されたヘッダーだけとなるため、
iptablesのルールでチェックできなくなります。

さきやまさんが行なったテストは先頭のフラグメントも送られてますので
iptablesが読み込む時点でフラグメントは合体され正しいパケットとなっているので
-fオプションがチェックすべき部分はクリアされてます。
テストするならフラグメントの1番目だけを送らずにやるとかですね。
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -