vsftpd和mysql結合實現認證

tep1: mysql

首先安裝vsftp和mysql sql

[root@localhost ~]#yum install vsftpd mysql-server mysql-devel pam-devel -y shell

在PAM中默認是沒有mysql認證模塊的,因此要下載源碼本身手動安裝 數據庫

[root@localhost ~]# tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/ vim

[root@localhost ~]# cd /usr/src/pam_mysql-0.7RC1 安全

[root@localhost pam_mysql-0.7RC1]# ./configure --with-pam=/lib64/security/  #文件須要導入64位的目錄下 ide

[root@localhost pam_mysql-0.7RC1]# make && make install ui

step2: spa

安裝好後啓動mysql .net

[root@localhost ~]# service mysqld start

[root@localhost ~]# mysql -u root -p

首先先建立vsftp的數據庫

mysql> CREATE DATABASE vsftpd;

而後建立一個用戶表

mysql> use vsftpd

mysql> create table users (

-> id int AUTO_INCREMENT NOT NULL,

-> name char(20) NOT NULL UNIQUE KEY,

-> passwd char(48) NOT NULL,

-> primary key(id)

-> ); 

添加vsftpd的數據庫賬號

mysql> insert into users(name,passwd) values('lustlost',password('123456')); \

而後建立vsftpd的數據庫帳戶,爲了安全,只授予查詢權限

mysql> GRANT select on vsftpd.* to vsftpd@localhost identified by '123456'

mysql> GRANT select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456' ;

step3:

編輯vsftp配置文件,參考個人配置

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 

[root@localhost ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf 


anonymous_enable=YES 

local_enable=YES 

write_enable=YES 

local_umask=022 

anon_upload_enable=YES 

anon_mkdir_write_enable=YES 

dirmessage_enable=YES 

xferlog_enable=YES 

connect_from_port_20=YES 

xferlog_std_format=YES 

chroot_local_user=YES 

listen=YES 

pam_service_name=vsftpd.mysql #主要修改這一行,指定使用vsftpd.mysql這個pam配置文件調用pam認證 

guest_enable=YES #開啓來賓帳戶 

guest_username= mysqlftp #映射來賓帳戶,這個帳戶將會被映射爲mysql數據庫中的帳戶 

user_config_dir=/etc/vsftpd/vsftpd_user_conf #建立mysql每一個虛擬用戶的配置目錄


編輯pam配置文件,參考個人配置

[root@localhost ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.mysql #複製原來的vsftp認證方法,在此基礎上添加mysql認證

編輯PAM認證配置文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.mysql


auth required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2


step4:

添加mysql用戶認證的虛擬用戶

[root@localhost ~]# useradd mysqlftp -d /var/ftp/pub/mysqlftp

修改mysql虛擬帳戶的權限

[root@localhost ~]# chown mysqlftp:mysqlftp -R /var/ftp/pub/mysqlftp

建立mysql虛擬帳戶配置文件夾

[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf

在此文件夾下配置每一個mysql虛擬帳戶的配置文件

[root@localhost vsftpd_user_conf]# touch lustlost

local_root=/var/ftp/pub/mysqlftp/lustlost #其他配置能夠本身按需求寫,這裏只限制了mysql虛擬用戶的我的文件夾

在lustlost目錄中建立一個文件驗證結果

[root@localhost vsftpd_user_conf]# touch /var/ftp/pub/mysqlftp/lustlost/l.txt

相關文章
相關標籤/搜索