標籤:vsftp pam_mysql
一、安裝所需要程式
事先安裝好開發環境和mysql資料庫
#yum -y install mysql-server mysql-devel
#yum -y install groupinstall "Development Tools" "Development Libraries"
安裝pam_mysql-0.7RC1
#tar zxvf pam_mysql-0.7RC1.tar.gz
#cd pam_mysql-0.7RC1
#./configure --with-mysql=/usr --with-openssl
#make
#make install
安裝vsftp
#yum -y install vsftpd
二、建立虛擬使用者帳號
準備資料庫及相關表
首先,確保mysql服務已經正常啟動。而後,按需要建儲存虛擬使用者的資料庫即可,這裡將其建立為vsftpd資料庫
mysql>create databases vsftpd;
mysql>grant select on vsftpd.* to [email protected] identified by ‘密碼‘;
mysql>grant select on vsftpd.* to [email protected] identified by ‘密碼‘;
mysql>flush privileges;
mysql>use vsftpd;
mysql>create table users(id int AUTO_INCREMENT NOT NULL,
->name char(20) binary NOT NULL,
->password char(48) binary NOT NULL,
->primary key(id));
2.添加測試的虛擬使用者
根據需要添加所需要的使用者,需要說明的是,這裡將密碼採用明文格式儲存,原因是pam_mysql的password()函數與Mysql的password()函數可能會有所不同。
mysql>insert into users(name,password) values(‘tom‘,‘passwd1‘);
mysql>insert into users(name,password) values(‘jerry‘,‘passwd2‘);
三、配置vsftpd
1.建立pam認證所需檔案
#vi /etc/pam.d/vsftpd.mysql
添加如下兩行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=密碼 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
account required /lib/security/pam_mysql.so user=vsftpd passwd=密碼 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
2.修改vsftpd的設定檔,使其適應mysql認證
建立虛擬使用者映射的系統使用者及對應的目錄
#useradd -s /sbin/nologin -d /var/ftproot vuser
#chmod go+rx /var/ftproot
請確保/etc/vsftpd.conf中已經啟用了以下選項
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
而後添加以下選項
guest_enable=YES
guest_username=vuser
並確保pam_service_name選項的值如下所示
pam_service_name=vsftpd.mysql
四、啟動vsftpd服務
# service vsftpd start
# chkconfig vsftpd on
查看連接埠開啟情況
# netstat -tnlp |grep :21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 23286/vsftpd
使用虛擬使用者登入,驗正配置結果,以下為原生命令方式測試,你也可以在其它Win Box上用IE或者FTP用戶端工具登入驗正
# ftp localhost
五、配置虛擬使用者具有不同的存取權限
vsftpd可以在設定檔目錄中為每個使用者提供單獨的設定檔以定義其ftp服務存取權限,每個虛擬使用者的設定檔名同虛擬使用者的使用者名稱。設定檔目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。
1、配置vsftpd為虛擬使用者使用設定檔目錄
# vim vsftpd.conf
添加如下選項
user_config_dir=/etc/vsftpd/vusers_dir
2、建立所需要目錄,並為虛擬使用者提供設定檔
# mkdir /etc/vsftpd/vusers_dir/
# cd /etc/vsftpd/vusers_dir/
# touch tom jerry
3、配置虛擬使用者的存取權限
虛擬使用者對vsftpd服務的存取權限是通過匿名使用者的相關指令進行的。比如,如果需要讓tom使用者具有上傳檔案的許可權,可以修改/etc/vsftpd/vusers/tom檔案,在裡面添加如下選項即可。
anon_upload_enable=YES
vsftp pam mysql