FTP文件传输工具(三)

一、FTP介绍

Linux上的ftp服务器有各种型号,我们会使用vsftpd。

二、FTP客户端安装

首先在自己电脑上安装好ftp客户端,下载地址:FlashFTP下载
下载完成后解压就可以使用了。

三、服务器安装与用户配置

1、安装

在服务器上安装FTP比较简单,我们只需使用XShell连接服务器后,执行

(1)安装

	yum install vsftpd -y

FTP文件传输工具(三)_第1张图片在最后看到Complete就表示安装成功了。

(2)启动

然后执行

systemctl start vsftpd.service
systemctl status vsftpd.service

这两行命令是启动ftp服务和查看ftp状态的。

(3)重启

关闭和启动

systemctl stop vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service

这几行命令表示重启ftp
到这里实际上我们已经可以使用FTP工具在自己电脑上传输文件到服务器上了,但这样并不安全,没有为FTP配置专门的用户,也没有限制匿名用户访问。

2、创建用户

在Linux中,不同用户是有不同目录访问权限的,所以首先创建一个目录,作为这个ftp用户所拥有的目录。

用户目录

mkdir -p /home/wwwroot/ftptest

创建用户

useradd -d /home/wwwroot/ftptest -g ftp -s /sbin/nologin ftptest

-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端。 这种不能登陆的用户又叫做虚拟用户
在这里插入图片描述

用户权限

chown -R ftptest /home/wwwroot/ftptest
chmod -R 775 /home/wwwroot/ftptest

把目录/home/wwwroot/ftptest的拥有者设置为ftptest,使ftptest用户拥有这个目录的读写权限。

设置密码

为ftptest用户设置密码

passwd ftptest

密码修改成功后会如图所示出现成功提示。
注: 密码使用 paw123###,后续连接ftp服务器的时候会用到

3、配置用户

创建好用户后,我们进行用户配置

(1)去掉匿名登录

默认情况下vsftpd服务器是允许匿名登陆的,这样非常不安全,所以要把这个选项关闭掉。
首先通过vi命令打开ftp服务器配置文件:

vi /etc/vsftpd/vsftpd.conf

然后把本来的

anonymous_enable=YES

修改为

anonymous_enable=NO

FTP文件传输工具(三)_第2张图片修改后先不要关闭

(2)限制用户访问

什么叫做限制用户访问呢? ftp用户 教程中创建的ftptest用户所拥有的目录是 /home/wwwroot/ftptest,如果不做限制,那么使用ftptest登陆之后可以切换到其他敏感目录去,比如切换到/usr目录去,这样就存在巨大的安全隐患。
为了规避这个隐患,需要限制ftptest用户只能通过ftp访问到 /home/wwwroot/ftptest 目录以及子目录。
配置办法:
首先通过vi命令打开ftp服务器配置文件:

vi /etc/vsftpd/vsftpd.conf

找到:

#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

并修改为:

chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

在这里插入图片描述
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制 下一个步骤用户清单就会对chroot_list 这个文件进行编辑

修改后先不要退出

(3)允许写权限

vsftpd服务器是这样的,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。
因此需要在vsftpd.conf最后面追加一行

allow_writeable_chroot=YES

FTP文件传输工具(三)_第3张图片
添加完成后先不要退出

(4)配置端口

在vsftpd.conf最后添加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010

这表示使用被动模式,用于传输数据的端口分配从30000-30010之间。

修改成功后esc-> :wq保存并退出

(5)用户鉴权

因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。搞死宝宝了
解决办法有如下两种:

方式一: pam.d/vsftpd 文件

vi /etc/pam.d/vsftpd

注释掉/etc/pam.d/vsftpd文件里这一行:
#auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.
FTP文件传输工具(三)_第4张图片

方式二:shells 文件

vi /etc/shells

在/etc/shells文件里面增加一行:

/sbin/nologin

在这里插入图片描述

然后就可以重启ftp了,重启命令

systemctl stop vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service

四、文件传输演示

这里我们使用下载安装好的FlashFTP进行文件传输演示

FTP文件传输工具(三)_第5张图片左边边框点击切换本地,表示本地文件
FTP文件传输工具(三)_第6张图片右边点击快速连接,然后输入自己的服务器的公网ip地址,然后输入用户名和密码,我们在上面设置的是ftptest和paw123###
然后点击连接就可以进行文件传输了。
在左边也就是本地浏览器找到自己要发送的文件,比如tomcat压缩包,拖到右边,等待传输完成。如果用户的目录配置是按照我们上面的步骤来的,那传送到的位置就在服务器的 /home/wwwroot/ftptest目录下

FTP文件传输工具(三)_第7张图片

你可能感兴趣的:(阿里云服务器搭建与环境搭建,centos,ftp,linux,ssh)