111.111.111.111のping操作を/var/log/iptables.logに記録する方法は?

111.111.111.111のping操作を/var/log/iptables.logに記録する方法は?

私のオペレーティングシステム:centos 7。

yum remove firewalld
yum install  -y iptables
yum install -y iptables-services

111.1111.111.111のすべてのpingをiptables.logに記録したいと思います。

cat /etc/rsyslog.conf
kern.* /var/log/iptables.log
systemctl restart rsyslog

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG
iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP
service iptables save
service iptables restart

今私は111.111.111.111から私のvpsにpingを送ります。

1.iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP働くことができる。

ping 104.223.65.117 
PING 104.223.65.117 (104.223.65.117) 56(84) bytes of data. ^C --- 104.223.65.117 
ping statistics --- 23 packets transmitted, 0 received, 100% packet loss, time 22003ms

2.iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG仕事ができない

cat /var/log/iptables.log

そこには何もありません。 111.111.111.111のping操作を/var/log/iptables.logに記録する方法は?

ここにいくつかの資料があります。dmesgとiptables

dmesg reads from the kernel log buffer. Since iptables uses kernel logging
facility, that is where iptables log records appear in the first place.
There is no way you can make iptables log entries not appear in dmesg.

これは、iptablesログ情報を指定されたファイルに書き込むことができないという意味ですか?
iptablesログ情報は、次の方法でのみ指定されたファイルに書き込むことができます。

dmesg > /var/log/iptables.log

または

dmesg >> /var/log/iptables.log

すべての情報を/var/log/iptables.logに自動的に記録する別の賢明な方法はありますか?

答え1

設定がどのような役割を果たしているかを見てみましょう。

iptables -N LOGGING

LOGGING(後でルールを取得できない)という新しいチェーンを作成します。

iptables -A INPUT -j LOGGING

入力チェーンを通過するすべてのパケットはにジャンプしますLOGGING。このルール以降のすべてのルールはLOGGINGチェーンから戻っていないため無視されます。

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG

このルールは上記のジャンプの後に挿入され、決して実行されません。

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP

ロギング後にパケットをドロップしようとしています。これは応答が生成されないことを意味します。これがあなたの意図であるかどうかはわかりません。


だからしないでください。以下をiptables -F INPUT使用して、これらすべてのルールを消去します。

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG

他の人はいません。 pingを実行してシステムログに表示されることを確認します(私のシステムでは表示されます)。

必要に応じて、後でpingを削除するルールを追加できます。

答え2

vps タイプが重要です。
私のvpsタイプはopenvzです。
ログファイルはdmesgで表示され、クライアントログファイルは自動的には記録されません。これはopenvzのバグです。
私のvpsをkvm vpsに変更し、問題を修正しました。

関連情報