linux入门系列15–文件传输之vsftp服务

前面的系列文章基本讲完了linux管理相关的基础知识,从本篇开始讲解centos7中服务程序的部署和配置,以便为外部提供各种服务。

日常工作和娱乐中,我们所需的各种资源都离不开网络以及各种服务,我们通过网络获取部署在其他服务器上的各种服务资源,这些服务包括文件服务、邮件服务、媒体服务等等。

一般情况下,我们使用计算机上网的一个重要目的就是为了获取资料,而文件传输则是获取资料的方式。因此,我们首先来了解下linux中文件传输相关的知识。

一、文件传输协议FTP

1.1 FTP产生背景

“无规矩不成方圆”,这说明了规则的重要性。同样,当今的互联网由成千上万台机器组成,这些机器包括个人计算机、工作站、服务器、巨型机等各种形形色色的设备,并且这些设备中使用的操作系统还不一样,有的可能是用的windows,而有的则是Linux或其他系统。

要在这么纷繁复杂的设备之间传输文件,那就必须要有一定的规则,大家都按规则办事,传输的文件才能相互识别,达到正确传递信息的目的。在这种背景下,为了解决文件传输的问题,文件传输协议应运而生。

1.2 FTP相关概念

文件传输协议(File Transfer Protocol,FTP),是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用 20、21 号端口,其中20端口是数据端口用于进行数据传输,21端口为命令端口,用于接收客户端发出的相关FTP命令和参数。

本系列文章第三篇提到的所有工具都可以实现在Windows中远程到Linux主机并上传下载文件,并且在Linux主机之间也可以通过scp命令上传文件,那为什么还需要FTP呢?个人认为应该是因为FTP一般搭建与内网之中,有具有容易搭建、方便管理的特点,并且一些FTP客户端工具还具有文件多点下载以及断点续传等功能,这些是scp做不到的。

FTP是C/S架构,也就是基于客户端/服务器的模式,FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。

FTP协议的传输拓扑结构如下:

FTP协议工作模式有两种:主动模式和被动模式,其中被动模式是默认的工作模式

  • 主动模式:FTP 服务器主动向客户端发起连接请求。

  • 被动模式:FTP 服务器等待客户端发起连接请求。

由于FTP一般部署在企业内网,如果开启并配置了防火墙,有时候需要将FTP的工作模式设置为主动模式,才可以传输数据。

二、Linux下基于FTP协议工具

2.1 vsftpd服务安装

vsftpd(very secure ftp daemon)非常安全的FTP守护进程,是一款运行在Linux系统上的免费开源的FTP服务端程序。其主要特点是:安全性高、传输速度快、支持虚拟用户验证。

默认情况Centos7中是没有安装vsftpd的,因此需要手动通过yum仓库安装,根据前文的讲解可以用光盘资源自带的yum源,也可以直接配置外网源。本例采用默认的外网yum源进行安装。

[root[@origin](https://my.oschina.net/zorigin) ~]# rpm -q vsftpd
package vsftpd is not installed
[root[@origin](https://my.oschina.net/zorigin) ~]# yum install vsftpd
Loaded plugins: fastestmirror, langpacks
...省略部分内容
Installed size: 353 k
Is this ok [y/d/N]: y
Downloading packages:
vsftpd-3.0.2-25.el7.x86_64.rpm                             | 171 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : vsftpd-3.0.2-25.el7.x86_64                                   1/1 
  Verifying  : vsftpd-3.0.2-25.el7.x86_64                                   1/1 
Installed:
  vsftpd.x86_64 0:3.0.2-25.el7                                                 
Complete!
[root[@origin](https://my.oschina.net/zorigin) ~]# rpm -q vsftpd     
vsftpd-3.0.2-25.el7.x86_64
[root[@origin](https://my.oschina.net/zorigin) ~]# 

通过rpm命令查看是否已经安装过vsftpd,如果没有安装则通过yum install命令安装即可,安装过程中需要按提示输入y继续下载并安装。

> 注意:从现在开始,凡是涉及到服务的配置,就要考虑防火墙和SELinux的因素,很多教程和书籍上都是直接关闭防火墙和selinux,虽然这样在学习阶段可以避免干扰,但是这样非常不安全。另外凡是配置了服务,都要加入开机启动中,让其每次重启自动生效。

安装vsftpd服务后,会在/etc下自动生成配置文件

[root@ftpserver ~]# ll /etc/vsftpd/
total 20
-rw-------. 1 root root  125 Oct 31  2018 ftpusers
-rw-------. 1 root root  361 Oct 31  2018 user_list
-rw-------. 1 root root 5116 Oct 31  2018 vsftpd.conf
-rwxr--r--. 1 root root  338 Oct 31  2018 vsftpd_conf_migrate.sh

各个文件的解释

文件名 作用
vsftpd.conf 主配置文件
ftpusers 黑名单
vsftpd_conf_migrate.sh 迁移脚本
user_list 用户列表,与userlist_enbale和userlist_deny选项密切相关

查看主配置文件vsftpd.conf内容可以看到各项配置信息,需要根据实际情况来进行配置,其中主要的参数和作用如下:

参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP地址 设置要监听的IP地址
listen_port=21 设置FTP服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO] 设置用户列表为“允许”操作
userlist_deny=[YES|NO] 设置用户列表为“禁止”操作
max_clients=0 最大客户端连接数,0为不限制
max_per_ip=0 同一IP地址的最大连接数,0为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的umask值
anon_root=/var/ftp 匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(包括重命名、删 除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的 FTP 根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0为不限制

不用完全记住这些参数,需要时再来查看即可。

2.2 ftp客户端安装

ftp是Linux系统中以命令行界面的方式来管理FTP传输服务的客户端工具。默认也是没有安装的,需要手动安装。

[root@origin ~]# rpm -q ftp
package ftp is not installed
[root@origin ~]# yum install ftp
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...省略部分内容
Total download size: 61 k
Installed size: 96 k
Is this ok [y/d/N]: y
Downloading packages:
ftp-0.17-67.el7.x86_64.rpm                                 |  61 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ftp-0.17-67.el7.x86_64                                       1/1 
  Verifying  : ftp-0.17-67.el7.x86_64                                       1/1 
Installed:
  ftp.x86_64 0:0.17-67.el7                                                     
Complete!
[root@origin ~]# rpm -q ftp     
ftp-0.17-67.el7.x86_64
[root@origin ~]# 

通过yum install命令即可安装成功,ftp客户端工具安装成功后,接下来就是及操作下文件传输的功能。

2.3 vsftpd三种认证模式

vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上:匿名开放模式、本地用户模式、虚拟用户模式。实际生产环境中虚拟用户模式用的较多。

  • 匿名开放模式:任何人都可以无需密码验证而直接登录到FTP服务器,是一种最不安全的认证模式。

  • 本地用户模式:是通过Linux系统本地的账户密码信息进行认证

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值