2

バックグラウンド。

私は、ハニーポット展開で使用されるファイアウォール/NAT デバイスを構築しています。簡単に言えば、ある種のリバース ファイアウォールとして機能するように構成されています。ハニーポットの 1 つが感染または侵害されると、ファイアウォールは攻撃者によるアウトバウンド接続を許可しますが、アウトバウンド接続は、特定の制限内の特定のポート セットに制限され、特定の数の接続のみに制限されます。ファイアウォールがこれらの制限を超えるトラフィックを検出すると、一定期間パケットのドロップを開始します。ハニーポットから発信されたすべてのトラフィックは、悪意があると見なされるため、ログに記録されます。

問題。

ハニーポットは、攻撃者が DDoS 攻撃を仕掛けるためによく使用されます。平均して、このトラフィックの 97% がファイアウォールによってブロックされ、そのすべてがログに記録されます。問題は、それが aropx を生成することです。毎秒 90000 エントリであり、これらの攻撃は 10 分から数時間続く可能性があります。このすべてがログに記録されるため、かなり大きなログ ファイルが生成されます。

現在の回避策。

ファイアウォール ログを 60 秒ごとにローテーションすることでこの問題を回避しようとしましたが、これはログ サイズにのみ影響します。logrotate が最大数のログを作成すると、1 回の DDoS 攻撃によるログの負荷が発生するだけです。ログ ファイルを保持する専用のハード ドライブを追加し、ログのローテーションを増やしました。

質問。

残念ながら、これは「ケーキを保持する/ケーキを食べる」状況です。特定の時点でトラフィックのログ記録を停止するように iptables に指示しながら、できるだけ多くのログを記録したいと考えています。

エントリをログ ファイルに書き込むように iptables を構成する方法はありますが、同じエントリが最後の 1 秒間に N 回書き込まれた場合、残りのログは記録されなくなりますか?

ロギング機能に「レート制限」などはありますか?

この問題を解決する他の方法はありますか?

4

1 に答える 1

3

のマニュアルページが示唆するように、limitモジュールはあなたが探しているものだと思います:iptables-extensions

limit

このモジュールは、トークン バケット フィルターを使用して制限されたレートで一致します。この拡張機能を使用するルールは、この制限に達するまで一致します。たとえば、ターゲットと組み合わせて使用​​して、LOG制限付きのロギングを行うことができます。
xt_limitは否定をサポートしていません。-m hashlimit ! --hashlimit rateこの場合、省略しながら使用する必要があります--hashlimit-mode

--limit rate[/second|/minute|/hour|/day]
最大平均一致率: オプションの '/second'、'/minute'、'/hour'、または '/day' 接尾辞を付けて数値として指定します。デフォルトは 3/時間です。

--limit-burst number
一致するパケットの最大初期数: この数は、上で指定された制限に達しないたびに、この数まで 1 ずつ再充電されます。デフォルトは 5 です。

したがって、この回答に基づいて、この種の何かが仕事をすると思います:

iptables -N LOGANDDROP
iptables -A INPUT -s 192.168.1.0/24 -j LOGANDDROP
iptables -A LOGANDDROP -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
iptables -A LOGANDDROP -j DROP

さまざまなルールでいくつかの制限制約を使用することで、より細かい粒度を実現できます。

于 2014-11-27T18:48:39.837 に答える