pure-FTPD のその後

  • ここ でとりあえずインストールした物の、まだ設定その他が終わってなかったので、いろいろ試してみる
  • セキュリティ関連のオプションを設定してなかったので、最初から (^-^;;
  • バージョンアップ対応用にインストールは、 /usr/local/pure-ftpd.1.0.20 にして、/usr/local/pure-ftpd/ からシンボリックリンクにする

$ ./configure --with-everything --with-paranoidmsg \
--without-capabilities --with-virtualchroot --without-pam \
--without-banner --prefix=/usr/local/pure-ftpd.1.0.20
$ make
$ su
Password:
# make install
# ln -s /usr/local/pure-ftpd.1.0.20 /usr/local/pure-ftpd

    • いちおう、configureのオプションの説明

・configure オプション
 --with-everything
 ほとんど全ての機能を有効にする。

--with-paranoidmsg
 認証時に、ログイン名の誤りの場合と、パスワードの誤りの場合のどちらでも同じメッセージを出力する。

--without-capabilities
 libcapを使用しない。デフォルトでは自動判別。libcapがうまく動作しない場合に指定する。

--with-virtualchroot
 仮想chrootを有効にする。

--without-pam
 pam認証を行わない

--without-banner
 接続時の初期メッセージを省く。

※その他、ftpサービスの種類を推測されにくくするために、以下のオプションがある

    • with-boring
    • without-humor
    • without-usernames
  • つづいて、サーバ起動オプションの設定をする。
    • 以下のサイトを参考にして、pure-ftpd.conf を設定する

Pure-FTPd :: Pure-FTPd
http://homepage.mac.com/proc/pureftpd/pureftpd-option.html
http://www.fkimura.com/pureftpd0.html

※間違いなく勝手にリンクしてます (^-^;;

  • 自分で起動時の引数を調べてもいいんだけど面倒なんで、付属のperlスクリプトで求めちゃいます
    • redhat な環境だと、「pure-config.pl」が、インストールはされてないので、ソースのディレクトリから実行
    • xinetd から起動させる場合には、デフォルトから「Daemonize yes」な設定は、ハズしておかないといけないですけど・・

# cd /home/user/src/pure-ftpd-1.0.20/configuration-file
# perl ./pure-config.pl /etc/pure-ftpd.conf
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -c1 -C8 -D -fftp -H -I15 -lpuredb:/etc/pureftpd.pdb -L2000:8 -m4 -s -U133:022 -u100 -k99 -Z -4

  • つづいて、xinetdから起動するよう /etc/xinetd.d/pure-ftpd を作成
  • 起動オプションは、perlスクリプトで調べたものを「server_args =」で指定しましょう

/etc/xinetd.d/pure-ftpd

service ftp
{
socket_type = stream
server = /usr/local/pure-ftpd/sbin/pure-ftpd
server_args = -A -c1 -C8 -D -fftp -H -I15 -lpuredb:/etc/pureftpd.pdb -L2000:8 -m4 -s -U133:022 -u100 -k99 -Z -4
protocol = tcp
user = root
wait = no
disable = no
}

  • で、いよいよユーザの作成なんですけど、以下の手順にて実施します

1. 仮想ユーザの元になるユーザ追加
 2. pureftpd.passwdへの登録
 3. pureftpd.passwdを元に、pdbの作成

  • といっても、pure-pw コマンドにて実施できるんで問題はそれほどないです
    • ただ、pure-pw コマンドは、標準で $INSTALL_DIR/etc/ のファイルを変更してくるので、注意が必要です
  • 実際に、利用するのはpdb だけなので、わかりやすいように、適当に /etc/pureftpd.pdb からシンボリックリンクを貼っておくことにしました

# ln -s /usr/local/pure-ftpd/etc/pureftpd.pdb /etc/pureftpd.pdb

1. 仮想ユーザの元になるユーザの作成
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /etc ftpuser

2. ユーザの追加(pureftpd.passwdへの登録)
# /usr/local/pure-ftpd/bin/pure-pw useradd test -u ftpuser -d /home/ftp/

3. pureftpd.passwdを元に、pdbの作成
# /usr/local/pure-ftpd/bin/pure-pw mkdb

  • とりあえず完成
  • いか、ログイン時のログ

C:\>ftp 192.168.1.1
Connected to 192.168.1.1.
220 FTP server ready.
User (192.168.1.1:(none)): ftpuser
331 User ftpuser OK. Password required
Password:
230-User ftpuser has group access to: 503
230 OK. Current directory is /
ftp>
ftp> ls -al
200 PORT command successful
150 Connecting to port 32068
226-Options: -a
226 0 matches total
ftp> quit
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.