web-dev-qa-db-ja.com

iptablesがログに記録しないのはなぜですか?

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
Noah Krasser

IPテーブルのルールは上から下に適用されます。

ルールがパッケージに適用されるときはいつでも、ルールが定義し、(異なるように構成されていない場合)ルールチェーンから離れるときに処理されます。

つまり、LOGルールが他のルールの下に配置されている場合、それは以前のルールで処理されなかったパッケージにのみ適用されます。

代わりに、すべてのパッケージをログに記録する場合は、ログルールを一致するルールチェーンの上に配置します。


ところで:iptablesのデフォルトのログファイルは/var/log/kern.logにあります

2
derHugo

おそらくカーネルロギングは(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ポートをスキャンします。

1
fugitive

/etc/rsyslog.confの行のコメントを解除します。

module(load="imklog") # provides kernel logging support

次に実行する

service rsyslog restart

を使用してログを確認します

tail -f /var/log/syslog

または:

date; stat /var/log/syslog
0
KęstutisV