目次

02 ProFTPD

wuftpdよりも管理がしやすく、セキュリティ的にも安全なftpサーバ
ProFTPDをインストール

ソースを持ってくる

http://www.proftpd.org/ より最新のtarballをダウンロードする。
最新はproftpd-1.2.10.tar.gz(2005年4月25日現在)

 > wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gz

パッチを持ってくる

http://www.hayasoft.com/haya/linux/proftpd_nlst_patch.html

 # wget http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.2.10-nlst-ffftp.patch

ソースの展開

 > tar zxvf proftpd-1.2.10.tar.gz

インストール

 > patch -p0 < proftpd-1.2.10-nlst-ffftp.patch
 > cd proftpd-1.2.10
 > ./configure
 > make  
 > su
 # make install

設定ファイルを編集

/usr/local/etc/proftpd.confを編集する。

 # vi /usr/local/etc/proftpd.conf
 --------------------------------------------------------------------
 ServerName            "ProFTPD Default Installation"   FTP接続した時に表示させる名前
 ServerType            standalone                       inetdから起動する場合はinetd
 User                  nobody
 Group                 nobody                           <--nogroupから変更
 
 DefaultRoot           ~ !wheel
 DefaultRootの設定:この例ではユーザはホームディレクトリしか移動できないが、wheelグループは別という意味
 
 <Limit SITE_CHMOD>
 #     DenyAll
       AllowAll
 </Limit>
 
 
 UseReverseDNS on
 IdentLookups off
 TimesGMT off
 MasqueradeAddress       matsui.homeunix.com
 PassivePorts            7000 7030
 SetEnv  TZ :/etc/localtime  #ローカルタイムを正しく参照する。
 --------------------------------------------------------------------

■Anonymousの部分は全てコメントアウトする。

■PASVモードでインターネット公開する場合の設定
MasqueradeAddress    ルータのWAN側アドレス 又は ドメイン名
PassivePorts        最小ポート番号 最大ポート番号

■FFFTPなどでパーミッションが変更できない。~
この部分がDenyでパーミッションの変更を禁止できる。~
Allowにする事でパーミッションの変更が行える状態になります。~

 <Limit SITE_CHMOD>
 #     DenyAll
       AllowAll
 </Limit>

リジューム機能

 AllowStoreRestart on
 AllowRetrieveRestart on

ログの時間がずれる。

◇ProFTPd+Chrootを使用すると、/etc/localtimeへアクセスできなくなり、

 ftpでやり取りしたファイルのタイムスタンプが  強制的にGMTになってしまう

 (proftpd.logに記録されるイベントの時刻もGMTで表記されてしまう)

■対処方法
①proftpd.confでSetEnvディレクティブを用いてTZ環境変数を定義
 #vi proftpd.conf

 SetEnv TZ JST-9
 (もしくは、SetEnv TZ :/etc/localtime)

 上記を追記

②standaloneの場合は、proftpdを再起動
 (inetd起動の場合は、不要)

アクセス制御ファイル作成

このファイルに記述されているユーザではログイン不可となる。
# vi /etc/ftpusers


root
test
matsui


inetd.confの編集

ProFTPをinetdから起動するよう。inetd.confを編集
# vi /etc/inetd.conf


ftp stream tcp nowait root /usr/local/sbin/in.proftpd in.proftpd


inetdを再起動
# kill -HUP `cat /var/run/inetd`

エラーを出ないようにする。

このままでも起動するが、「no modules loaded for `ftpd' service」という
エラーが毎回でてしまうので、解消する。
# vi /etc/pam.conf


ftpd auth required pam_unix.so try_first_pass
ftpd account required pam_unix.so try_first_pass
ftpd session required pam_permit.so


以上を追加する。

これで完了です。

portsからインストールする場合

 # cd /usr/ports/distfiles
 # wget http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.3.1-nlst-ffftp.patch
 # vi /usr/ports/ftp/proftpd/Makefile.local
 PATCHFILES += proftpd-1.3.1-nlst-ffftp.patch
 PATCH_DIST_STRIP = -p1
 NO_CHECKSUM = yes 

インストール

 # portupgrade proftpd 

すでに入っている場合

 # portupgrade -rf proftpd