標籤:mysql驗證 ftp虛擬使用者
實現基於mysql驗證的vsftpd虛擬使用者 (centos6)
說明:本實驗在兩台Cento主機上實現,一台作為FTP伺服器,一台作為資料庫伺服器
FTP伺服器ip:172.16.250.90
Mysql伺服器ip:172.16.252.16
一、安裝ftp伺服器安裝包
yum install vsftpd pam_mysql
二、資料庫伺服器建立虛擬使用者帳號
1、建立虛擬使用者資料庫
mysql> create database vsftpd; mysql> show tables; mysql> grant select on vsftpd.* to [email protected]‘172.16.%.%‘ identified by ‘magedu‘; mysql> flush privileges;
2、建立user表
mysql> use vsftpd; mysql> CREATE TABLE USER (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,NAME CHAR(50) BINARY NOT NULL,PASSWORD CHAR(48)BINARY NOT NULL); mysql> desc user;
3、添加測試虛擬使用者
mysql> inset into user(name,password) values(‘wang‘,password(‘magedu‘)); mysql> inset into user(name,password) values(‘mage‘,password(‘magedu‘)); mysql>select * from user;
三、在ftp伺服器上配置vsftpd服務
1、在ftp伺服器上建立pam認證所需檔案
[[email protected] log]# vim /etc/pam.d/vsftpd.mysql auth required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=172.16.252.16 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2 #此處與auth行為一行account required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=172.16.252.16 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2 #此處與account行為一行
auth 表示認證
account 驗證帳號密碼正常使用
required 表示認證要通過
pam_mysql.so 模組此處也可以寫為相對路徑,若該模組為編譯安裝路徑變化此處必須寫為絕對路徑。其後
參數皆為給此模組傳遞參數。
user=vsftpd 登入mysql的使用者
passwd=magedu 登入mysql的密碼
host=172.16.252.16 mysql伺服器位址(如mysql與vftpd為同一伺服器則為localhost即可)
db=vsftpd 串連mysql的那個庫
table=users 串連庫裡的哪一個表
usercolumn=name 當作使用者名稱欄位的欄位名稱
passwdcolumn=password 當作密碼欄位的欄位名稱
crypt=2 密碼的加密方式為mysql password() 函數加密
注意 crypt為加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password() 函數加密 ,3表示
md5加密,4表示shd1加密。
2、建立相應使用者和修改vsftpd檔案
useradd –s /sbin/nologin –d /var/ftproot vuser
修改vsftp設定檔
anonymous_enable=YES
guest_enbale=YES #開啟虛擬使用者登入
guest_username=vuser #指定虛擬使用者映射的系統使用者身份
pam_service_name=vsftpd.mysql #指定使用mysql認證方式登入 此項修改後原系統使用者將無法登入。
四、測試
此時虛擬使用者wang及mage都可正常登入。
注意配置過程中selinux 策略
禁止selinux 或執行以下命令
setsebool -P ftpd_connect_db 1
setsebool -P ftp_home_dir 1
chcon -R -t public_content_rw_t /var/ftproot/
本文出自 “秋季” 部落格,請務必保留此出處http://lxlxlx.blog.51cto.com/3363989/1885407
實現基於mysql驗證的vsftpd虛擬使用者 (centos6)