1. ホーム
  2. データベース
  3. マイサク

MySql認証ベースのvsftpd仮想ユーザー

2022-01-06 07:06:02

1. Mysqlのインストール

yum -y install mariadb-server
systemctl enable --now mariadb.service


1.2 テーブルのビルド、ライブラリのビルド、ユーザーのビルド

mysql -e "CREATE DATABASE vsftpd;USE vsftpd;
CREATE TABLE users (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL);
INSERT INTO users(name,password) values('qiu',password('123456'));
INSERT INTO users(name,password) values('zhang',password('654321'));"
mysql -e "select * from vsftpd.users;"


1.3 リモート接続用アカウントの作成

mysql -e "create user vsftpd@'192.168.31.%' identified by 'Pana#123';"
mysql -e "grant all on vsftpd.* to vsftpd@'192.168.31.%';"


2. FTPサーバーのインストール

2.1 vsftpdのインストール

yum install -y vsftpd


2.2 pam_mysqlのインストール

yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
tar xf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
. /configure --with-pam-mods-dir=/lib64/security 
make install


2.2 pam認証に必要なファイルの作成

cat > /etc/pam.d/vsftpd.mysql<<EOF
auth required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt =crypt
EOF


注:上記はREADMEドキュメントを参照しています
crypt 暗号化方式。
0は暗号化しないことを意味します
1はcrypt(3)暗号化を意味する
2は、mysqlのpassword()関数で暗号化されていることを意味します。
3はmd5による暗号化
4はSHA1暗号化

2.3 vsftpdユーザの作成

mkdir -pv /data/ftproot/upload
useradd -d /data/ftproot -s /sbin/nologin -r vuser
setfacl -m u:vuser:rwx /data/ftproot/upload


2.4 vsftpdの設定ファイルの変更

mkdir /etc/vsftpd/conf.d/
sed -Eri "s#(pam_service_name=vsftpd)#\1.mysql#" /etc/vsftpd/vsftpd.conf
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf


2.5 vsftpd サービスを再起動する

systemctl enable --now vsftpd

この記事はMySql認証ベースのvsftpd仮想ユーザーに関するものです。MySqlのvsftpd仮想ユーザーについては、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を参照してください。