====== 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