本文环境:CentOs 7.2 Vsftpd 3.0.3

最近一个接的一个小网站需要提供给维护人员上传和下载部分文件的功能,于是开始用到了Ftp

首先先安装Vsftpd,至于为什么是Vsftpd,查了一下发现网上大多数人是看重其安全性。

第一步安装Vsftpd:

# yum install vsftpd

接下来我们要查看vsftpd安装到哪个目录

# whereis vsftpd 
//vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

ok,系统告诉我们在/etc/vsftpd下面,所以进入

# cd /etc/vsftpd

进入会发现一个叫vsftpd.conf的配置文件
vi vsftpd.conf

这个时候我们会发现一大堆的配置文件,这个时候我们其实可以启动ftp服务器了

# systemctl start vsftpd.service

如果 Firewall 防火墙开放端口并且安全组开放端口的话,已经可以通过第三方工具,比如FileZilla匿名登录了,只需要输入ip 比如 47.104.25.13

clipboard.png

传输模式改为主动之后就连接上了,匿名登录到的默认目录是/var/ftp 文件夹下

但是这种匿名登录存在缺陷,如果别人知道你的服务器的ip的话也可以直接进入你项目下为所欲为了,于是我们需要避免这种缺陷,修改配置文件

# vi vsftpd.conf //修改以下配置

anonymous_enable=NO //不允许匿名连接

allow_writeable_chroot=YES //允许修改root目录

chroot_local_user=YES //不允许用户访问上级目录

ok,加完这些保存之后,重新启动

# systemctl restart vsftpd.service

ok,这个时候我们需要给ftp新加用户,并且给用户赋予某些文件夹的权限

# mkdir /data/www //创建一个目录

# cd /data/www //进入到目录下

# chmod -R 755 /data/www //给这个目录赋予rwxr-xr-x 的权限,具体755是什么权限可以去这个链接下看http://blog.csdn.net/u014316462/article/details/52241685

接下来我们要创建一个用户

# useradd -d /data/www -s /sbin/nologin ftpUser
// -s:禁止此用户登录SSH的权限 /sbin/nologin:不允许此用户登录系统,但可以登录FTP

改变/data/www的所有者原本是root 并且创建用户ftpUser,但是这个用户不能使用SSH的权限也就是不能登录centOs系统,只能用于ftp登录

ok大功告成,这个时候我们再一次重启ftp服务器

# systemctl restart vsftpd.service

这个时候我们再试一下匿名登录

clipboard.png

出现了530错误,因为我们禁止了用户的匿名登录
这个时候我们再用本地用户登录

clipboard.png

是不是成功登录上去了。如果需要增加更多功能可以专研一下vsftpd.conf的配置文件。


ZARR
64 声望9 粉丝

想成为全栈的小前端