Ubuntu18.04.3システムへのすべての着信TCP接続をログに記録したい。これは問題なく動作し、イントロと同じように問題ではありません。このコマンドをcrontabで使用しています。
@reboot /sbin/iptables -I INPUT -p tcp --syn -j LOG --log-prefix='[tcpconnections] '
(これはきれいな方法ではないことはわかっていますが、セキュリティの問題ではないので、この簡単な方法で問題ありません。ここでも問題はありません。)
もちろん、これはsyslogに多くのログ行を作成します。したがって、情報を別のログファイルに再ルーティングする必要があります。
/var/log/tcpconnections.log
新しいファイルを作成して、ログ情報をこの別のファイルに取り込むことができました
/etc/rsyslog.d/tcpconnections.conf
コンテンツで
if $msg contains "[tcpconnections]" then {
/var/log/tcpconnections.log
stop
}
その後、rsyslogサービスやシステム全体を再起動します。
ただし、ログエントリはsyslogと別のログファイルの両方に表示されます。私の知る限り、「停止」はそれが発生しないようにする必要があります。
私も成功せずに試したこと:
〜停止する代わりに、これは非推奨であることがわかりました
:msg,contains,"[tcpconnections] " /var/log/tcpconnections.log
& ~
上記と私がこのトピックでグーグルできるもののほとんどすべての組み合わせ。
誰かが私の間違いがどこにあるかについての考えを持っていますか?これについての助けをいただければ幸いです、ありがとうございました。
同じ問題があり、注文の処理を忘れていました。ファイルに/etc/rsyslog.d/00_tcpconnections.conf
のような名前を付けて、/etc/rsyslog.d/
の他のルールの前に処理されるようにする必要があります。これは私のocragentスクリプトの例です。
# copy to /etc/rsyslog.d/00_ocragent.conf
if ( $programname == "ocragent" ) then {
action(type="omfile" file="/var/log/ocragent.log" flushOnTXEnd="on")
stop
}