當我們的用戶量越來越大時,繼續(xù)創(chuàng)建更多的系統(tǒng)用戶是不明智的,這時就需要為vsftpd創(chuàng)建虛擬賬戶,但vsftpd虛擬賬戶的數(shù)據(jù)庫要保存在Berkeley DB格式的數(shù)據(jù)文件中,所以需要安裝db4-utils工具來創(chuàng)建這樣的數(shù)據(jù)庫文件
(1)安裝vsftpd服務
yum install vsftpdservice vsftpd restartchkconfig vsftpd on
(2)創(chuàng)建虛擬用戶數(shù)據(jù)庫
首先需要創(chuàng)建明文文件,明文文件奇數(shù)行為用戶名,偶數(shù)行為密碼。使用db_load工具將其轉換為數(shù)據(jù)庫文件,db_load工具需要通過安裝db4—utils軟件獲得。最后通過修改文件權限以增強資料的安全性
yum -y install db4-utilsvi /etc/vsftpd/vlogin
在vlogin文件中寫入用戶名和密碼
tomcat123456jerry654321
生成虛擬數(shù)據(jù)庫
db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.dbchmod 600 /etc/vsftpd/{vlogin,vlogin.db}
(3)創(chuàng)建PAM文件,設置虛擬賬號驗證
linux一般通過PAM文件設置賬號的驗證機制,然后通過創(chuàng)建PAM文件,使用新的數(shù)據(jù)文件進行登錄驗證,PAM文件中的db選項于指定并驗證賬戶和密碼的數(shù)據(jù)庫文件
vi /etc/pam.d/vsftpd.pamauth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vloginaccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
(4)設置虛擬賬戶共享目錄
因為所有的虛擬賬戶需要映射到一個真實的系統(tǒng)賬戶,所以系統(tǒng)需要添加一個系統(tǒng)賬戶并設置家目錄
useradd -s /sbin/nologin -d /home/ftp virtual
(5)修改主配置文件
vi /etc/vsftpd/vsftpd.confanonymous_enable=NO #禁止匿名登錄,默認開啟local_enable=YES #啟動本機賬戶ftpwrite_enable=YES #允許寫操作anon_upload_enable=YES #允許匿名用戶上傳,默認禁止anon_mkdir_write_enable=NO #禁止匿名用戶創(chuàng)建目錄anon_other_write_enable=NO #禁止匿名用戶進行其他寫操作guest_enable=YES #開啟,則所用非匿名用戶登錄都指定到guest_username的指定賬號guest_username=virtual #設置來賓賬號,即我們剛剛創(chuàng)建的賬號listen_port=21pasv_enable=YES #啟動被動模式連接pasv_min_port=30000pasv_max_port=30999user_config_dir=/etc/vsftpd_user_confpam_service_name=vsftpd.pam #指定pam文件user_sub_token=$USER
(5)為每個用戶設置獨立的共享路徑
通過在主配置文件中使用user_config_dir選項,設置一個基于賬戶的配置目錄,在該目錄下可創(chuàng)建若干個與賬戶名稱相同的文件,并在文件中為此賬戶設置獨立的配置選項,包括權限與共享路徑等設置,本文僅以tomcat為列,如果你還需要對權限,限速,并發(fā)量等選項進行設置,可以參考匿名賬戶的設置賬戶的設置選項添加至賬戶獨立的配置文件中
mkdir /etc/vsftpd_user_confmkdir -p /home/ftp/tomcatvi /etc/vsftpd_user_conf/tomcatlocal_root=/home/ftp/$USER
(6)將21號端口寫進防火墻
vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #添加這一行
(7)重啟服務
service iptables restartservice vsftpd restart
常見問題
1、530 Login incorrect
pam驗證失敗,可能是因為你使用的64位操作系統(tǒng),而pam文件中庫文件的調用卻使用的是/lib/security/pam_userdb.so。或者是用戶名或密碼輸入錯誤,也有可能是vsftpd主配置文件中pam_service_name設置的pam文件名稱與/etc/pam.d中創(chuàng)建的pam文件不一致
2、500 oops:cannot change directory:/home/ftp/$USER
setsebool -P ftp_home_dir 1
3、上傳文件失敗
chmod 777 /home/ftp/tomcat
注:實習生做運維。這是為了以后不用到處找文章才寫的,不完善或錯誤請指出!!!!!!!!!!
新聞熱點
疑難解答
圖片精選