實現基於mysql驗證的vsftpd虛擬用戶

實驗前說明:本實驗需要在兩臺centos向主機上實現,一臺作爲ftp服務器,一臺做數據庫服務器

在這裏我使用centos6做數據庫服務器,centos7做ftp服務器

一:安裝所需要的包和包組

在centos6上安裝數據庫所需要的包

yum -y install mysql-server

在centos7因爲沒有對應的rpm包,需要手動編譯安裝

yum -y groupinstall "development tools"

yum -y install pam-devel vsftpd

下載源碼包

pam_mysql-0.7RC1.tar.gz

解壓包 tar xvf pam__mysql-0.7RC1.tar.gz

然後進入這個目錄下進行編譯cd pam_mysql-0.7RC1/

./configure --with-mysql=/usr --with-pam=/usr

--with-pam-mods-dir=/lib64/security

根據提示我們還需要安裝maria-devel這個包

安裝之後,重新進行編譯

如果沒有出現錯誤,就可以進行下一步啦

Make &&make install

二.在數據庫服務器上創建虛擬用戶賬號

建立存儲虛擬用戶數據庫和連接的數據庫用戶

建立連接數據庫的用戶

ed2d85f2fdf36a3d348bb95d5405996c.png


在數據庫中準備相關表來存儲虛擬用戶的賬號


測試連接

5cb6081f98ff181dd3dca865f8d40d22.png

三 添加虛擬用戶

根據需要添加所需要的用戶,爲了安全應該使用password

函數加密其密碼後存儲

在ftp服務器上配置vsftpd服務

在ftp服務器上建立pam認證所需文件

Vim /etc/pam.d/vsftpd.mysql添加如下兩行

d9f25dcef0fb507afdf03ab8cad5315a.png

auth  表示認證

account  驗證賬號密碼正常使用

required  表示認證要通過

pam_mysql.so 模塊是默認的相對路徑,是相對/lib64/security/ 路

徑而言,也可以寫絕對路徑;後面爲給此模塊傳遞的參數

user=vsftpd 爲登錄mysql 的用戶

passwd=magedu  登錄mysql 的的密碼

host=mysqlserver mysql 服務器的主機名或ip 地址

db=vsftpd 指定連接msyql 的數據庫名稱

table=users  指定連接數據庫中的表名

usercolumn=name  當做用戶名的字段

passwdcolumn=password  當做用戶名字段的密碼

crypt=2  密碼的加密方式爲mysql password()函數加密

四 建立相應用戶和修改vsftpd配置文件,使其適應mysql認證,建立虛擬用戶映射的系統用戶及對應的目錄

useradd -s /sbin/nologin -d /var/ftproot vuser

chmod 555 /var/ftproot centos7  需除去ftp 根目錄的寫權限

mkdir /var/ftproot/{upload,pub}

setfacl m u:vuser:rwx /var/ftproot/upload

確保/etc/vsftpd/vsftpd.conf中已經啓用了以下選項

Anonymous_enable=yes

並添加下面兩項

guest_enable=yes

guest_username=vuser

修改下面一項,原系統用戶無法登錄

五 啓動vsftpd服務

Systemctl start vsftpd

查看端口開啓情況

Ss -ntl |grep :21

六 測試:利用ftp客戶端工具,以虛擬用戶登錄驗證結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章