1. 安裝所需要的 pam_mysql.so
可以從 source code 抓取 compile 安裝,或已經 build好的版本可以下載 :
https://centos.pkgs.org/7/cheese-x86_64/pam_mysql-0.7-0.21.rc1.el7.x86_64.rpm.html
wget http://www.nosuchhost.net/~cheese/fedora/packages/epel-7/x86_64//pam_mysql-0.7-0.21.rc1.el7.x86_64.rpm
rpm -Uvh ./pam_mysql-0.7-0.21.rc1.el7.x86_64.rpm
2. 請先裝好 mysql (可參閱其他文章),並建立 db 提供使用。
假定建立 DB vsftpd 及 下面的 accounts table,並 grant 權限給 vsftpd 這個帳號,
使用密碼 42fdsFDE3$ :
CREATE TABLE `accounts` (
userid int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
primary key(userid),
unique key(username)
) ENGINE=MYISAM;
grant all on vsftpd.* to 'vsftpd'@'localhost' IDENTIFIED BY '42fdsFDE3$';
PS:千萬記住,密碼不要用到#,以免PAM設定檔中,#後面被當作註解。
3. 編輯 pam 檔 /etc/pam.d/vsftpd_dbuser:
#%PAM-1.0
auth required pam_mysql.so user=vsftpd passwd=42fdsFDE3$ host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
account required pam_mysql.so user=vsftpd passwd=42fdsFDE3$ host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
其中的 crypt=3,是指定 table 中密碼的欄位使用 md5( )運算,
所以 insert 資料時記得使用類似下面sample:
insert into accounts (username, pass) values ('user1', md5('paswd1'))
4. 完成就可以重啟 vsftpd 了。
沒有留言:
張貼留言