1、安裝vsftpd及賬戶認證軟體
yum -y install vsftpd db4 db4-utils
2、啟動/重啟/停止 vsftpd 伺服器
service vsftpd start|stop|restart
設定檔為: /etc/vsftpd/vsftpd.conf
FTP伺服器預設根目錄:/var/ftp/pub
3、添加FTP虛擬使用者
FTP虛擬使用者,只能通過HOST、帳號、密碼訪問伺服器對應的目錄空間,不能登入系統。
建立一個FTP使用者的命令如下:
adduser -d /home/www -g ftp -s /sbin/nologin wwwftp
含義:使用shell命令adduser添加一個wwwftp的系統賬戶,但是,不能登入系統(-s /sbin/nologin),該賬戶的主目錄在(-d /opt/ftp_dir/wwwftp),屬於ftp這個使用者組(-g ftp)。
設定密碼:
echo 123456789Q | passwd --stdin wwwftp
4、配置vsftpd設定檔(/etc/vsftpd/vsftpd.conf)。
要非常需要注意的是,值後面不允許有空格,如chroot_list_enable=YES,“YES”之後不允許有空格,否則啟動vsftpd會報錯(“ vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable”)。
#不允許匿名訪問
anonymous_enable=NO
#設定本機使用者可以訪問。註:如使用虛擬宿主使用者,在該項目設定為NO的情況下所有虛擬使用者將無法訪問。
local_enable=YES
#使使用者不能離開主目錄
chroot_list_enable=YES
#設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。需要手動建立。
xferlog_file=/var/log/vsftpd.log
#設定支援ASCII模式的上傳和下載功能。
ascii_upload_enable=YES
ascii_download_enable=YES
#PAM認證檔案名稱。PAM將根據/etc/pam.d/vsftpd進行認證
pam_service_name=vsftpd
#將這個配置前面的#號去掉。
chroot_list_file
#需要自己再手動添加CentOS FTP服務配置。
#設定啟用虛擬使用者功能。
guest_enable=YES
#指定虛擬使用者的宿主使用者。-CentOS中已經有內建的ftp使用者了
guest_username=ftp
#防止vsftpd上傳檔案許可權變為600
virtual_use_local_privs=YES
#設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(設定檔名=虛擬使用者名稱)
user_config_dir=/etc/vsftpd/vuser_conf
5.建立chroot list,將FTP使用者加入其中:
touch /etc/vsftpd/chroot_list
一行一個使用者:
echo wwwftp >> /etc/vsftpd/chroot_list
6、賬戶認證
建立使用者密碼文本:
vim /etc/vsftpd/vuser_passwd.txt
奇行是使用者名稱,偶行是密碼:
wwwftp
123456789G
產生虛擬使用者認證的db檔案,執行如下命令:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯 vsftpd 認證檔案:/etc/pam.d/vsftpd,用#號中所有代碼注釋掉。
32位系統的新增內容如下:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
64位的系統新增內容如下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
6、配置每個FTP使用者的設定檔
將所有與使用者FTP設定檔放到如下目錄下,所以,我們要建立它:
mkdir /etc/vsftpd/vuser_conf/
然後,在此目錄中為每個FTP使用者建立一個設定檔,以我們建立和wwwftp賬戶為例:
vim /etc/vsftpd/vuser_conf/wwwftp
在檔案中配置如下內容:
local_root=/opt/ftp_dir/wwwftp
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
7、重啟即可