FreeBSD/ProFTPD

ProFTPD

dokuwiki.fl8.jp転載済み

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