Solaris 9で、Qpopperのログ出力先を指定するUNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 9で、Qpopperのログ出力先を指定する方法について紹介します。

» 2008年12月02日 08時00分 公開
[ITmedia]

Solaris 9で、Qpopperのログ出力先を指定するSolaris 9とQpopper 4.0.8を使っています。FTPサーバなどのようにPOPログインが発生したときに、ログインしたユーザー情報を記録したいと考えています。そこで次のようにQpopperのログを取るように/etc/inetd.confで「-s」オプションを設定しました。

pop3 stream tcp nowait root /usr/localsbin/popper popper -s


 しかし、/var/adm/messages、/var/log/syslogなどのファイルを見てもPOPログは記録されていませんでした。設定などで足りないところがあるのでしょうか?


障害の原因としては、QpopperのLog Facilityが正しくないことが考えられます。

 Solaris 9環境にて、Qpopperのconfigureを実行すると実行例1のメッセージが出力されますが、この中でデフォルトのLog Facilityは「local0」(LOG_LOCAL0)になっていることが確認できます。


# ./confire
        :
System name: SunOS; System version: 5.9
Set OS_DEFS = " -DSOLARIS2 -DGNU_PASS -DNO_GETLINE -DCONTENT_LENGTH=1 -DUNIX"
Logging to facility: LOG_LOCAL0 ←デフォルトのLog Facility
Set AR_FLAG = " -r "; RANLIB_CMD = ""
checking for sendmail program... found at /usr/lib/sendmail
        :

実行例1 Log Facilityオプションを付加しない場合のメッセージ

 この状態では、syslogd側で「local0」を受けられるように設定しないとログは記録されず破棄されてしまいます。

 syslogd側の設定を行いたくない場合、Qpopperを再コンパイルする必要があります。そのとき「--enable-log-facility」オプションを使い、Log Facilityに「LOG_MAIL」を指定します(実行例2)。


# ./confire --enable-log-facility=LOG_MAIL
        :
System name: SunOS; System version: 5.9
Set OS_DEFS = " -DSOLARIS2 -DGNU_PASS -DNO_GETLINE -DCONTENT_LENGTH=1 -DUNIX"
Logging to facility: LOG_MAIL ←Log FacilityがMailとなる
Set AR_FLAG = " -r "; RANLIB_CMD = ""
checking for sendmail program... found at /usr/lib/sendmail
        :

実行例2 Log Facilityオプションを付加した場合のメッセージ

 これで、SMTPと同様Log FacilityがMailになり、/var/log/syslogにログを記録できます。POPログイン時には、/var/log/syslogにログインの成功、失敗の記録が残ります(リスト1)。

Apr 13 12:59:50 mail popper[6968]: [ID 702911 mail.debug] (v4.0.8) Servicing

request from "localhost" at 127.0.0.1 [pop_init.c:1239]

Apr 13 12:59:55 mail popper[6968]: [ID 702911 mail.notice] (v4.0.8) POP login

by user "admin" at (localhost) 127.0.0.1 [pop_log.c:244]

Apr 13 12:59:59 mail popper[6968]: [ID 702911 mail.notice] Stats: admin 0 0

43 140976 localhost 127.0.0.1 [pop_updt.c:301]


リスト1 /var/log/syslogへの出力例

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ