iptables
私のネットワークアクティビティをデバッグするためにロギング機能を使用しています。出力されたカーネルログ内のメッセージを--log-prefix
一意に識別するために、パラメータとともに特定のプレフィックスを使用します。iptables
::IPT::LOG::
rsyslog
このように表示されたメッセージを別のログファイルにリダイレクトするように設定するにはどうすればよいですか?マンページはrsyslog
私にとってとても秘密に見えます。
答え1
セレクタベースのフィルタリングに加えて、rsyslogdはログメッセージ属性で見つかったパターンをフィルタリングできます。必要な操作を実行するには、iptablesルールで使用されている文字列と一致するプロパティベースのフィルタを作成できます。 iptablesルールでこれを使用するには、--log-prefix "unique_prefix: "
rsyslog.confに次のものを追加する必要があります。
:msg,startswith,"unique_prefix" /var/log/iptables
このルールはプレフィックスのログメッセージをテストし、/var/log/iptables(rsyslogがメッセージを送信するように設定された別の場所に追加)に送信します。他の場所ではなく/ var / log / iptablesにメッセージを表示する必要がある場合は、新しいルールを別のルールの上に配置し、その後にインクルードを追加してください& ~
。
:msg,startswith,"unique_prefix" /var/log/iptables
& ~
#
# The rest of my rules appear below
# ...
*.info;mail.none;authpriv.none;cron.none /var/log/messages
Rsyslogルールには複数のタスクがあります。後続の操作は、アンパサンド()で始まる新しい行で定義されます&
。上記の例では、最初の規則には、出力を/var/log/iptablesに送信してからメッセージを削除する2つの操作があります(~
)。バラよりジョブの rsyslog ドキュメントそしてフィルターこの回答のルールに関する追加情報
パフォーマンス上の理由でstartswith
はなく使用のために編集されました。contains
iptablesは--log-prefix
実際にはプレフィックスなので、メッセージの先頭に表示されます。
答え2
私の経験によれば、ファイルがどのように解析されるのかという特性を考慮すると、追加の構成行rsyslog.conf
は/etc/rsyslog.conf
他のすべての構成行の前になければなりません。ファイルの末尾に追加すると、ip-tablesロギングは引き続きファイルに追加され、ファイル/var/log/messages
にリダイレクトされます。/var/log/iptables.log