iptablesのカスタムログファイルの設定

iptablesのカスタムログファイルの設定

削除されたパッケージを/var/log/messages

これを達成するために、設定ファイルの最後に次の2行を追加しました。

    -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
    -A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4

これはデフォルトで INPUT および OUTPUT チェーンが DROP として構成されているために機能するため、パッケージが以前のルールと一致しない場合は記録および削除されます。

ただし、カスタムファイルに書き込むことはできません。正常にログインしましたが、/var/log/messagesログインしたいです/var/log/iptables.log/etc/rsyslog.d/iptables.conf次の内容でファイルを作成しました。

    :msg, contains, "IPTables-INPUT-Dropped: " - /var/log/iptables.log
    & ~

その後、rsyslogを再起動し/etc/init.d/rsyslog restart、破棄されることがわかっているいくつかのパケットを送信しました。ただし、iptables.logには記録されず、まだ記録されています/var/log/messages

どの構成がありませんか?

解決済み 問題は、2つの間にスペースがあってはいけないということです。-そして/

答え1

問題は - と / の間にスペースがあってはならないということです。

答え2

これは以下を使用して達成できます。

syslogでiptablesログインを無効にするには、次の変更を行います/etc/rsyslog.d/50-default.conf

*.*;auth,authpriv.none;kern.*=!kern.warning             -/var/log/syslog

別々のファイルを記録します。

kern.=warning -/var/log/iptables.log

その後、再起動またはsyslog記録rsyslogしてください。tail

/etc/init.d/rsyslog restart

それsyslogも動作rsyslogします

答え3

これは使用される別の方法ですulogd。カーネルロギングメカニズムの使用を中止するので、このメカニズムを使用することをお勧めします-m LOG(ログを埋める重大な副作用もありますdmesg)。

まず、ulogdが必要です。モジュールをapt-get install ulogd編集して(最初の行を/etc/ulogd.conf削除して)、このモジュールを有効にできます。#

plugin="/usr/lib/ulogd/ulogd_LOGEMU.so"

この部分を変更/追加してください[LOGEMU]

[LOGEMU]
file="/var/log/iptables.log"
sync=1

次に、を使用してulogdを再起動します/etc/init.d/ulogd restart。その後、iptablesルールには使用しないでください-j LOG-j ULOGULOGモジュールには概念がないため、--log-levelこれらのオプションを削除できます。--ulog-prefix代わりに使用されます--log-prefix

答え4

ulogdの作業ソリューション

a)このモジュールが有効になっていることを確認してください

modprobe nf_log_ipv4
cp /etc/modules /etc/modules.bak
echo nf_log_ipv4 >> /etc/modules

b)/etc/ulogd.confファイルを編集してこれらのプラグインを有効にします(コメント解除#)。

plugin="/usr/lib64/ulogd/ulogd_inppkt_NFLOG.so"
plugin="/usr/lib64/ulogd/ulogd_filter_IFINDEX.so"
plugin="/usr/lib64/ulogd/ulogd_filter_IP2STR.so"
plugin="/usr/lib64/ulogd/ulogd_filter_PRINTPKT.so"
plugin="/usr/lib64/ulogd/ulogd_output_LOGEMU.so"
plugin="/usr/lib64/ulogd/ulogd_raw2packet_BASE.so"

最初のコメントの #stack の前に次の行を追加します。

stack=firewall11:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu11:LOGEMU

最後に、ファイルの末尾に次の行を追加します。

[firewall11]
group=11

[emu11]
file="/var/log/iptables.log"
sync=1

c)今、私はファイアウォールの代わりにiptablesスクリプトを使用する既存の方法を好みます。 iptablesスクリプトは、ロギングにこの行を使用します。

# Log
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A FORWARD -j NFLOG
iptables -A LOGGING -j NFLOG --nflog-prefix "[firewall-drop]:" --nflog-group 11
iptables -A LOGGING -j DROP

d) 最後の部分

touch /var/log/iptables.log
systemctl restart ulogd

このコマンドが利用可能であることを確認する

tail -f /var/log/iptables.log

イベントの後に、nmap portscanまたはシステムのTelnet(無効またはファイアウォールがあることが望ましい)といういくつかの行が表示されます。

関連情報