vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特色是小巧輕快,安全易用,下面直接上乾貨。html
1、安裝vsftpweb
以管理員的身份使用yum命令安裝vsftp:shell
[root@localhost ~]#yum install vsftpd安全
根據系統yum的不一樣,可能沒法找到軟件包源,能夠按照這裏的方法解決服務器
2、設置vsftp開機自動啓動tcp
一、查看開機自動啓動服務項目測試
[root@localhost ~]# chkconfig --listthis
二、設置vsftpd服務開機自動啓動spa
[root@localhost ~]# chkconfig --level 35 vsftpd on.net
3、配置環境
一、添加vsftp帳號,指定帳號權限
■ 添加ftp帳號www,指定/home/www爲www的宿主目錄,該帳戶號默認不能登錄系統。
[root@localhost ~]# useradd -s /bin/nologin -d /home/www www #nologin的位置一般在/usr/sbin/nologin或/sbin/nologin位置,若是指定錯誤則沒法登錄。
■ 修改帳號密碼。
[root@localhost ~]# passwd www
■ 修改指定目錄權限。
[root@localhost ~]# chown -R www /home/www #-R參數:遞歸設置/home/www目錄及期子目錄的全部者爲用戶www。
二、配置vsftp
編輯vsftp的配置文件/etc/vsftpd/vsftpd.conf,修改配置文件相關配置項,以下:
anonymous_enable=NO #不容許匿名登錄
ascii_upload_enable=YES #上傳時容許ASCII模式
ascii_download_enable=YES #下載時容許ASCII模式
local_enable=YES #容許本地用戶登陸ftp服務器,默認是容許,不包含id爲500如下用戶陸
write_enable=YES #容許用戶具備在ftp服務器文件中具備寫的權限
chroot_local_user=YES ##是否將全部用戶鎖定在主目錄,YES爲啓用 NO禁用
chroot_list_enable=YES #是否啓動鎖定用戶的名單,YES爲啓用 NO禁用
chroot_list_file=/etc/vsftpd/chroot_list #當chroot_list_enable=YES時,該項有效,禁用的列表名單格式爲一行一個用戶, 若是名單裏面有一個test01的用戶, 則test01用戶不會鎖定在主目錄,用戶將能夠自由切換目錄。
舉例:
狀況一:
如今有 test1 test2 test3 這三個ftp的用戶,想讓1跟2用戶鎖定主目錄不容許切換到其餘目錄, 可是容許3用戶自由切換那麼/etc/vsftpd/chroot_list列表名單以下:
test3
也就說chroot_local_user=YES,而且chroot_list_enable=YES的時候,/etc/vsftpd/chroot_list名單裏面添加的是排除鎖定主目錄的用戶名單。
狀況二:
若是chroot_local_user=NO而且chroot_list_enable=YES的時候,那麼/etc/vsftpd/chroot_list列表名單以下:
test1
test2
狀況三:
若是chroot_local_user=YES 而且 chroot_list_enable=NO 的時候那列表名單也就不生效了,所以知足上面的條件時,全部的FTP用戶將所有鎖定在主目錄。
ls_recurse_enable=YES #啓用遞歸
listen=YES #使用IPV4時設置爲YES
listen_ipv6=NO #使用IPV6時設置爲YES
local_root=/data/ftproot #指定根目錄,若是未指定,用戶的宿主目錄將做爲FTP主目錄
use_localtime=YES # use localtime
seccomp_sandbox=NO #turn off for seccomp filter ( if you cannot login, add this line )
三、修改shells配置
編輯shell的配置文件/etc/shells,若是文件中沒有/sbin/nologin或者usr/sbin/nologin,在文件中追加該上便可。
四、配置防火牆
編輯/etc/sysconfig/iptables文件,在REJECT行以前添加以下命令:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #從上一行中進行復制粘貼後修改端口號爲21便可
添加後保存,而後重啓防火牆服務。
[root@localhost ~]# service iptables restart #其它命令:service iptables stop中止防止牆服務
6、啓動vsftp並測試登錄
啓動vsftp服務
[root@localhost ~]# service vsftpd start #其它命令:service vsftpd restart重啓FTP服務、service vsftpd stop中止FTP服務
服務成功啓動後,用FTP客戶端登錄便可(推薦使用Xshell ),ftpadmin管理目錄是/www/web。
7、錯誤處理
一、500 OOPS: cannot change directory:/home/www
該錯誤緣由是在CentOS系統下默認安裝了SELinux,沒有開啓FTP支持,因此訪問時都被阻止了,須要手動開啓。
[root@localhost ~]# getsebool -a|grep ftp #查看全部ftp設置
[root@localhost ~]# setsebool ftp_home_dir 1 #setsebool -P ftp_home_dir 1 使用P參數實現重啓後ftp_home_dir自動爲1