○ Proftpdのインストール

*FTPサーバの利用 (vsftpdにかわるもの)
*proftpd-1.3.3aをソースからインストールし、設定します
*proftpd専用ユーザ (/sbin/nologinシェル) で運営できます
*動作確認 gFTP (linux)、FileZilla、FFFTP (WindowsXP)
*make はメンテナンスマシンで行っています

**以降はコメントです
*ソースの取得、削除は略します
*エディタ、ファイラーの操作は省略します
*Enterキーを省略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:proftpd-1.3.3a.tar.bz2  (http://www.proftpd.org/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)
opensslのインストール

○インストール環境

:OS CentOS 5.5
:selinux disabled or permissive
:インストール先  /usr/local
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

*メンテナンスの場合は一般ユーザから行います



○proftpd-1.3.3a

○新しいモデュール

*proftpd-1.3.3で新しく追加されたモデュールです
*mod_sftpがsftp-serverの代用になるかはこれから

mod_sql_passwd mod_exec mod_shaper mod_tls_shmcache
mod_sftp mod_sftp_pam mod_sftp_sql

○展開・インストール

*openssl-develを必要とします
*opensslヘッダファイルのバージョンを記録するので注意
*組み込んだ全てのモデュールを試していません

# /usr/src
# tar jxvf proftpd-1.3.3a.tar.bz2
# chown -R root:root proftpd-1.3.3a
# cd proftpd-1.3.3a
# make distclean
./configure CFLAGS="-O2 -march=pentium3" \
--sysconfdir=/etc \
--localstatedir=/var/run \
--enable-ipv6 \
--enable-ctrls \
--enable-facl \
--enable-dso \
--enable-autoshadow \
--enable-nls \
--enable-openssl \
--with-modules=mod_wrap:mod_ratio:mod_readme:mod_auth_pam:mod_tls \
--with-shared=mod_quotatab:mod_quotatab_file:mod_quotatab_ldap:\
mod_ldap:mod_ban:mod_ctrls_admin:mod_load:mod_rewrite:mod_sftp:\
mod_site_misc:mod_wrap2:mod_wrap2_file:mod_ident:mod_dynmasq:\
mod_unique_id:mod_ifsession

*CFLAGS="-O2 -march=pentium3" (CPU最適化オプション)
*該当しない場合は指定しない
紫色部分 ssl,tls対応
*オプションは半角を入れて続けて記入した方が良い

# make
# make install

*pam用ファイル・起動スクリプト等をコピーします

# cd contrib
# cp ftpasswd ftpmail ftpquota /usr/local/sbin
# cd dist/rpm
# cp ftp.pamd /etc/pam.d/ftp
# cp proftpd.init.d /etc/init.d/proftpd
# cp proftpd.logrotate /etc/logrotate.d/proftpd
# cp xinetd /etc/xinetd.d/proftpd
# cd /usr/src
# tar jcvf proftpd-1.3.3a-100702.tar.bz2 proftpd-1.3.3a/

○vsftpdの停止・自動起動設定の解除

# service vsftpd stop
# chkconfig --del vsftpd

○Anonymousftp用のディレクトリを作ります

*例 /home/ftp (ftp ftp 755)

# mkdir -p /home/ftp/pub
# chown -R ftp:ftp /home/ftp

*log用のディレクトリを作成

# mkdir /var/log/proftpd

○専用ユーザ設定ファイルの作成

# touch /etc/ftpd.passwd
# touch /etc/ftpd.group

○proftpd.confの修正

/étc/proftpd.conf (詳細別記)

*TZの設定

*省略

TimesGMT off
SetEnv TZ JST-9

*省略


○/etc/hosts.allowで制御します

*ローカルからのみ接続を許可します

ALL: 127.0.0.1
proftpd: 192.168.0. EXCEPT 192.168.0.21

○ftpusersでログイン制限

: /etc/ftpusers

*ディレクティブ UseFtpUsers on (Default)
*ログインを拒否するユーザをftpusersで指定します

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

○selinuxヘの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -RFv /home/ftp

○proftpdの起動

:/etc/xinetd.d/proftpdの修正

*省略

 disable=yes

*省略

:proftpd(standalone)の起動

# chmod 755 /etc/rc.d/init.d/proftpd
# service proftpd start
# chkconfig --add proftpd

○proftpdログのローテーション

:/ete/logrotate.d/proftpd

/var/log/proftpd/*.log /var/log/xferlog {
    rotate 4
    create
    missingok
    notifempty
    postrotate
        kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

:logrotationの確認

# logrotate -f /etc/logrotate.d/proftpd

*うまくいかない場合、設定ファイルを修正します
*ただし、var/lib/logrotate.statusに前回rotateした日付が設定されます
*logrotate.statusの日付をエディタで修正します
*調整後は/etc/logrotate.confと重複する設定をコメントにします
*"rotate 4" "create" など



○proftpd専用ユーザの設定

*ftpアクセスできるapacheユーザを設定します
*パスワードは暗号化されます

# cd /etc

*apacheユーザの設定

# ftpasswd --passwd --name=apache --uid=48 --gid=48 \
--home=/home/www --shell=/sbin/nologin
ftpasswd: creating passwd entry for user apache

Password:← パスワードの入力
Re-type password:← 再入力

ftpasswd: entry created

*apacheグループの設定

# ftpasswd --group --name=apache --gid=48
ftpasswd: creating group entry for group apache
ftpasswd: entry created

*パスワードのグループ・パーミッションを変更しておきます

# chown root:nobody /etc/{ftpd.passwd,ftpd.group}
# chmod o-r /etc/{ftpd.passwd,ftpd.group}

○local_port_rangeの調べ方

*ローカルの使用するportの範囲

# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000

○PASV接続の例

gftpのコネクションログの例では

PASV
227 Entering Passive Mode (134,160,38,1,206,165)

グローバルアドレス 134.160.38.1
port 52901 (256x206+165=52901) で接続していることになります


○ftp のレスポンスコード

response-code

○ Copyright(c) 528p.com All Rights Reserved.