基于CentOS搭建 FTP 文件服务

一、FTP服务介绍

vsftp(very security ftp file transfer protocol 非常文件传输协议)

FTP分为主动模式和被动模式。

主动模式:(不安全,传数据的端口是固定的20号,容易被截取)

客户端的21号端口发送连接请求信号

服务端使用20号端口主动和客户端连接,服务端使用20号端口发送的数据,客户端通过>1024的随机端口接收。

被动模式:(安全,传数据的端口是>1024的随机端口,不易被截取)

客户端向服务端的21号端口发送连接请求信号

服使用>1024随机端口主动和客户端连接,服务端使用>1024的随机端口发送的数据,客户端通过>1024+1的随机端口接收。

ftp 登录服务器的这一瞬间的流程:

扫描二维码关注公众号,回复: 8291159 查看本文章
1、-------------tcp connection ------------->
首先,客户端向服务端发送建立连接的请求

2、<-------------220  ready ----------------
服务端反馈220的代码,表明21号端口处于正常侦听状态

3、-------------USER --------------------->
客户端向服务端发送一个用户名

4、<-------------331 authentication-----------
服务端反馈331代码,要求客户端输入验证密码

5、-------------PASSWD------------------->
客户端向服务端发送密码

6、<-------------230 login-------------------
服务端反馈230代码,如果验证通过允许客登录

7、-------------pwd ----------------------->
客户端向服务端发送一条指令,例如pwd显示当前路径

8、<-------------257 work path --------------
服务端反馈代码,显示当前工作路径,每个指令的反馈代码都不同
View Code

二、安装并启动服务

[root@ftp ~]# yum install vsftpd -y

[root@ftp ~]# systemctl start vsftpd
[root@ftp ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

验证端口(默认21)
[root@ftp ~]# netstat -lntup |grep 21
tcp6 0 0 :::21 :::* LISTEN 2605/vsftpd

此时,访问 ftp://你的服务器IP地址, 可浏览机器上的 /var/ftp 目录了。

 三.配置 FTP 权限

目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限。
了解 VSFTP 配置
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
vsftpd.conf 为主要配置文件
ftpusers 配置禁止访问 FTP 服务器的用户列表
user_list 配置用户访问控制
阅读上述配置可以让你了解更多信息。我们了解这些信息之后,就可以开始下一步修改配置来设置权限。
阻止匿名访问和切换根目录,匿名访问和切换根目录都会给服务器带来安全风险,匿名访问让所有人都可以上传文件到服务器上而无需鉴权,而允许切换根目录则可能产生越权访问问题,我们把这两个功能关闭。
关闭方法如下,编辑 /etc/vsftpd/vsftpd.conf, 找到下面两处配置并修改:

# 禁用匿名用户
anonymous_enable=NO
# 禁止切换根目录
chroot_local_user=YES
修改后重启服务
[root@ftp ftp]# systemctl restart vsftpd

创建FTP用户,创建一个用户 ftpuser,命令如下:

[root@ftp ftp]# useradd ftpuser

为用户 ftpuser 设置密码,命令如下:

[root@ftp ftp]# echo "Password" | passwd ftpuser --stdin
Changing password for user ftpuser.
passwd: all authentication tokens updated successfully

限制该用户仅能通过 FTP 访问:

限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器,因为那样会有安全隐患,限制命令如下:

[root@ftp ftp]# usermod -s /sbin/nologin ftpuser

为用户分配主目录:

为用户 ftpuser 创建主目录并约定:/data/ftp 为主目录, 该目录不可上传文件,/data/ftp/pub 文件只能上传到该目录下。

创建主目录执行如下命:

[root@ftp ftp]# mkdir -p /data/ftp/pub

方便用户登录后可以看到欢迎信息,并且确定用户确实登录到了主目录上,我们需要给用户创建一个欢迎文件。创建登录欢迎文件,执行如下命令:

[root@ftp ftp]# echo "Welcome to use FTP service." > /data/ftp/welcome.txt

设置访问权限,让用户对他的主目录有可读写权限,执行如下命令:

[root@ftp ftp]# chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

把该目录设置为用户的主目录,执行如下命令:

[root@ftp ftp]# usermod -d /data/ftp ftpuser

准备域名和证书

如果您不需要通过域名访问 FTP 服务器则可以直接用IP地址访问,域名购买完成后, 需要将域名解析到你的服务器IP地址上。

访问 FTP 服务

FTP 服务已安装并配置完成,下面我们来使用该 FTP 服务,根据您个人的工作环境,选择一种方式来访问已经搭建的 FTP 服务。

a、Windows 用户可以复制下面的链接到资源管理器的地址栏访问:

ftp://ftpuser:Password@<您的服务器IP地址>

b、通过 FTP 客户端工具访问

FTP 客户端工具众多,下面推荐两个常用的:

WinSCP - Windows 下的 FTP 和 SFTP 连接客户端

FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac

下载和安装 FTP 客户端后,使用下面的凭据进行连接即可:

你的服务器IP地址、FTP用户名、FTP用户密码

如果能够正常连接,那么大功告成,您可以开始使用属于您自己的 FTP 服务器了!

接下来,请上传任意一张图片到您的 FTP 服务器上的pub目录下,然后,就可以在 /data/ftp/pub 中看到了。

注意: 请不要直接上传文件到根目录下,您应该选择上传到 pub 目录下.

四.配置文件说明

vim /etc/vsftpd/vsftpd.conf            主配置文件
anonymous_enable=YES                 允许匿名访问
local_enable=YES                  允许本地
write_enable=YES                 允许写入
anon_upload_enable=YES                 允许匿名上传
anon_mkdir_write_ enable=YES              允许匿名用户创建新的目录
dirmessage_enalbe=YES                 开启目录提示功能
xferlog_enable=YES                 激活上传下载的日志          
connect_from_port_20=YES                 开启20号端口的主动模式
chown_username=whoever                 指定匿名上传的用户
xferlog_file=/var/log/xferlog             日志文件,这个要反注释打开
xferlog_std_format=YES                  启用日志的标准格式
idle_session_timeout=600                 连接上服务器10分钟内,如果什么操作都不做,就会被服务器踢掉,默认300秒
date-connection-timeout=120                  会话超时时间,如果因为断线导致连接断开,2分钟后,服务端会把客户端踢下去,默认300秒
ftpd_banner=Welcome to joinlabs             欢迎信息,在lftp没用
listen=NO                       NO只侦听ipv4,   YES侦听ipv4和ipv6
listen_ipv6=YES                       支持ipv6,但是不侦听ipv6也没用
userlist_enable=YES                    启用黑名单

猜你喜欢

转载自www.cnblogs.com/shmilyxue/p/12089043.html