ec2@awsで、ProFTPD(FTPサーバ)のアカウントをMySQLのテーブルで管理できるようにしてみた。

ec2@awsで、ProFTPD(FTPサーバ)のアカウントをMySQLのテーブルで管理できるようにしてみた。

CentOS7でvsftpdのバーチャルユーザを使って、MySQLでFTPユーザ管理をする。

vsftpdが一番多い気がするけど、他にもFTPサーバは存在する。
ec2だと、vsftpd-mysqlがうまく動作しないっぽいので、ProFTPDで試してみた。
設定ファイル(/etc/proftpd.conf)がapacheっぽい。

1, proftpdのインストール

ffftpで接続してみたら、ファイル一覧が表示されない~。
passiveモード対応だと、IPとポート設定が必要だった
/etc/proftpd.confの最後に追記。文法チェックは proftpd -t だけでOK!

2, mysqlをインストール
https://qiita.com/himatani/items/e1e650992dbc12b8a9b3

3, mysqlをインストールした後に、proftpd-mysqlをインストール(対応したバージョンがインストールされる)

4, proftpdのユーザテーブルを作る

proftpdでMySQL認証

laravelのeloquentを使うと、こんな感じ。
mysql関数のpassword()を使うので、DB::selectOneを使う(初めて見た!)

5,ホームディレクトリを作成

6, ffftpなどで接続できればOK!
ID=exampleuser
PASS=secret

これ以降は、ホームディレクトリとftpuserレコードだけでFTPアカウントが生成できる。