web-dev-qa-db-ja.com

rsyslogがUDPメッセージを拒否したときに送信者のIPアドレスを表示する方法

環境はUbuntu 12.04.4 LTSとrsyslog 5.8.6です。

標準ポート514を介してUDP経由でメッセージを受信するようにrsyslogを構成しました。これにより、特定の1つのホストがそれにメッセージを送信できるようになります。

$AllowedSender UDP, 192.168.4.1

別のサーバーからメッセージを送信すると、メッセージが拒否されてログに記録されます。

rsyslogd: UDP message from disallowed sender discarded

拒否された送信者のIPアドレスを含めるようにrsyslogを構成することは可能ですか?

1
Alan

バージョン5のソース( https://github.com/rsyslog/rsyslog/archive/v5-stable.Zip )をダウンロードし、plugins/imudp /を見ましたimudp.c。このファイルでは、送信者のfrominetIPアドレスを表示するオプションのないハードコーディングされたメッセージです。

if(glbl.GetOption_DisallowWarning) {
    time_t tt;
    datetime.GetTime(&tt);
    if(tt > ttLastDiscard + 60) {
        ttLastDiscard = tt;
        errmsg.LogError(0, NO_ERRCODE,
        "UDP message from disallowed sender discarded");
    }
}

また、tools/syslogd.cに未使用のレムナントchkMsgAgainstACL()fromHost値を表示しました。

errmsg.LogError(0, NO_ERRCODE,
    "UDP message from disallowed sender %s discarded",
    (char*)fromHost);

Rainerがその機能を保持しないことにした理由がわかりません。彼はここでコードのこのセクションの周りのいくつかのパフォーマンスの問題について議論しています: http://blog.gerhards.net/2009/11/acls-imudp-and-accepting-messages.html

いずれにせよ、送信者のIPアドレスを表示するには、独自のバージョンのrsyslogdをコンパイルする必要があるようです。

1
Alan