1、基本安裝linux
1.安裝服務shell
yum -y install vsftpd //centos Redhat
apt-get install vsftpd //debian ubuntu
2.開啓服務 ubuntu
service vsftpd status //查看狀態,默認是關閉的
service vsftpd start
3.開機隨操做系統啓動centos
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設置已有用戶。tcp
2、基本設置spa
1.打開配置文件操作系統
vi /etc/vsftpd/vsftpd.conf
2.參照以下設置rest
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO //禁止匿名訪問
local_enable=YES
write_enable=YES
3.修改shell配置code
vi /etc/shells //若是該文件裏沒有/usr/sbin/nologin或者/sbin/nologin(具體看當前系統配置)則追加進去
4.重啓服務
service vsftpd start //修改配置以後要重啓服務
3、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
4、限制用戶不能訪問上級目錄
修改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
5、沒法上傳文件、建立文件/文件夾,或沒法看到子目錄
這是因爲selinux的機制,能夠執行以下命令查看
getsebool -a|grep ftp
使用以下命令重置權限
setsebool allow_ftpd_full_access=1
6、用戶沒法驗證問題
當咱們限定了用戶不能跳出其主目錄以後,使用該用戶登陸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