當我們的用戶量越來越大時,繼續創建更多的系統用戶是不明智的,這時就需要為vsftpd創建虛擬賬戶,但vsftpd虛擬賬戶的數據庫要保存在Berkeley DB格式的數據文件中,所以需要安裝db4-utils工具來創建這樣的數據庫文件
(1)安裝vsftpd服務
yum install vsftpdservice vsftpd restartchkconfig vsftpd on
(2)創建虛擬用戶數據庫
首先需要創建明文文件,明文文件奇數行為用戶名,偶數行為密碼。使用db_load工具將其轉換為數據庫文件,db_load工具需要通過安裝db4—utils軟件獲得。最后通過修改文件權限以增強資料的安全性
yum -y install db4-utilsvi /etc/vsftpd/vlogin
在vlogin文件中寫入用戶名和密碼
tomcat123456jerry654321
生成虛擬數據庫
db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.dbchmod 600 /etc/vsftpd/{vlogin,vlogin.db}
(3)創建PAM文件,設置虛擬賬號驗證
linux一般通過PAM文件設置賬號的驗證機制,然后通過創建PAM文件,使用新的數據文件進行登錄驗證,PAM文件中的db選項于指定并驗證賬戶和密碼的數據庫文件
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)設置虛擬賬戶共享目錄
因為所有的虛擬賬戶需要映射到一個真實的系統賬戶,所以系統需要添加一個系統賬戶并設置家目錄
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 #禁止匿名用戶創建目錄anon_other_write_enable=NO #禁止匿名用戶進行其他寫操作guest_enable=YES #開啟,則所用非匿名用戶登錄都指定到guest_username的指定賬號guest_username=virtual #設置來賓賬號,即我們剛剛創建的賬號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選項,設置一個基于賬戶的配置目錄,在該目錄下可創建若干個與賬戶名稱相同的文件,并在文件中為此賬戶設置獨立的配置選項,包括權限與共享路徑等設置,本文僅以tomcat為列,如果你還需要對權限,限速,并發量等選項進行設置,可以參考匿名賬戶的設置賬戶的設置選項添加至賬戶獨立的配置文件中
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位操作系統,而pam文件中庫文件的調用卻使用的是/lib/security/pam_userdb.so?;蛘呤怯脩裘蛎艽a輸入錯誤,也有可能是vsftpd主配置文件中pam_service_name設置的pam文件名稱與/etc/pam.d中創建的pam文件不一致
2、500 oops:cannot change directory:/home/ftp/$USER
setsebool -P ftp_home_dir 1
3、上傳文件失敗
chmod 777 /home/ftp/tomcat
注:實習生做運維。這是為了以后不用到處找文章才寫的,不完善或錯誤請指出?。。。。。。。。?!
新聞熱點
疑難解答