pure-ftpd
fedoraでのpure-ftpdの設定。 fedoraと言えばvsftpdかもしれないが、very secureというだけあって堅い。しかし、使いづらい。 ってことで、gentooの頃も使っていたpure-ftpdを利用する。 こういう選択はいいものを選ぶ目はgentooの方がうまいと思う。
pure-ftpdはUNIXアカウントがなくてもバーチャルアカウント(というのか?)でFTP接続が可能。これがありがたい。 FTPしか使わないのにUNIXアカウントを無駄に発行したくないし、管理するのも大変だろうから。 このバーチャルアカウントはあるUNIXアカウントで接続する。 例えば、UNIXアカウントのstaffユーザを作成しておく。 しかし、FTPの接続アカウントはuser1, user2, user3, ...みたいにstaffアカウントを使いまわすことが出来る。 普通にUNIXアカウント認証や認証にMySQLやPostgreSQLも使えるようだが、PureDBを使うのがお手軽。
yum -y install pure-ftpdインストール完了♪
2. 設定ファイルを編集 設定ファイルである/etc/pure-ftpd/pure-ftpd.confを編集する。 diff風に書くとこんな感じ。
< Daemonize yes > # Daemonize yes簡単に説明を書く。 Daemonize: デーモンかするか?サービスとしてあげる(/etc/init.d/pure-ftpd)ならデーモンかするが、xinetdを使う場合はデーモン化しない。 PureDB: pure-ftpdのDBを利用する。 PAMAuthentication: PAM認証は行わない。 IPV4Only: IPv6は使わないので、IPv4だけでOK。< # PureDB /etc/pure-ftpd/pureftpd.pdb > PureDB /etc/pure-ftpd/pureftpd.pdb
< PAMAuthentication yes > # PAMAuthentication yes
< # IPV4Only yes > IPV4Only yes
3. FTP接続ユーザを作成 FTP接続用のUNIXアカウントを作成する。実際はこのアカウントでは接続しないところに注意。
useradd -g users -d /share share続いて、FTPユーザを作成する。
pure-pw useradd user1 -u share -g users -d /share -muser1というFTPユーザで接続した場合、shareユーザでusersグループとなる。ホームディレクトリは/shareの意味。 -mはユーザを作成と同時にDBを更新するオプション。-mを付け忘れたらpure-pw mkdbとしてDBを更新する。 初期設定でchrootされているので、/share以外からは出られないのでセキュリティ面も安心。
4. xinetdでの起動設定 /etc/xinetd.d/pure-ftpdを編集。
< disable = yes > # disable = yesこれだけ。 アクセス制限をかけたいのであれば、only_from = 192.168.0.0/24みたいなのを足しておけばよい。
5. xinetdを再起動 /etc/init.d/pure-ftpd statusでpure-ftpdが落ちていることを確認。
/etc/init.d/xinetd restart