vsftpd-2.3.4.tar.gzの場合
ソースを展開します。vi builddefs.hを必要に応じて編集します。
SSL可能にするかどうか、TCPWRAPPERSを定義するとhosts.allow,hosts.deny
での制御が可能になります。vsftpd.confの設定は
はコンパイル時のbuilddefs.hに依存します。
- postlogin.c
- ftpcodes.h
- ls.c
- logging.c
- logging.h
- sysutil.c
- sysutil.h
上記7つのファイルについて上書きし、再コンパイルします。(make)
ルートになってオブジェクトのみコピーします。
cp vsftpd /usr/sbin/. (Fedoraの場合)
http://www.proftpd.org/よりダウンロードします。
バージョンは1.2.9をダウンロードしたものに手をいれました。
proftpdはアパッチのようなモジュール追加形式でFTPプロトコルのRFC定義部分などはモジュールで分離されています。したがって2つのモジュールに手を入れることでFSynchの
同期モードに対応できました。
proftpd-1.2.9.tar.gzを適当なディレクトリーに落としてから解凍します。
>tar zxvf proftpd-1.2.9.tar.gz
>cd proftpd*
ここで[proftpd-1.2.9]のディレクトリーに移動しました。
下にmodulesのディレクトリがあります。
>cd modulesここで元のソースを保存したい場合は適当な別ディレクトリにコピーしてください。(再度tarで解凍もできますが、)
ここにproftpd-mod-fsynch.tar.gzをコピーして解凍します。>tar zxvf proftpd-mod-fsynch.tar.gz
これにより、mod_ls.c mod_site.cの2つのファイルが上書きされます。再び[proftpd-1.2.9]の直下に移動します。
>./configure
でコンパイル環境を構築します。
ここではLinuxのディストリビューションによってディレクトリを決めるパラメータを指定できます。
何も指定しない場合は /usr/local/sbin にバイナリファイルが
/usr/local/etc/proftpd.conf ができます。>make
>su
今まで使用していたFTPサーバーのバイナリーをバックアップする場合は待避させてください。
>make install
デフォルトでwu-ftpdがインストールされている場合はproftpdへの移行作業が必要です。
xinetdで起動させる設定の場合を簡単に説明します。
またproftpdの設定方法は検索などで調べてみてください。
proftpd.conf をエディタで開いて該当箇所を書き換えます。
------------------------------
ServerType inetd
User 既にあるユーザー名
Group 既にあるグループ名TimesGMT off
------------------------------
TimesGMT はLinux(UNIX)システムの設定に合わせる必要があります。
たとえば、/etc/sysconfig/clockでUTC=noの場合は上記のようにTimesGMTをoffにし
UTC=YESの場合はonにしてください。
xinetd環境をwu-ftpdからproftpdへ変更する。
>cd /etc/xinetd.d
>vi wu-ftpd
disable = yes
にする。ntsysvでも同じことができます。
proftpd用のファイルがない場合は新規作成します。
>vi proftpd
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/in.proftpd <インストールした環境に応じて
}xinetdを再起動させます。
ダウンロード
上記のとおり改造はそれほどたいしたこともなく、またセキュリティー上危険度がアップすることは 考えにくいですが、あくまで自己責任においてご使用をお願いします。
すべてtar.gzで圧縮していますのでダウンロード時にもし、tar.tar とかの拡張子に勝手に変化している場合はダウンロードファイル名末尾が必ず、「tar.gz」になるように修正してください。
tar zxvf [xxxxxxx.tar.gz] で解凍できるはずです。- proftpd: ダウンロード
proftpd-mod-fsynch.tar.gz
2011.4.29の時点で最新ソースに対して再度対応しました