天天看點

建立vsftpd的基于pam_mysql的虛拟使用者機制

在centos7系統上實作搭建vsftp服務,基于pam_mysql的虛拟使用者機制:

編譯安裝pam_mysql

準備環境:

]# yum -y groupinstall "Development Tools" "server Platform Development"

]# yum -y install pam-devel openssl-devel mariadb-devel mariadb-server

]# yum -y install vsftpd

解壓pam_mysql-0.7RC1.tar.gz源碼包

]# cd pam_mysql-0.7RC1/

]# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

]# make && make install

啟動服務

]# systemctl start mariadb.service

]# mv vsftpd.conf{,.test}

]# cp vsftpd.conf.bak vsftpd.conf 在複制的配置檔案中修改,把原配置檔案保留;

登入mysql資料庫,建立庫、表、使用者并授權

]# mysql

> CREATE DATABASE vsftpd;

> use vsftpd;

> CREATE TABLE users (

id int AUTO_INCREMENT NOT NULL PRIMARY KEY,

name char(30) NOT NULL,

password char(48) binary NOT NULL  );

> INSERT INTO users(name,password) VALUES ('tom',password('mageedu'));

> INSERT INTO users(name,password) VALUES ('jerry',password('mageedu'));

> GRANT ALL ON vsftpd.* TO vsftpd@localhost IDENTIFIED BY 'mageedu';

> GRANT ALL ON vsftpd.* TO vsftpd@'127.0.0.1' IDENTIFIED BY 'mageedu';

> FLUSH PRIVILEGES;

測試使用者是否能登入mysql

]# mysql -uvsftpd -pmageeud

> exit

資料庫配置完畢。

配置vsftpd,通過pam-mysql子產品連結mysql伺服器,來檢索出使用者和密碼:

]# less /pam_mysql-0.7RC1/README 檢視源碼包中的配置檔案說明

]# man vsftpd.conf 檢視配置檔案說明

]# vim /etc/pam.d/vsftpd.mysql

<a href="http://s2.51cto.com/wyfs02/M01/7F/7E/wKioL1cgqwaQPzuIAAAxtqgGjq0426.png" target="_blank"></a>

建立一個系統使用者,為虛拟使用者映射使用的使用者及授權

]# useradd -s /sbin/nologin -d /ftproot vusre

配置vsftpd,確定匿名使用者有哪些權限,可根據需要開啟或禁用相關權限

]# vim /etc/vsftpd/vsftpd.conf

<a href="http://s1.51cto.com/wyfs02/M02/7F/75/wKioL1cfYf2T_nc7AAAxBhtaEvw333.png" target="_blank"></a>

]# mkdir -pv /ftproot/{pub,upload}

確定使用者的家目錄,讓其它遠端通路的使用者能讀、執行權限,這樣才能cd進此目錄;但不能有寫權限,否則遠端ftp登入失敗;

]# chmod go+rx /ftproot/

]# chmod u-w /ftproot/

]# systemctl start vsftpd.service

此時虛拟使用者建立成功,可在本地另一主機上測試通路ftp伺服器了。

本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/1768047,如需轉載請自行聯系原作者