web-dev-qa-db-ja.com

OS X Mountain Lionでリモート接続を受け入れ、それらにカテゴリを割り当てるようにsyslogdを構成する

別のスレッド ここStack Exchangeで、LionまたはMountainLionでsyslogdを有効にして着信接続を受け入れるのは非常に簡単であることがわかりました。

cd /System/Library/LaunchDaemons
Sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener dict" com.Apple.syslogd.plist
Sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockServiceName string syslog" com.Apple.syslogd.plist
Sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockType string dgram" com.Apple.syslogd.plist
Sudo launchctl unload com.Apple.syslogd.plist
Sudo launchctl load com.Apple.syslogd.plist

ただし、私が抱えている問題は、ルーターがsyslogdにメッセージを送信しているときに、OS Xのコンソールに不明なメッセージが表示されることです(例:

5/3/13 9:19:40.000 AM Unknown[-1]: [WAN-IN-6-A]IN=eth2 OUT=eth0 SRC=141.133.142.260 DST=10.0.00.10 LEN=64 TOS=0x00 PREC=0x00 TTL=53 ID=30298 DF PROTO=TCP SPT=60553 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0 

ローカルマシンからのログメッセージで送信者が指定されているのに対し、5/3/13 7:38:20.155 AM kdc [67]:実際のLKDCレルム名へのLKDC参照

リモートログホストでtcpdumpを実行すると、コンソールに表示されるよりも多くの情報とともにメッセージが送信されていることがわかります。

    router.example.com.38236 > server.example.com.syslog: SYSLOG, length: 258
Facility kernel (0), Severity warning (4)
Msg: May  3 09:12:39 router kernel: [WAN-LOCAL-default-D]IN=eth2 OUT= MAC=dc:ca:fe:ba:be:17:00:21:a0:ce:66:d9:07:00 SRC=86.86.123.381 DST=130.168.365.128 LEN=60 TOS=0x00 PREC=0x00 TTL=39 ID=26555 DF PROTO=TCP SPT=46635 DPT=62615 WINDOW=5840 RES=0x00 SYN URGP=0 

09:12:45.557613 IP(tos 0x0、ttl 64、id 0、offset 0、flags [DF]、proto UDP(17)、length 286)

OS X Mountain Lionサーバーでsyslogを構成して、受信ログメッセージで送信者を認識し、適切に分類する方法を教えてもらえますか?

5
Kai Howells

OPには手遅れだと思いますが、OS X 10.10Yosemiteでの最近の経験について報告することができます。

OS Xでsyslogdを直接送信者を認識するように構成できないようです。実際、ログメッセージがASL(Apple System Log)に受信されると、それらを認識する唯一の方法は、いくつかの無意味なキーがあるためです。PIDは0xFFFFFFFF + 1、GIDとUIDは0xFFFFFFFF +2です。もちろん、その異常により、UDPメッセージを間接的に認識できるため、そのようなキーでメッセージを取得することができます。ただし、それでも2つの異なるUDPソースからのログメッセージを区別することはできません。

メッセージがASLに入る前に、メッセージに対して何かを行うことはできますか? syslogd/ASLのデバッグモードでは、メッセージの解析がすでにASL関数によって実行されていることが示されているため、方法が見つかりません。可能性はないと思います。

DD-WRTルーター(Linux)をUDP Syslogソースとして使用してテストを行い、UDPパケットの内容を直接チェックしようとしなかったことに注意してください。したがって、問題はDD-WRTが不正な形式のパケットを送信することにある可能性があります。 ...私はそれを疑っていますが。

また、OSXのsyslogd/ASLはかなり複雑でバグが多いと言えます(すでにバグレポートを送信しました)。したがって、それらを渡して、syslog-ngを試すことをお勧めします。それが私の次のステップになります。

それでもOSXのsyslogdを試してみたい場合は、すべてのUDP受信メッセージを独自の自動回転ログファイルにダンプする方法を含め、セットアップ全体を 私のブログ に記述しました。