Skip to main content

pure-ftpd

· 4 min read

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を使うのがお手軽。

  1. pure-ftpdのインストール
  2. 設定ファイルを編集
  3. FTP接続ユーザを作成
  4. xinetdでの起動設定
  5. xinetdを再起動
1. pure-ftpdのインストール
yum -y install pure-ftpd
インストール完了♪2. 設定ファイルを編集設定ファイルである/etc/pure-ftpd/pure-ftpd.confを編集する。 diff風に書くとこんな感じ。
< Daemonize yes > # Daemonize yes

< # PureDB /etc/pure-ftpd/pureftpd.pdb > PureDB /etc/pure-ftpd/pureftpd.pdb

< PAMAuthentication yes > # PAMAuthentication yes

< # IPV4Only yes > IPV4Only yes

簡単に説明を書く。 Daemonize: デーモンかするか?サービスとしてあげる(/etc/init.d/pure-ftpd)ならデーモンかするが、xinetdを使う場合はデーモン化しない。 PureDB: pure-ftpdのDBを利用する。 PAMAuthentication: PAM認証は行わない。 IPV4Only: IPv6は使わないので、IPv4だけでOK。3. FTP接続ユーザを作成FTP接続用のUNIXアカウントを作成する。実際はこのアカウントでは接続しないところに注意。
useradd -g users -d /share share
続いて、FTPユーザを作成する。
pure-pw useradd user1 -u share -g users -d /share -m
user1という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