俺だけのために Ore! Tips!

FreeBSD で、ftpd に詳細なログを吐かせる

2004年03月11日 作業

wu_ftpd と違って、FreeBSD 4.X-RELEASE 標準の ftpd はそのままではログを吐かない。(実は -l オプション付きで実行されているが、syslogd で ftpd のログの指定がなかったりして、つまり出力されていない)

ホスティングサービスをするサーバとしてそれでは困るので、細かく ftpd のログを出力するようにする。

★ /etc/inetd.conf の修正

ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l -l

元々、-l オプションが一つ付いているが、もう一つ -l を付けることで、
より詳細なログが出力される。


★ /etc/syslog.conf の修正

ftp.*                                           /var/log/ftpd.log

↑追加


★ /var/log/ftpd.log を作成しておく。(セキュリティ上の理由で、syslogd は自分自身で新規にファイルは作らない)

www# touch /var/log/ftpd.log


★ inetd, syslogd の設定ファイルをリロード(kill -HUP で)

www# ps -ax|grep syslogd
  165  ??  IsJ    6:18.80 /usr/sbin/syslogd -s
www# kill -HUP 165
www# ps -ax|grep inetd
  172  ??  IsJ    4:00.41 /usr/sbin/inetd -wW
www# kill -HUP 172


★ 試しに ftp 接続してみる。

www# cat /var/log/ftpd.log
Mar 11 16:07:46 www ftpd[92702]: connection from ppp100.hiroshima-cdas.or.jp (210.253.60.100)
Mar 11 16:07:47 www ftpd[92702]: FTP LOGIN FROM ppp100.hiroshima-cdas.or.jp as shinoda
Mar 11 16:08:00 www ftpd[92702]: get /usr/home/shinoda/index.html = 23953 bytes
Mar 11 16:08:17 www ftpd[92702]: put /usr/home/shinoda/02-05-08_19-50.jpg = 4649 bytes
Mar 11 16:08:25 www ftpd[92702]: delete /usr/home/shinoda/02-05-08_19-50.jpg


うむ。put や get, delete の各作業がログに残っておる。
ばっちりじゃん。:-)


<追記:2004/10/25 作業>

FreeBSD 5.X-RELEASE では、ディフォルトの設定で /var/log/xferlog にログが吐かれているようだ。

ちょっと見てみると、

serv2# grep ftp /etc/syslog.conf
ftp.info                                        /var/log/xferlog
serv2# tail /var/log/xferlog
Oct 21 03:06:24 serv2 ftpd[76278]: ANONYMOUS FTP LOGIN REFUSED FROM dynadsl-080-228-75-231.ewetel.net
Oct 21 16:05:03 serv2 ftpd[79960]: connection from 61.139.42.74 (61.139.42.74)
Oct 21 20:22:54 serv2 ftpd[81311]: connection from ip-212-226-182-235.adsl.kpnqwest.fi (212.226.182.235)
Oct 22 01:01:15 serv2 ftpd[82844]: connection from 61.81.118.182 (61.81.118.182)
Oct 22 02:39:06 serv2 ftpd[83353]: connection from 211.48.93.13 (211.48.93.13)
Oct 23 16:24:12 serv2 ftpd[97294]: connection from c181230.adsl.hansenet.de (213.39.181.230)
Oct 23 16:24:12 serv2 ftpd[97294]: ANONYMOUS FTP LOGIN REFUSED FROM c181230.adsl.hansenet.de
Oct 23 20:01:21 serv2 ftpd[98338]: connection from 218.29.20.113 (218.29.20.113)
Oct 23 20:01:22 serv2 ftpd[98338]: ANONYMOUS FTP LOGIN REFUSED FROM 218.29.20.113
Oct 25 19:13:52 serv2 ftpd[13656]: connection from 195.25.108.101 (195.25.108.101)

はっはっは。こりゃ、不正アクセスの山じゃのお。
試しに FTP 接続してファイルをダウンロードしてみる。

Oct 25 19:46:21 serv2 ftpd[13812]: connection from 110.192.12.221.megaegg.ne.jp (221.12.192.110)
Oct 25 19:46:21 serv2 ftpd[13812]: FTP LOGIN FROM 110.192.12.221.megaegg.ne.jp as shinoda

なるへそ。接続したことが記録されるだけか。
4.X-RELEASE の時と同じように inetd.conf を修正してリロード。

serv2# vi /etc/inetd.conf

ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l -l

serv2# ps -ax|grep inet
  911  ??  Is     0:00.10 /usr/sbin/inetd -wW -C 60
serv2# kill -HUP  911

で、試しに同じようにファイルをダウンロードしてみる。
・・・が、何も変わらず。
ああ、FTP に接続し直さないと駄目だな、そりゃ。

つーことで、FTP 接続をし直してダウンロードしてみると、

Oct 25 19:50:32 serv2 ftpd[13834]: connection from 110.192.12.221.megaegg.ne.jp (221.12.192.110)
Oct 25 19:50:32 serv2 ftpd[13834]: FTP LOGIN FROM 110.192.12.221.megaegg.ne.jp as shinoda
Oct 25 19:50:37 serv2 ftpd[13834]: get /usr/home/shinoda/hogehoge/dummy.gif = 799 bytes

・・・と、ちゃんとファイル操作単位でログが吐かれた。
↓削除操作もばっちり記録。

Oct 25 19:53:45 serv2 ftpd[13834]: delete /usr/home/shinoda/hogehoge/dummy.gif

これで、ホスティングユーザーが自分で間違えてファイルを消して、「ファイルが行方不明になったぁ!!」と叫んでも、「あなたの操作ミスですよ。」ときっちり指摘出来るな。(笑)

前ページに戻る


Copyright (C) 2004 S.Maaasamasa.