天天看點

redhat5.8+pam+mysql+vsftp(提供軟體包可以到 百度雲盤下載下傳 賬号 [email protected] 密碼pk492940446)

              vsftp+pam+mysql

vsftpd是目前在linux系統環境下表現最為優越的安全,穩定,快速的性能,加上vsftpd的可讀性強、易配置,受到更為廣泛的應用。vsftpd有三種實作的形式,分别為:

1、匿名使用者形式:在預設安裝的情況下,系統隻提供匿名使用者通路;

2.本地使用者形式:以/etc/passwd中的使用者名為認證方式;

3、虛拟使用者形式:支援将使用者名和密碼儲存在資料庫檔案或資料庫伺服器中。

這次運用第三種虛拟使用者形式在資料庫中儲存vsftp的登陸的賬号和密碼。用pam驗證登陸

1.安裝pam_mysql-0.7RC1.tar.gz

# tar xfpam_mysql-0.7RC1.tar.gz

# cd pam_mysql-0.7RC1

# ./configure--with-openssl

# make && makeinstall        #如果報錯,安裝mysql-devel

# ls /usr/lib/security/

classpath.securitypam_mysql.la pam_mysql.so

# ln -s/usr/lib/security/pam_mysql.so /lib/security/pam_mysql.so

2.建立一個必要的本地使用者雖說是虛拟使用者,不過,由于虛拟使用者的資訊存儲在MySQL資料庫中,是以還是需要一個能夠讀取MySQL資料庫的本地使用者.

# useradd -s/sbin/nologin virtual

# mysql -u root -p

Enter password:

mysql> CREATE DATABASEvsftpd;

Query OK, 1 row affected(0.02 sec)

mysql> USE vsftpd;

Database changed

3.建立用于存儲虛拟使用者資訊的表users

mysql> CREATE TABLEusers (username varchar(20) NOT NULL,password varchar(40) NOT NULL,PRIMARY KEY(username)) TYPE=MyISAM;

Query OK, 0 rows affected,1 warning (0.01 sec)

4.讓本地使用者virtual能讀取vsftpd資料庫的users表的内容

mysql> grant selecton vsftpd.users to virtual@localhost identified by '123456';

Query OK, 0 rowsaffected (0.00 sec)

mysql> flushprivileges;

5.建立虛拟使用者

mysql> insert intousers values ('vu1','123');

Query OK, 1 row affected(0.00 sec)

mysql> insert intousers values ('vu2','123');

mysql> insert intousers values ('vu3','123');

mysql> quit

Bye

6.配置vsftpd的PAM驗證

# vim/etc/pam.d/vsftpd_mysql

auth requiredpam_mysql.so user=virtual passwd=123456 host=localhost db=vsftpd table=usersusercolumn=username passwdcolumn=password crypt=0

account requiredpam_mysql.so user=virtual passwd=123456 host=localhost db=vsftpd table=usersusercolumn=username passwdcolumn=password crypt=0

7.配置ftp,/etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd_mysql#pam_service_name=vsftpd_mysql  要與/etc/pam.d/配置檔案的檔案名相同

guest_enable=YES               #guest_enable=YES 開啟虛拟使用者功能

guest_username=virtual            #guest_username=virtual 指定虛拟使用者使用的系統使用者

virtual_use_local_privs=YES       #virtual_use_local_privs 為虛拟使用者設定不同權限設定為 YES 時,虛拟使用者使用與本地用相同權限設定為 NO 時,虛拟使用者使用與匿名使用者相同權限

<a href="http://s3.51cto.com/wyfs02/M00/23/3F/wKioL1M1Ts3jMbGZAAC8GblGFYU164.jpg" target="_blank"></a>

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