Skip to content

Latest commit

 

History

History
171 lines (147 loc) · 6.95 KB

File metadata and controls

171 lines (147 loc) · 6.95 KB

一、实验目的

二、实验准备

  • 用户devuser密码:devuser
  • 安装git命令:sudo apt install git

三、FTP服务

FTP工作原理
  • 文件传输协议FTP(File Transfer Protocol)是因特网使用的最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 它屏蔽了各计算机系统的细节,因为是和在异构网络中任意计算机之间传送文件。
FTP提供以下功能:
  1. 提供不同种类主机系统之间文件传输能力
  2. 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
  3. 以匿名FTP的方式提供公用文件共享的能力
  • FTP采用客户/服务器的工作方式,它使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程, 负责接收新的请求,另外一有若干个从属进程,负责处理单个请求。工作步骤如下:
  1. 打开熟知端口21,使客户进程能够连接上
  2. 等待客户进程发链接请求
  3. 启动从属进程来处理客户进程的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止
  4. 回到等待状态,继续接受其他客户进程的请求
  • FTP服务器必须在整合绘画期间保留用户的状态信息。特别是服务器必须把指定的用户账户与控制连接起来,服务器必须跟踪用户在远程目录树上的当前位置。

VSFTP

  • VSFTP是一个基于GPL授权协议发布,在类UNIX操作系统上使用的FTP服务器软件。它的全称是Very Secure FTP,从名称可以看出,安全性是编写VSFTP 的初衷,除了安全性以外,高速与高稳定性也是VSFTP的两个重要特点。
  • 在速度方面,使用ASCII的模式下载数据时,VSFTP的速度是WU-FTP的两倍,如果Linux 主机使用2.4.x 的内核,在于兆以太网上的下载速度可达 86MB/S。 在稳定性方面,VSFTP 更加出色,VSFTP 在单机(非集群)上支持 4000个以上的并发户同时连接,根据FTP服务器数据,VSFTP 服务器最多可以支持15000个 并发用户同时连终VSFTP 市场应用十分广泛,目前我国操作系统都在使用,比如银河麒麟操作系统、统信UO操作系统等。

下面具体介绍 VSFTP 软件在龙芯服务器上的配置和使用方法。

安装vsftpd

  1. 运行如下代码安装vsftpd
yum install -y vsftpd
  1. 运行以下命令启动VSFTP服务和查看VSFTP状态
systemctl start vsftpd
systemctl status vsftpd
  • 如果输出结果提示“Active:active (running)”,说明 VSFTP 服务启动成功
  1. 运行以下命令设置VSFTP服务开机自启动
 [root@localhost loongson]# fsystemctl enable vsftpd
  • 此时已配置VSFTP 服务开机自启。如果要确认是否设置成功,可输入如下命令。
[root@localhost loongson]fsystemctl list-unit-files | grep vsftpd
vsftpd.service                            enabled
  • 如果输出结果提示“enable”,说明此时VSFTP 服务处于 enabled 状态,开机时会自动启动。
  • 禁止VSFTP 服务开机自启,可输入如下命令。
[root@localhost loongson]#systemctl disable vsftpd
[root@localhost loongson]#systemctl list-unit-files | grep vsftpd
vsftpd.service                                    disabled
  • 如果输出结果提示“disabled”,说明此时 VSFTP 服务处于 disabled 状态,禁止了开机启动。
  1. VSFTP 服务配置实例
  • 配置VSFTP 服务,需要建立一个 FTP 用户并设置其目录。此处通过创建以 /opt/ftp 为目录TP 服务,介绍 VSFTP 服务的配置,操作步骤如下。
  • 准备FTP用户目录。
  • 创建目录的方法如下。
[root@localhost loongson]# mkdir /opt/ftp
  • 修改目录权限的方法如下。
[root@localhost loongson]# chmod -R 0777 /opt/ftp
  • 新建组 ftpusers。
[root@localhost loongson]#groupadd ftpusers
  • 添加用户ftp1。
[root@localhost loongson]#useradd -g ftpusers -d /opt/ftp -M ftpl
  • 述代码中的选项说明如下。
  • g: 指定ftp1 用户组。
  • d: 指定ftp1用户HOME 目录
设置 ftp1 用户密码
[root@localhost loongson]#passwd ftp1
设置用户ftp1的密码。
新的密码:
重新输入新的密码:
passwd: 所有的身份验证令牌已经成功更新。
修改vsftpd.conf
  • 启用限制用户在用户家目录下的功能,命令如下。
[root@localhost loongson]# vi /etc/vsftpd/vsftpd.conf
  • 打开 /etc/vsftpd/vsftpd.conf,修改配置文件,内容如下。
chroot_list_enable=YES
#(default follows)
chroot_list_file=/etc/vsftpd/chroot_list
添加用户ftp1到用户列表 chroot,将 ftpl用户限制在其家目录下。
  • 编辑 chroot_list 文件,添加以下内容。
[root@localhost loongson]# vi /etc/vsftpd/chroot_list
  • 打开 /etc/vsftpd/chroot_list,修改配置文件,内容如下。
ftp1 
修改配置后,重启服务。
[root@localhost loongson]# systemctl restart vsftpd.service
  • 此时,重启 vsftpd 服务,以 /opt/ftp 为目录的 FTP 服务就配置完成了。
  • 登录FTP后,如果提示 500 OPPS 错误,这是出于安全性考虑,FTP 用户不能在根目录拥有写权限
  1. 处理措施1:去除FTP 用户根目录写权限,操作方法如下。
[root@localhost loongson]# chmod a-w /opt/ftp
  1. 处理措施2:允许 FTP 用户在根目录拥有写权限,操作方法如下。
[root@localhost loongson]#vi /etc/vsftpd/vsftpd.conf
  • 打开/etc/vsftpd/vsftpd.conf,修改配置文件,内容如下。
allow writeable chroot=yes

vsftp配置文件及参数说明

  1. /etc/vsftpd目录下文件说明如下:
  • /etc/vsftpd/vsftpd.conf 是vsftpd的核心配置文件。
  • /etc/vsftpd/ftpusers 是黑名单文件,此文件中的用户不允许访问FTP服务器。
  • /etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。
  1. 配置文件vsftpd.conf参数说明如下:
  • pasv_enable=YES 开启被动模式
  • pasv_enable=NO 开启主动模式
  • 不设置该参数 配置文件中默认不设置该参数,表示使用被动模式
  1. 用户登录控制参数说明如下表所示:
  • anonymous_enable=YES 接受匿名用户
  • no_anon_password=YES 匿名用户login时不询问口令
  • anon_root=(none) 匿名用户主目录
  • local_enable=YES 接受本地用户
  • local_root=(none) 本地用户主目录
  1. 用户权限控制参数说明如下表所示:
  • write_enable=YES 可以上传文件(全局控制)
  • local_umask=022 本地用户上传的文件权限
  • file_open_mode=0666 上传文件的权限配合umask使用
  • anon_upload_enable=NO 匿名用户可以上传文件
  • anon_mkdir_write_enable=NO 匿名用户可以建目录
  • anon_other_write_enable=NO 匿名用户修改删除
  • chown_username=lightwiter 匿名上传文件所属用户名