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
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
以上を追加する。
これで完了です。
# 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