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

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

参考URL
http://park1.wakwak.com/~ima/centos4_vsftpd0006.html

FTPユーザのために、いちいちLinuxユーザを増やしたくない!
vsftpdの認証には、linuxユーザを使っている。実装としてはPAM(Pluggable Authentication Modules)を使っていて、これは各サービスが独自に認証をしなくてもよくなるための仕組み。
今回の目的では、vsftpd → PAM → MySQLの架け橋として、pam_mysqlというパッケージが必要。CentOS6まではEPELに登録されていたらしいが、更新されなくなってCentOS7では削除されたらしい。
しょうがないので、ソースを落としてきてローカルビルドして、インストールしよう

1, vsftpdからmysqlのためにpam_mysqlモジュールをインストール

2, MySQLのインストール
そもそもMySQLが入っていなかった…。インストールしよう。
https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1

Mysql 5.7* パスワード強度の強要を止めさせる。セキュリティポリシーをMEDIUM(数字・小文字・大文字・記号の4種類必須)からLOW(最低文字数だけ)へ変更
https://qiita.com/keisukeYamagishi/items/d897e5c52fe9fd8d9273

MySQLのDBインスタンス(ftpusers)、vsftpdからMySQLへの接続ユーザ(ftpuser)、FTPユーザの管理テーブル(users)、ログテーブル(logs)を作る

3, vsftpdからMySQサーバへ接続できるMySQLのアカウント(ユーザIDとパスワード)を記述

4, ftpポートとデータ転送用ポート(50000から50050)を開放

5, /etc/vsftpd/vsftpd.confに記述を追加

6, FTPユーザの追加(二人目以降も同様)

これで、MySQLにレコードを作って、ホームディレクトリと設定ファイルを追加すれば、FTPユーザを追加できるようになった。
linuxコマンドを実行しなくても良い所が良いね!