====== 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グループは別という意味 # DenyAll AllowAll 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にする事でパーミッションの変更が行える状態になります。~ # DenyAll AllowAll ===== リジューム機能 ===== 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