ユーザ用ツール

サイト用ツール


02_freebsd:01_net:02_proftpd

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
02_freebsd:01_net:02_proftpd [2013/09/30 00:39] – 作成 matsui02_freebsd:01_net:02_proftpd [2024/11/27 07:00] (現在) matsui
行 1: 行 1:
 +====== 02 ProFTPD ======
  
 +wuftpdよりも管理がしやすく、セキュリティ的にも安全なftpサーバ
 +ProFTPDをインストール
 +
 +===== ソースを持ってくる =====
 +
 +http://www.proftpd.org/ より最新のtarballをダウンロードする。
 +最新はproftpd-1.2.10.tar.gz(2005年4月25日現在)
 +<code console>
 + > wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gz
 +</code>
 +
 +===== パッチを持ってくる =====
 +
 +http://www.hayasoft.com/haya/linux/proftpd_nlst_patch.html
 +
 +<code console>
 + # wget http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.2.10-nlst-ffftp.patch
 +</code>
 +
 +===== ソースの展開 =====
 +<code console>
 + > tar zxvf proftpd-1.2.10.tar.gz
 +</code>
 +
 +===== インストール =====
 +<code console>
 + > patch -p0 < proftpd-1.2.10-nlst-ffftp.patch
 + > cd proftpd-1.2.10
 + > ./configure
 + > make  
 + > su
 + # make install
 +</code>
 +
 +===== 設定ファイルを編集 =====
 +
 +/usr/local/etc/proftpd.confを編集する。
 +<code console>
 + # 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  #ローカルタイムを正しく参照する。
 + --------------------------------------------------------------------
 +</code>
 +
 +■Anonymousの部分は全てコメントアウトする。
 +
 +■PASVモードでインターネット公開する場合の設定
 + MasqueradeAddress    ルータのWAN側アドレス 又は ドメイン名
 + PassivePorts        最小ポート番号 最大ポート番号
 +
 +■FFFTPなどでパーミッションが変更できない。~
 +この部分がDenyでパーミッションの変更を禁止できる。~
 +Allowにする事でパーミッションの変更が行える状態になります。~
 +<code>
 + <Limit SITE_CHMOD>
 + #     DenyAll
 +       AllowAll
 + </Limit>
 +</code>
 +
 +===== リジューム機能 =====
 +<code>
 + AllowStoreRestart on
 + AllowRetrieveRestart on
 +</code>
 +
 +===== ログの時間がずれる。 =====
 +
 + ◇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からインストールする場合 ====
 +<code console>
 + # 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 
 +</code>
 +
 +==== インストール ====
 +<code console>
 + # portupgrade proftpd 
 +</code>
 +
 +==== すでに入っている場合 ====
 +<code console>
 + # portupgrade -rf proftpd
 +</code>
 +
 +{{tag>Proftpd}}