web-dev-qa-db-ja.com

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

CentOS 7にiptablesがあります。firewalldが無効になっています。 iptablesイベントをログに記録するにはどうすればよいですか? debianではdmesgオプションですが、centosで設定する方法がわかりません。

すべてのiptablesイベントをログに記録したい。特定のルールではありません。

2
debek

私にとって最良の解決策を見つけました:警告レベル:

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
debek

パケットがiptables ... -j LOGルールに一致すると、カーネルログメッセージが生成されます。 --log-level <level>オプションを使用してメッセージの重大度レベルを指定できます。ここで、<level>は、標準のsyslogレベル識別子の1つであるemergalertcriterrorwarningnoticeinfoまたはdebug

これらのログメッセージはrsyslogによって処理されます。重大度レベルが十分に低い場合、rsyslogはメッセージを完全に破棄する可能性があります。 iptablesログメッセージはカーネルから送信されるため、ログのカテゴリは常にkernになります。そのため、/etc/rsyslog.confを調べて、kern.*メッセージが処理される最小の重大度レベルと、それらが保存されるログファイルを確認します。次に、iptables -j LOGルールに適切な重大度レベルを設定します。

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

3
telcoM

次のコマンドでロギングを有効にできます(たとえば、INPUTチェーンの場合)。

iptables -A INPUT -j LOG
0
Yurij Goncharuk

iptablesは、CentOS 7の/var/log/messagesにイベントを記録します。

0
Nasir Riley