一、基本安裝
1.安裝服務
yum -y install vsftpd //centos Redhat
apt-get install vsftpd //debian ubuntu
2.開啟服務?
service vsftpd status //查看狀態,默認是關閉的
service vsftpd start
3.開機隨操作系統啟動
chkconfig vsftpd on
4.添加賬號
useradd -d /data/www/wwwroot -s /sbin/nologin vsftp
passwd vsftp //設置密碼
chown -R vsftp.vsftp /data/www/wwwroot //設置指向目錄
其中,/demo指的是指向目錄,vsftp是要添加的用戶名,也可以使用usermod設置已有用戶。
?
二、基本設置
1.打開配置文件
vi /etc/vsftpd/vsftpd.conf
2.參照如下設置
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO //禁止匿名訪問
local_enable=YES
write_enable=YES
3.修改shell配置
vi /etc/shells //如果該文件里沒有/usr/sbin/nologin或者/sbin/nologin(具體看當前系統配置)則追加進去
4.重啟服務
service vsftpd start //修改配置之后要重啟服務
三、vsftp無法連接
service iptables stop //關閉防火墻
或者修改配置文件
vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_ftp"
并添加規則
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
service iptables restart
?
四、限制用戶不能訪問上級目錄
修改vsftp的配置文件vsftpd.conf
vi etc/vsftpd/vsftpd.conf
修改下面的配置:
chroot_local_user=YES
chroot_list_enable=YES //這行可以沒有, 也可以有
chroot_list_file=/etc/vsftpd/chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用戶都是不受限止的用戶,即可以瀏覽其主目錄的上級目錄。
如果不希望指定的用戶瀏覽其主目錄上級目錄中的內容,可以如下設置,然后在文件vsftpd/chroot_list中去掉或不添加該用戶即可。
chroot_local_user=NO
chroot_list_enable=YES //這行必須要有, 否則文件vsftpd/chroot_list不會起作用
chroot_list_file=/etc/vsftpd/chroot_list
五、無法上傳文件、創建文件/文件夾,或無法看到子目錄
這是由于selinux的機制,可以執行如下命令查看
getsebool -a|grep ftp
使用如下命令重置權限
setsebool allow_ftpd_full_access=1
六、用戶無法驗證問題
當我們限定了用戶不能跳出其主目錄之后,使用該用戶登錄FTP時往往會遇到這個錯誤。從2.3.5之后,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了!如果檢查發現還有寫權限,就會報該錯誤。
方法1:修改配置文件vi /etc/vsftpd/vsftpd.conf,添加allow_writeable_chroot=YES
方法2:用命令chmod a-w /home/user去除用戶主目錄的寫權限
sudo chown -R root:root /home/ftp
cd /home/ftp
sudo mkdir FTPFILES
sudo chown -R vsftpuser:vsftpuser FTPFILES