一:安裝vsftpd
查看是否已經(jīng)安裝vsftpd
rpm -qa | grep vsftpd
如果沒有,就安裝,并設(shè)置開機(jī)啟動(dòng)
yum -y install vsftpd
chkconfig vsftpd on
二:基于虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實(shí)的帳戶,只是通過映射到真實(shí)帳戶和設(shè)置權(quán)限的目的。虛擬用戶不能登錄CentOS系統(tǒng)。
修改配置文件
打開/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //設(shè)定不允許匿名訪問
local_enable=YES //設(shè)定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項(xiàng)目設(shè)定為NO的情況下所有虛擬用戶將無法訪問
chroot_list_enable=YES //使用戶不能離開主目錄
ascii_upload_enable=YES
ascii_download_enable=YES //設(shè)定支持ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認(rèn)證文件名。PAM將根據(jù)/etc/pam.d/vsftpd進(jìn)行認(rèn)證
以下這些是關(guān)于vsftpd虛擬用戶支持的重要配置項(xiàng),默認(rèn)vsftpd.conf中不包含這些設(shè)定項(xiàng)目,需要自己手動(dòng)添加
guest_enable=YES //設(shè)定啟用虛擬用戶功能
guest_username=ftp //指定虛擬用戶的宿主用戶,CentOS中已經(jīng)有內(nèi)置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf //設(shè)定虛擬用戶個(gè)人vsftp的CentOS FTP服務(wù)文件存放路徑。存放虛擬用戶個(gè)性的CentOS FTP服務(wù)文件(配置文件名=虛擬用戶名
進(jìn)行認(rèn)證
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個(gè)包。
yum install db4 db4-utils
然后,創(chuàng)建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
test
123456
接著,生成虛擬用戶認(rèn)證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨后,編輯認(rèn)證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,創(chuàng)建虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test //文件名等于vuser_passwd.txt里面的賬戶名,否則下面設(shè)置無效
內(nèi)容如下
local_root=/ftp/www //虛擬用戶根目錄,根據(jù)實(shí)際情況修改
write_enable=YES //可寫
anon_umask=022 //掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
設(shè)置Selinux
setsebool -P ftp_home_dir=1 //設(shè)置ftp可以使用home目錄
sersebool -P allow_ftpd_full_access=1 //設(shè)置ftp用戶可以有所有權(quán)限
設(shè)置FTP根目錄權(quán)限
mkdir /ftp/www //創(chuàng)建目錄
chmod R 755 /ftp
chmod R 777 /ftp/www
最新的vsftpd要求對(duì)主目錄不能有寫的權(quán)限所以ftp為755,主目錄下面的子目錄再設(shè)置777權(quán)限
設(shè)置防火墻
打開/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT
然后保存,并關(guān)閉該文件,在終端內(nèi)運(yùn)行下面的命令,刷新防火墻配置:
service iptables restart
OK,運(yùn)行“service vsftpd start”,你就可以訪問你的FTP服務(wù)器了。
配置PASV模式
vsftpd默認(rèn)沒有開啟PASV模式,現(xiàn)在FTP只能通過PORT模式連接,要開啟PASV默認(rèn)需要通過下面的配置
打開/etc/vsftpd/vsftpd.conf,在末尾添加
pasv_enable=YES //開啟PASV模式
pasv_min_port=40000 //最小端口號(hào)
pasv_max_port=40080 //最大端口號(hào)
pasv_promiscuous=YES
在防火墻配置內(nèi)開啟40000到40080端口
-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT
重啟iptabls和vsftpd
service iptables restart
service vsftpd restart
現(xiàn)在可以使用PASV模式連接你的FTP服務(wù)器了~