Centos7下安装vsftpd 3.0

环境
  • Centos 7 x64
  • 25G SSD
  • 1024MB 内存
  • 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

配置文件配置请跟随以下配置:

#不允许匿名用户登陆
anonymous_enable=NO
#允许本地用户登陆
local_enable=YES
#允许用户往目录写入文件
write_enable=YES
#默认会被注释需要需要去掉行前的#解除注释
#如果你希望用户在自己目录下而不是可以随意进入其他目录比如/ #,/etc等目录的话,请保留这个为YES。
#如果你希望用户可以随意进入其他目录的话就注释掉这句话
chroot_local_user=YES

在文件最后加入以下内容
#settings
allow_writeable_chroot=YES
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100

保存并且退出文件

如果你希望可以使用root登陆vsftpd的话,在/etc/vsftpd/ftpusers 和/etc/vsftpd/user_list 文件内把root去掉

然后保存退出

但是我不建议这样做,因为可能会导致vsftpd无法启动

最后可以启动你的vsftpd了,再启动之前我们先检查下配置文件:
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
有错误的话会返回错误信息

启动
oot@vultr ~]# systemctl start vsftpd

然后创建开机自启
[root@vultr ~]# systemctl enable vsftpd

如果你想加入组的话使用以下命令创建组
[root@vultr ~]# groupadd ftpusersonlygroup

然后创建一个新的用户
[root@vultr ~]# useradd -m ftpuser -s /sbin/nologin -g ftpusersonlygroup

  • -m 会自动的为ftpuser在/home目录下创建文件夹,如果你想指定文件路径的话使用:-d /home/newuserfolder 就可以指定了
  • /sbin/nologin 会禁止使用SSH登陆只允许FTP登陆,如果强行使用SSH登陆的话将会返回拒绝信息“This account is currently not available”你可以自定义返回的信息,在 /etc/nologin.txt

然后更改密码
[root@vultr ~]# passwd ftpuser

然后创建ftpuser的根目录
[root@vultr ~]# mkdir /home/ftpuser/root

最后我们设置权限

[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

最后配置防火墙开通端口

[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,为了确保不会出问题把你得ftp主目录加入白名单
[root@vultr ~]# setsebool -P home/joe on

以上就可以正常登陆ftp了,如果你登陆出现错误:
SFTP Connection Error Received unexpected end-of-file from SFTP server

请先检查/etc/ssh/sshd_config 配置文件下
# Subsystem sftp /usr/lib/openssh/sftp-server
是不是被注释了,如果是的话去掉#解除注释,然后更改为
Subsystem sftp internal-sftp

Reference


以下为可选内容,如果不想开启SFTP请跳过这里拉到最后
如果你想允许SFTP(secure ftp)的话,请按照以下步骤,他会把通信加密,端口是22,会更安全

首先安装SSH server
[root@vultr ~]# yum -y install openssh-server

打开 /etc/ssh/sshd_config文件然后把注释去掉

#subsystem sftp /usr/libexec/openssh/sftp-server

在vim下可以按下/然后输入想搜索的字符按回车 搜索下一个直接按 n

然后增加以下内容:

Subsystem sftp internal-sftp
Match group ftpusersonlygroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

然后重启SSHD
[root@vultr ~]# systemctl restart sshd


最后附上一些别人总结的常见问题以及解决方案

vsftpDaemon搭建问题手册

你可能感兴趣的:(Centos7下安装vsftpd 3.0)