FreeBSD-5.3 vsftpd-2.0.1

FTPサーバである vsftpd をバーチャルホスト運用します

バーチャルホスト運用するにはxinetd経由での起動しか無いようなのでxinetd経由での運用手順を示します

既にvsftpdがinetd経由で動作しているのが前提です

構築する環境

ひとつのマシンにIPアドレスを2つ付与し、それぞれのIPアドレスでFTPサーバを運用する様にします

FTPサーバ1IP ADDRESS: 192.168.100.150
FTPサーバ2IP ADDRESS: 192.168.100.151

inetd起動の中止

/etc/inetd.confより、vsftpd関連の設定を削除し、inetdをHUPさせます

もしくはinetdサービスそのものを停止させます(/etc/rc.conf)

xinetd経由での起動に変更

IPアドレスが192.168.100.150でinetd経由で動作していたvsftpdをxinetd経由で起動する様に変更します

なお、xinetdの導入についてはxinetdの導入・利用を参照願います

/usr/local/etc/xinetd.d/vsftpdの作成

/usr/local/etc/xinetd.d/下に vsftpd というファイルを作成します

ファイル内容は以下です

service ftp
{
         disable                 = no
         #flags                  = NOLIBWRAP
         socket_type             = stream
         protocol                = tcp
         wait                    = no
         user                    = root
         server                  = /usr/local/libexec/vsftpd
         server_args             = /usr/local/etc/vsftpd.conf
         #log_on_success          += DURATION USERID
         #log_on_failure          += USERID
         nice                    = 10
}

xinetdの再起動

rootにて以下を実行します

/usr/local/etc/rc.d/xinetd.sh restart

接続テスト

他クライアントより、接続ができることを確認します

IPアドレスの追加

NICにIPアドレス(192.168.100.151)を追加します

追加方法については、NICに複数のIPアドレスを割り当てるを参照願います

FTPサーバ1の構築

先程xinetd経由で動作する様にしたサーバをFTPサーバ1として再設定します

/usr/local/etc/xinetd.d/vsftpdの変更

/usr/local/etc/xinetd.d/vsftpdに以下を追加します

bind   =  192.168.100.150

xinetdの再起動

変更を反映させる為、xinetdを再起動します

rootにて以下を実行します

/usr/local/etc/rc.d/xinetd.sh restart

FTPサーバ2の構築

FTPサーバ1の設定ファイルを元に新たに構築します

/usr/local/etc/vsftpd2.confの作成

/usr/local/etc/vsftpd.confをコピーし、新規にvsftpd2.confを作します

# cp /usr/local/etc/vsftpd.conf /usr/local/etc/vsftpd2.conf

/usr/local/etc/vsftpd.chroot_list2の作成

/usr/local/etc/vsftpd.chroot_listをコピーし、新規にvsftpd.chroot_list2を作します

# cp /usr/local/etc/vsftpd.chroot_list /usr/local/etc/vsftpd.chroot_list2

/usr/local/etc/vsftpd.user_list2の作成

/usr/local/etc/vsftpd.user_listをコピーし、新規にvsftpd.user_list2を作します

# cp /usr/local/etc/vsftpd.user_list /usr/local/etc/vsftpd.user_list2

/usr/local/etc/xinetd.d/vsftpd2の作成

/usr/local/etc/xinetd.d/vsftpdをコピーし、新規にvsftpd2を作します

# cp /usr/local/etc/xinetd.d/vsftpd /usr/local/etc/xinetd.d/vsftpd2

vsftpd2.confの変更

以下の点を変更します

userlist_file=/usr/local/etc/vsftpd.user_list2
chroot_list_file=/usr/local/etc/vsftpd.chroot_list2
vsftpd_log_file=/var/log/vsftpd2.log

vsftpd.user_list2の変更

FTPサーバ2にのみ接続を許可するユーザ名を記述します

xinetd用設定ファイルの作成

/usr/local/etc/xinetd.d/vsftpdをコピーし、vsftpd2を作成します

# cp /usr/local/etc/xinetd.d/vsftpd /usr/local/etc/xinetd.d/vsftpd2

コピーした、vsftpd2ファイルの修正

コピーした、vsftpd2を変更します

変更箇所は以下です

server_args  = /usr/local/etc/vsftpd2.conf
bind         = 192.168.100.151

xinetdの再起動

rootにて以下を実行します

/usr/local/etc/rc.d/xinetd.sh restart

最終確認

他クライアントより、

ftp 192.168.100.150
ftp 192.168.100.151

の両方で接続できる事を確認します

関連ページ