vsftpd是一款在Linux發(fā)行版中最受推崇的FTP服務(wù)器程序。特點(diǎn)是小巧輕快,安全易用,下面直接上干貨。
一、安裝vsftp
以管理員的身份使用yum命令安裝vsftp:
[root@localhost ~]#yum install vsftpd
根據(jù)系統(tǒng)yum的不同,可能無(wú)法找到軟件包源,可以按照這里的方法解決
二、設(shè)置vsftp開(kāi)機(jī)自動(dòng)啟動(dòng)
1、查看開(kāi)機(jī)自動(dòng)啟動(dòng)服務(wù)項(xiàng)目
[root@localhost ~]# chkconfig --list
2、設(shè)置vsftpd服務(wù)開(kāi)機(jī)自動(dòng)啟動(dòng)
[root@localhost ~]# chkconfig --level 35 vsftpd on
三、配置環(huán)境
1、添加vsftp賬號(hào),指定賬號(hào)權(quán)限
■ 添加ftp賬號(hào)www,指定/home/www為www的宿主目錄,該賬戶(hù)號(hào)默認(rèn)不能登陸系統(tǒng)。
[root@localhost ~]# useradd -s /bin/nologin -d /home/www www #nologin的位置通常在/usr/sbin/nologin或/sbin/nologin位置,如果指定錯(cuò)誤則無(wú)法登陸。
■ 修改賬號(hào)密碼。
[root@localhost ~]# passwd www
■ 修改指定目錄權(quán)限。
[root@localhost ~]# chown -R www /home/www #-R參數(shù):遞歸設(shè)置/home/www目錄及期子目錄的所有者為用戶(hù)www。
2、配置vsftp
編輯vsftp的配置文件/etc/vsftpd/vsftpd.conf,修改配置文件相關(guān)配置項(xiàng),如下:
anonymous_enable=NO #不允許匿名登陸
ascii_upload_enable=YES #上傳時(shí)允許ASCII模式
ascii_download_enable=YES #下載時(shí)允許ASCII模式
local_enable=YES #允許本地用戶(hù)登錄ftp服務(wù)器,默認(rèn)是允許,不包含id為500以下用戶(hù)陸
write_enable=YES #允許用戶(hù)具有在ftp服務(wù)器文件中具有寫(xiě)的權(quán)限
chroot_local_user=YES ##是否將所有用戶(hù)鎖定在主目錄,YES為啟用 NO禁用
chroot_list_enable=YES #是否啟動(dòng)鎖定用戶(hù)的名單,YES為啟用 NO禁用
chroot_list_file=/etc/vsftpd/chroot_list #當(dāng)chroot_list_enable=YES時(shí),該項(xiàng)有效,禁用的列表名單格式為一行一個(gè)用戶(hù), 如果名單里面有一個(gè)test01的用戶(hù), 則test01用戶(hù)不會(huì)鎖定在主目錄,用戶(hù)將可以自由切換目錄。
舉例:
情況一:
現(xiàn)在有 test1 test2 test3 這三個(gè)ftp的用戶(hù),想讓1跟2用戶(hù)鎖定主目錄不允許切換到其他目錄, 但是允許3用戶(hù)自由切換那么/etc/vsftpd/chroot_list列表名單如下:
test3
也就說(shuō)chroot_local_user=YES,并且chroot_list_enable=YES的時(shí)候,/etc/vsftpd/chroot_list名單里面添加的是排除鎖定主目錄的用戶(hù)名單。
情況二:
如果chroot_local_user=NO并且chroot_list_enable=YES的時(shí)候,那么/etc/vsftpd/chroot_list列表名單如下:
test1
test2
情況三:
如果chroot_local_user=YES 并且 chroot_list_enable=NO 的時(shí)候那列表名單也就不生效了,因此滿(mǎn)足上面的條件時(shí),所有的FTP用戶(hù)將全部鎖定在主目錄。
ls_recurse_enable=YES #啟用遞歸
listen=YES #使用IPV4時(shí)設(shè)置為YES
listen_ipv6=NO #使用IPV6時(shí)設(shè)置為YES
local_root=/data/ftproot #指定根目錄,如果未指定,用戶(hù)的宿主目錄將作為FTP主目錄
use_localtime=YES # use localtime
seccomp_sandbox=NO #turn off for seccomp filter ( if you cannot login, add this line )
3、修改shells配置
編輯shell的配置文件/etc/shells,如果文件中沒(méi)有/sbin/nologin或者usr/sbin/nologin,在文件中追加該上即可。
4、配置防火墻
編輯/etc/sysconfig/iptables文件,在REJECT行之前添加如下命令:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #從上一行中進(jìn)行復(fù)制粘貼后修改端口號(hào)為21即可
添加后保存,然后重啟防火墻服務(wù)。
[root@localhost ~]# service iptables restart #其它命令:service iptables stop停止防止墻服務(wù)
六、啟動(dòng)vsftp并測(cè)試登陸
啟動(dòng)vsftp服務(wù)
[root@localhost ~]# service vsftpd start #其它命令:service vsftpd restart重啟FTP服務(wù)、service vsftpd stop停止FTP服務(wù)
服務(wù)成功啟動(dòng)后,用FTP客戶(hù)端登陸即可(推薦使用Xshell ),ftpadmin管理目錄是/www/web。
七、錯(cuò)誤處理
1、500 OOPS: cannot change directory:/home/www
該錯(cuò)誤原因是在CentOS系統(tǒng)下默認(rèn)安裝了SELinux,沒(méi)有開(kāi)啟FTP支持,所以訪問(wèn)時(shí)都被阻止了,需要手動(dòng)開(kāi)啟。
[root@localhost ~]# getsebool -a|grep ftp #查看所有ftp設(shè)置
[root@localhost ~]# setsebool ftp_home_dir 1 #setsebool -P ftp_home_dir 1 使用P參數(shù)實(shí)現(xiàn)重啟后ftp_home_dir自動(dòng)為1
聯(lián)系客服