CentOS 7でのiptablesイベントのログ記録

CentOS 7でのiptablesイベントのログ記録

Centos 7にiptablesがあります。ファイアウォールが無効になっています。 iptablesイベントをどのように記録しますか? Debianではdmesgオプションですが、centosで設定する方法がわかりません。

すべてのiptablesイベントを記録したいと思います。特別な規定はありません。

答え1

パケットがルールiptables ... -j LOGと一致すると、カーネルログメッセージが生成されます。標準のシステムログレベル識別子(、、、、、または)のいずれかである可能性があるオプションを使用して、メッセージの重大度レベルを指定できます--log-level <level><level>emergalertcriterrorwarningnoticeinfodebug

rsyslogこれらのログメッセージは、重大度レベルが十分に低い場合にrsyslog完全に削除できるように処理されます。 iptablesログメッセージはカーネルからのものであるため、対応するロギングカテゴリは常にですkern。したがって、/etc/rsyslog.conf処理するメッセージの最小重大度レベルと、そのメッセージが保存されるログファイルを確認してください。kern.*次に、ルールの適切な重大度レベルを設定しますiptables -j LOG

または、このiptables ... -j LOG --log-prefix <prefix>オプションを使用して認識可能なプレフィックスをiptablesメッセージに追加し、高度な機能を使用してrsyslogiptablesメッセージを別のログファイルに書き込みます。

答え2

私に最適なソリューションを見つけました。警告レベル:

iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 4
iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 4
iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 4

デバッグレベル:

iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 7
iptables -A FORWARD -j LOG --log-prefix "BAD_FORWARD: " --log-level 7
iptables -A OUTPUT -j LOG --log-prefix "BAD_OUTPUT: " --log-level 7

ログは次の場所に保存されます。

/var/log/messages

出力例:

Aug  4 13:22:40 centos kernel: BAD_INPUT: IN= OUT=em1 SRC=192.168.1.23 DST=192.168.1.20 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=59228 SEQ=2
Aug  4 13:23:00 centos kernel: BAD_INPUT: IN=em1 OUT= MAC=a2:be:d2:ab:11:af:e2:f2:00:00 SRC=192.168.2.115 DST=192.168.1.23 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=9434 DF PROTO=TCP SPT=58428 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0

答え3

CentOS 7はsystemdのジャーナルをデフォルトのロギングシステムとして使用し、カーネルログ(例:iptables)はジャーナリングではなくジャーナリングに渡され、次のように/var/log/messages(カーネルログを意味する)ジャーナルctlに渡して表示する必要があります。-k

journalctl -k

Journalctlの男のビューここ または、Web上の多くのチュートリアルのいずれかを使用してすべてのオプションを見つけることができますが、ほとんどの場合、トレースログを使用したり、最後の起動以降のログのみを含めたり、日付-f-b--sinceログを選択したり、--no-pager出力時にデフォルトのポケットベルを無効にしたりできます。

ログを生成するには、他の応答で述べたようにiptablesと一緒にタスクを使用する必要があります-j LOG--limit

iptables -A INPUT -j LOG -limit 1/s --limit-burst 3 --log-prefix "INPUT REJECTED: " --log-level 4

答え4

/var/log/messagesiptablesはCentOS 7にイベントを記録します。

関連情報