web-dev-qa-db-ja.com

iptablesによってブロックされたIPからの接続試行をログに記録する

iptablesを使用してCentOSサーバーからの不正なIPをブロックし、すべてのサービス/ポートでのすべての接続試行をドロップしました。

ちなみに、このIPを持つサーバーはボットネットの一部であった可能性があり、私がそれをブロックしてからしばらくするとクリーンアップされた可能性があります。それでもサーバーを攻撃しようとしているのかどうかを確認したいので、IPのブロックを解除するかどうかを決定できます。

/ var/logを調べて、iptablesのようなものを探し、問題のあるIPについて/ var/log/secureをgreppedしましたが、何も見つかりませんでした。

iptablesのドロップされた接続試行のログ、または試行をログに記録するがそれでもドロップするようにルールを構成する方法はありますか?

5
jammypeach

他の回答に加えて、iptables -v -Lは、特定のルールを通過するパケットとバイトの数を一覧表示するので、ドロップしているトラフィックの量を確認できます。その情報を解析して報告するツールを書くのはそれほど難しくありません。

6
stolenmoment

LOGターゲットを使用して、パケットを明示的にログに記録する必要があります。不正なIPのDROPルールと同じ基準でチェーンにルールを追加しますが、-j LOGの代わりに-j DROPを使用します。

さらに、--log-prefixを使用してログプレフィックスを指定し、--log-levelを使用してログレベルを指定できます。ログのフラッディングを回避するためにレート制限を指定することも一般的です...詳細は iptablesのドキュメント を参照してください。

4
Stephen Kitt

ドロップされたパケットのロギングチェーンを設定する必要があります。 http://www.thegeekstuff.com/2012/08/iptables-log-packets/ にそれを行うための良いチュートリアルがあり、現在のルールセットに次のようなものを追加することになります:

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP
3
Thomas N