
Ubuntu 16.04 で実行されている Linux サーバーがあります。今日は侵入検知システムである PSAD をインストールしました。
PSAD は iptables のログファイルを分析することで機能します。したがって、PSAD を使用する前に最初に行うべきことは、iptables のログ記録を有効にすることです。
sudo iptables -A INPUT -j LOG
sudo iptables -A FORWARD -j LOG
ポート スキャンを実行し、その後 PSAD ステータスを呼び出しました。ポート スキャンが発生したことが表示されるはずですが、何も表示されませんでした。まだポート スキャンが行われていないというだけです。
しばらくして、iptablesがログを記録していないことに気付きました。iptablesのログが記録されたログファイルはありません。調べてみました。
/var/log/messages
デフォルトではここにあるはずですが、ファイルは空です/var/log/kern.log
/var/log/syslog
何もない。UFWを使用していることは特筆に値するかもしれない。私はPSADとUFWに関するチュートリアルしかし、まだ何も起こりません。チュートリアルで作成された新しいファイルにもログはありません。
理由は何でしょうか? サーバーを自分でセットアップしたわけではありません。最も重要なセキュリティ対策は私より前に実施されています。一部のパッケージが削除されたのかもしれません。サーバーは安全でなければなりませんので、ご協力いただければ幸いです。
答え1
IP テーブル内のルールは上から下に適用されます。
ルールがパッケージに適用される場合、そのルールはルールの定義に従って処理され、(異なる設定が行われていない場合は) ルール チェーンから外れます。
つまり、LOG ルールが他のルールの下に配置されている場合、そのルールは以前のルールで処理されなかったパッケージにのみ適用されます。
代わりにすべてのパッケージをログに記録する場合は、対応するルール チェーンの一番上に LOG ルールを配置します。
ちなみに、iptablesのデフォルトのログファイルは次の場所にあります。/var/log/kern.log
答え2
おそらくカーネル ログが (r)syslog で無効になっています。/etc/rsyslog.conf ファイルに以下を追加し kern.warn /var/log/firewall.log
、syslog をリロードします。
その後、次のようなルールを作ります。iptables -A -p tcp --dport 22 -j LOG --log-prefix " ALERT " --log-level=warning
SSH ポートをスキャンします。
答え3
次の行のコメントを解除します/etc/rsyslog.conf
:
module(load="imklog") # provides kernel logging support
そして実行する
service rsyslog restart
ログを確認するには
tail -f /var/log/syslog
または:
date; stat /var/log/syslog