環(huán)境
- Centos 7 x64
- 25G SSD
- 1024MB 內(nèi)存
- vsftpd 3.*
先更新下
[root@vultr ~]# yum update -y
然后使用yum安裝
[root@vultr ~]# yum install vsftpd -y
安裝完成以后編輯配置文件,在編輯前我們先備份在目錄 /etc/vsftpd/下的配置文件
[root@vultr ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
編輯
[root@vultr ~]# vim /etc/vsftpd/vsftpd.conf
配置文件配置請(qǐng)跟隨以下配置:
#不允許匿名用戶(hù)登陸
anonymous_enable=NO
#允許本地用戶(hù)登陸
local_enable=YES
#允許用戶(hù)往目錄寫(xiě)入文件
write_enable=YES
#默認(rèn)會(huì)被注釋需要需要去掉行前的#解除注釋
#如果你希望用戶(hù)在自己目錄下而不是可以隨意進(jìn)入其他目錄比如/ #,/etc等目錄的話(huà),請(qǐng)保留這個(gè)為YES刁愿。
#如果你希望用戶(hù)可以隨意進(jìn)入其他目錄的話(huà)就注釋掉這句話(huà)
chroot_local_user=YES
在文件最后加入以下內(nèi)容
#settings
allow_writeable_chroot=YES
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
保存并且退出文件
如果你希望可以使用root登陸vsftpd的話(huà),在/etc/vsftpd/ftpusers 和/etc/vsftpd/user_list 文件內(nèi)把root去掉
然后保存退出
但是我不建議這樣做,因?yàn)榭赡軙?huì)導(dǎo)致vsftpd無(wú)法啟動(dòng)
最后可以啟動(dòng)你的vsftpd了,再啟動(dòng)之前我們先檢查下配置文件:
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
有錯(cuò)誤的話(huà)會(huì)返回錯(cuò)誤信息
啟動(dòng)
oot@vultr ~]# systemctl start vsftpd
然后創(chuàng)建開(kāi)機(jī)自啟
[root@vultr ~]# systemctl enable vsftpd
如果你想加入組的話(huà)使用以下命令創(chuàng)建組
[root@vultr ~]# groupadd ftpusersonlygroup
然后創(chuàng)建一個(gè)新的用戶(hù)
[root@vultr ~]# useradd -m ftpuser -s /sbin/nologin -g ftpusersonlygroup
- -m 會(huì)自動(dòng)的為ftpuser在/home目錄下創(chuàng)建文件夾前域,如果你想指定文件路徑的話(huà)使用:
-d /home/newuserfolder
就可以指定了- /sbin/nologin 會(huì)禁止使用SSH登陸只允許FTP登陸烤蜕,如果強(qiáng)行使用SSH登陸的話(huà)將會(huì)返回拒絕信息“This account is currently not available”你可以自定義返回的信息封孙,在 /etc/nologin.txt
然后更改密碼
[root@vultr ~]# passwd ftpuser
然后創(chuàng)建ftpuser的根目錄
[root@vultr ~]# mkdir /home/ftpuser/root
最后我們?cè)O(shè)置權(quán)限
[root@vultr ~]# chown root:root /home/ftpuser
[root@vultr ~]# chmod 755 /home
[root@vultr ~]# chmod 755 /home/ftpuser
[root@vultr ~]# chown ftpuser:ftpusersonlygroup /home/ftpuser/*
[root@vultr ~]# chmod 775 -R /home/ftpuser/*
ftpuser的所有者必須是root這樣chroot才能正常工作.
[root@vultr ~]# chmod -R ugo+rw /home/ftpuser
最后配置防火墻開(kāi)通端口
[root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=21/tcp
[root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=20/tcp
[root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=22/tcp
[root@vultr ~]# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp
[root@vultr ~]# firewall-cmd --reload
如果你正在使用SELinux,為了確保不會(huì)出問(wèn)題把你得ftp主目錄加入白名單
[root@vultr ~]# setsebool -P home/joe on
以上就可以正常登陸ftp了讽营,如果你登陸出現(xiàn)錯(cuò)誤:
SFTP Connection Error Received unexpected end-of-file from SFTP server
請(qǐng)先檢查/etc/ssh/sshd_config 配置文件下
# Subsystem sftp /usr/lib/openssh/sftp-server
是不是被注釋了虎忌,如果是的話(huà)去掉#解除注釋?zhuān)缓蟾臑?br>Subsystem sftp internal-sftp
以下為可選內(nèi)容,如果不想開(kāi)啟SFTP請(qǐng)?zhí)^(guò)這里拉到最后
如果你想允許SFTP(secure ftp)的話(huà)斑匪,請(qǐng)按照以下步驟呐籽,他會(huì)把通信加密,端口是22蚀瘸,會(huì)更安全
首先安裝SSH server
[root@vultr ~]# yum -y install openssh-server
打開(kāi) /etc/ssh/sshd_config文件然后把注釋去掉
#subsystem sftp /usr/libexec/openssh/sftp-server
在vim下可以按下
/
然后輸入想搜索的字符按回車(chē) 搜索下一個(gè)直接按n
然后增加以下內(nèi)容:
Subsystem sftp internal-sftp
Match group ftpusersonlygroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
然后重啟SSHD
[root@vultr ~]# systemctl restart sshd
最后附上一些別人總結(jié)的常見(jiàn)問(wèn)題以及解決方案