- PR -

iptablesの設定で接続が遅くなる

投稿者投稿内容
なおと
会議室デビュー日: 2004/09/08
投稿数: 10
投稿日時: 2004-09-16 00:33
いつもお勉強させて頂いております。
今回が2度目の投稿となります。宜しくお願いします。

iptablesを利用してパケットフィルタリングの設定をしているのですが、
以下の設定を加えると異様に接続が遅くなります。

#port scan
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#syn flood
/sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

#ping of death
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

何度も外部からテストしましたのでうまく有効にはなっていると思うのですが、
SSHで接続してもコマンドが追いつかず途中で固まってしまう程の遅さになります。
(3分〜5分またされる感じです)
具体的な症状ですが、設定直後あたりはスムーズだったりしますが、10分ほどHTTPや
SSHなどいろいろ作業をしていると接続が途切れたように遅くなります。

iptablesではルーティングおよびフォワーディングは使用しておらず
パケットフィルタリングのみに使用しています。そしてついでに攻撃対策も
しておこうと思いまして調べて上記のような設定を自分で作ったのですが、
接続がものすごく遅くなるという問題になってしまいました。

どなたかアドバイス頂けないでしょうか。m(_ _)m

RedHat9
iptables-1.2.7a-2
なおと
会議室デビュー日: 2004/09/08
投稿数: 10
投稿日時: 2004-09-16 01:42
自己レスです。攻撃対策ということでiptables関連を調べておりましたら
皆さん大変苦労されているのがよく分かり、またその手法もさまざまであることが
分かりました。もちろん「完璧」な設定などはないことは分かっておりましたが、
ある程度の常識(?)レベルの設定方法たるものがあるのかと思ってこのような
質問を投げかけてしまいました。今までは私は完全にルータにお任せ状態で
Dos対策をするボタンにチェックを入れるだけでしたので無知にも程がありますよね(^^;汗

ということで今回は具体的な例(ここが間違っているなど)を求めるのではなく、
初心者としてこういう対策から初めては?といったアドバイスが頂けるようであれば
お願いしたいと思います。ルータを買ってチェック入れるのは簡単さで言うとで効果的だと
思っているのですが、今回はルータが導入できない環境にいます。
今のところはIPnutsを検討しておりますが、何か他によいアドバイスがありましたら
お願い致します。手軽さを求めるのはよくありませんが、あまり追求しすぎると、
はまり込んでしまいますので、バックアップを頻繁に行ったり別のサーバを待機させて
おくなど、すぐに復旧できる対策をとるほうがよほど効果的なのかなぁとも思ったりします。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-09-16 06:46
ん〜、なにか買ってくるばかりが対策でもないと思うですが。
とりあえず。

引用:

なおとさんの書き込み (2004-09-16 00:33) より:
#ping of death
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


iptables をあまり知らないので、この設定が対策になるのかどうか
わかりませんが...
ping of death は相当に古い手口の攻撃です。現在の Linux では
あらかじめ対策されていると思うですが...

引用:

#syn flood
/sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT


SYN flood への対策は、Linux ではふつう SYN cokkies を用いると
思います。SYN cookies の説明は、たとえば
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/networking/ip-sysctl.txt.html
このあたりとか。
# OS によってはもっとすぐれた仕組みを持っているものもあります。

引用:

#port scan
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT


う〜ん、そもそも「port scan を防がなきゃならないのか?」という
ことから疑問で、「上記設定は port scan を防ぐのに友好か?」
ということも疑問です。
どーしても port scan を防ぎたければ、公開していないポートへの
アクセスは、存在しないipアドレスに向かって投げる、なんて
手もありますが...
# これをやってるマシンに対して nmap かけると、すごい効果
# なのがわかります
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-09-16 11:45
こんにちは。

じゃあ、私からは iptables のパラメータを調べましょうということで、参考資料を

 ・ Linux 2.4 Packet Filtering HOWTO (JF さんより)
 ・ man 8 iptables (JM さんより)
 ・ 連載記事 「ゼロから始めるLinuxセキュリティ」 (@IT さんより)
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-09-16 12:00
引用:
なおとさんの書き込み (2004-09-16 00:33) より:
SSHで接続してもコマンドが追いつかず途中で固まってしまう程の遅さになります。
(3分〜5分またされる感じです)
具体的な症状ですが、設定直後あたりはスムーズだったりしますが、10分ほどHTTPや
SSHなどいろいろ作業をしていると接続が途切れたように遅くなります。



SSH 接続中のレスポンスが遅いのですか ?
だとしたら、iptables が原因とは考えずらい気がします。
提示された 3 つ以外にもルールがあるのなら別ですが。
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-09-16 12:16
引用:
ぽんすさんの書き込み (2004-09-16 06:46) より:
引用:
なおとさんの書き込み (2004-09-16 00:33) より:
#ping of death
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


iptables をあまり知らないので、この設定が対策になるのかどうか
わかりませんが...
ping of death は相当に古い手口の攻撃です。現在の Linux では
あらかじめ対策されていると思うですが...



このルールは Web ページでも良く見かけますが、
これは ping flood attack 関連のルールですよね。

引用:

引用:
#port scan
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT


う〜ん、そもそも「port scan を防がなきゃならないのか?」という
ことから疑問で、「上記設定は port scan を防ぐのに友好か?」
ということも疑問です。



これは防ぐためのルールではなく、この後にログを取るルールを繋げて
ポートスキャン行動を知るためのルールなのでは ?

それとは別に、このルールは TCP RST Flood Attack 対策関連に
有効なのではないかと思っています。
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2004-09-16 12:32
ACCEPTしてるルールしか書かれてないみたいなんですが、
他にルールは無いんでしょうか?

その辺の確認を含めて、
iptables -L -v -n
の結果を確認するか提示してください。
この出力で、どのルールに対してどれだけのパケットが
マッチしてるかを確認することが可能です。

あとは、ルール適用前後において、etherealなどでスニッフィングした情報なんかも
あわせて確認してみると、対処法はともかく何が起きてるかくらいは大体把握できるでしょう。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-09-16 13:14
引用:

はしもとさんの書き込み (2004-09-16 12:16) より:
このルールは Web ページでも良く見かけますが、
これは ping flood attack 関連のルールですよね。


なるほど、ping flood ということでしたらわかります。
ping of death ということですと、「断片化されたパケットの
再構成はどういう扱いなんだろう?」という点がわかりません
でしたので。

引用:

これは防ぐためのルールではなく、この後にログを取るルールを繋げて
ポートスキャン行動を知るためのルールなのでは ?


う〜ん、iptables でやらなくても、iplog 等を使えばよいと思うです。

引用:

それとは別に、このルールは TCP RST Flood Attack 対策関連に
有効なのではないかと思っています。


なるほど。
それにしても、TCPすべてに適用するにしてはこの値は厳しすぎる
と思います。
# 古典的な FIN スキャン対策にもなってないし、ハーフコネクト
# ステルススキャン対策にもなっていないので?でした。

スキルアップ/キャリアアップ(JOB@IT)