CentOS7.5上FTP服务的安装与使用

1.FTP简介

1.1FTP:File Transfer Protocol 文件传输协议

FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。

"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件,由于FTP的文件传输是明文方式,具有一定危险性,所以就诞生了一种更加安全的传输方式vsftp,下面主要介绍vsftp的特性及相关配置。

2.VSFTP特点

2.1VSFTP是一个比FTP更安全的软件具有以下特点:

01 vsftp一般以普通用户运行,降低了进程的权限,提高了安全性

02 任何需要执行较高权限的指令都需要上层程序的许可

03 ftp的命令都被整合到了vsftp中,不需要系统额外提供命令

04 用于chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录

05 vsftpd 是一个基于GPL发布的FTP服务器软件。其中的vs是“ Very Secure”的缩写,由此名称缩写

可以看出,本服务器的初衷就是服务的安全性。

06 vsftpd是RedHat Linux默认使用的ftp服务端软件。

07 vsftpd不再依赖于xinetd服务

08 vsftpd可同时允许匿名( anonymous )与本地用户(local)访问,还可以支持虚拟用户。

3.VSFTP连接类型

控制连接:TCP 21,用于发送FTP命令信息

数据连接:TCP 20,用于上传、下载数据

4.Vsftp工作模式

4.1FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式

主动模式:服务端从20端口主动向客户端发起连接

被动模式:服务端在指定范围内某个端口被动等待客户端连接

主动模式端口分配:控制端口 21 传输数据端口 20

被动模式端口分配:控制端口 21 传输数据端口 随机

5. FTP的PORT(主动模式) 和 FTP的PASV(被动模式)

5.1PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上), 发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端 开放的端口连接,发送数据,原理如下图:

如上图所示,在主动模式下,FTP客户端从任意端口5150(端口号>1023)发起一个FTP请求,并携带自己监听的端口号5151(发送的端口号+1=监听端口号);随后服务器返回确认,然后从服务器本地的20端口主动发起连接请求到客户端的监听端口5151,最后客户端返回确认。

这种模式缺点在于服务器带客户端的FTP连接很容易被传输过程中的路由器、防火墙所影响或拦截。

5.2PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP 客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

为了主动模式所面临的服务器到客户端的连接会被拦截阻塞的问题,FTP发展出了被动模式。在被动模式中,命令连接和数据连接都由客户端来发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙拦截的问题。

如上图所示,客户端用随机命令端口5150向服务器的21命令端口发送一个PASV请求,然后服务器返回数据端口3267,告诉客户端我在哪个端口监听数据连接。然后客户端向服务器的监听端口3268发起数据连接,最后服务器回复确认ok。

6.VSFTP传输模式

1 文本模式:ASCII模式,以文本序列传输数据

2 二进制模式:Binary模式,以二进制序列传输数据

7.FTP用户的类型

1 匿名用户:anonymous或ftp

2 本地用户:帐号名称、密码等信息保存在passwd/shadow文件中

3 虚拟用户:使用独立的帐号/密码数据文

8.环境准备

8.1关闭SElinux

setenforce 0 临时关闭selinux

vim /etc/selinux/config 永久关闭selinux

SELINUX=disabled

8.2关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

9.安装并启动FTP服务

9.1 查看系统是否安装vsftp

rpm -qa | grep vsftpd

执行命令没有反馈就是没有安装

9.2 使用yum命令安装vsftpd

yum install -y vsftpd

9.3 启动vsftpd

systemctl start vsftpd

9.4 查看21端口是否存在

netstat -nltp|grep 21

9.5 宿主机浏览器访问 ftp://10.0.0.201

FTP默认的存储目录 /var/ftp/pub 默认不允许匿名用户上传

10.创建FTP用户

10.1 创建一个ftp用户

useradd zxcvbnm

10.2 为ftp用户设置密码

echo "zxcvbnm" | passwd zxcvbnm --stdin

10.3 限制该用户只能访问FTP,不能直接登录服务器(系统)

usermod -s /sbin/nologin zxcvbnm

11.创建FTP文件存储路径

11.1 创建FTP文件存储路径

mkdir /var/www -p 创建主目录,不可上传文件

mkdir /var/www/html 文件存储目录

11.2 设置访问权限

chmod a-w /var/www && chmod 777 -R /var/www/html

12.修改系统用户的存储目录

vim /etc/vsftpd/vsftpd.conf

local_root=/var/www/ 针对系统用户的存储目录

anon_root=/var/www/ 针对匿名用户的存储目录

13.配置FTP权限

13.1 vsftpd的配置目录:/etc/vsftpd

vsftpd.conf 主要配置文件(注意备份)

ftpusers 配置禁止访问 FTP 服务器的用户列表

user_list 配置用户访问控制

建议备份vsftpd.conf文件: cp vsftpd.conf vsftpd.conf.bak

绝对路径: cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

13.2 关闭匿名访问和切换根目录权限

vim vsftpd.conf

anonymous_enable=NO 禁用匿名用户

chroot_local_user=YES 禁止切换根目录 删除此行

13.3 重启FTP服务

systemctl restart vsftpd

重启之后再用浏览器登陆ftp,此时需要输入用户名和密码

14.vsftp为不同用户设置不同的ftp的根目录

需求:

要求ftp登录后的根目录是/var/www/,但是又不能影响其他用户的登录路径,因为有些程序是直

接在根目录进行操作的,而没有目录切换的过程。

操作过程

注释掉配置文件中的存储目录

#local_root=/var/www/

#anon_root=/var/www/

创建多用户访问不同的根目录,这两行已经不生效。所以注释不注释都可以

14.1 创建第二个FTP用户

useradd zxcvbnm1

14.2 添加密码

echo "zxcvbnm1" | passwd lzxcvbnm1 --stdin

14.3 限制该用户只能访问FTP,不能直接登录服务器(系统)

usermod -s /sbin/nologin zxcvbnm1

14.4 vsftpd配置

配置各自用户访问根目录

cd /etc/vsftpd/

mkdir userconfig

cd userconfig

用户配置目录 user_config_dir=/etc/vsftpd/userconfig

vim /etc/vsftpd/vsftpd.conf

在userconfig目录下为不同用户配置不同的根目录:

mkdir /var/www/html/lidao -p

vim /etc/vsftpd/userconfig/zxcvbnm

local_root=/var/www/html

mkdir /var/www/hedao/ -p

vim /etc/vsftpd/userconfig/zxcvbnm1

local_root=/var/www/hedao

14.5 重启服务

systemctl restart vsftpd

14.6 创建测试文件,进行测试

mkdir /var/www/html/laonanhai -p

mkdir /var/www/hedao/lizhengya -p

用zxcvbnm用户测试一下

zxcvbnm用户对应的根目录是/var/www/html

用zxcvbnm1用户测试一下

zxcvbnm1对应的根目录是hedao

15.VSFTP权限管理

ll /var/www/html/ -d

因为所有者和所属组和其他人都是读写执行权限,所以可以正常上传66.txt文件

ll /var/www/html/laonanhai -d

因为laonanhai这个目录其他用户没有写的权限,所以zxcvbnm用户登录的FTP服务器,也没有写的权限,所以不能上传文件

给老男孩目录提权

chmod 775 /var/www/html/laonanhai

ll /var/www/html/laonanhai -d

让laonanhai有写的权限

usermod -a -G root zxcvbnm

id laonanhai

让zxcvbnm属于zxcvbnm组,也属于root组

重启vsftp 重启后,从电脑访问ftp 拖拽文档放入就可以了

systemctl restart vsftpd

16.FTP客户端

FTP图形化客户端 Xftp falshfxp 资源管理器 浏览器 等等。。。

访问方式: ftp://自己FTP服务器的ip地址

FTP命令行客户端 Xshell SecureCRT 等等。。。

访问方式: ftp 自己FTP服务器的ip地址

17.vsftpd.conf配置文件

vsftpd.conf 里面有很多的配置项,这里只列出一部分常用的配置项

下面是配置的选项及说明

17.1 系统用户的配置

local_enable=YES # 是否允许本地用户登录

write_enable=YES # 是否允许本地用户的写权限(是否允许上传)

listen=YES # 是否开启监听

listen_port=2121 # 修改连接端口

pam_service_name=vsftpd # 服务名称

local_umask=022 # 默认的umask码(本地用户的掩码信息)

diremssage_enable=YES # 是否显示目录说明文件

connect_from_prot_20=YES # 是否确定端口传输来自20

xferlog_ftd_format=YES # 是否使用标准的ftp xferlog模式

17.2 匿名登录设置(匿名用户的常用配置)

anonymous_enable=NO # 是否允许匿名登录

anno_upload_enable=YES #是否允许匿名用户上传权限

anno_mkdir_write_enable=YES #是否允许匿名用户可创建目录及其文件

anno_other_write_ebable=YES #匿名用户是否除了写权限是否拥有删除和修改的权限

anno_world_readable_only=YES #匿名用户是否拥有只读权限

no_anno_password=YES #匿名用户是否跳过密码检测

anno_umask=077 #匿名用户创建文件的掩码权限

17.3 限制目录

chroot_local_user=yes # 限制所有用户都在家目录(禁锢所有ftp用户在其家目录下)

chroot_list_enable=YES # 调用限制在家目录的用户名单(是否将系统用户限制在自己的

home目录下)

chroot_list_file=/etc/vsftpd/chroot_list # 限制在家目录的用户名单所在路径(列表不受限制的用户)

17.4 日志设置

xferlog_file=/var/log/vsftpd.log # 日志文件路径设置

xferlog_enable=YES # 是否记录ftp传输过程

use_localtime=YES

默认情况下,vsftpd 是用GMT做为它的时间的,所以和操作系统的时间不一致,加入这个命令来同步vsftpd与操作系统的时间

原文地址:https://www.cnblogs.com/basa/p/11112590.html

时间: 2024-10-04 16:01:13

CentOS7.5上FTP服务的安装与使用的相关文章

centos7中搭建ftp服务

博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的,当然排除了一些坑点. 参考:https://www.cnblogs.com/jefflee168/p/6575014.html 1. 安装vsftpd 安装vsftpd: yum install vsftpd -y 启动vsftpd: systemctl start vsftpd 设置开机启动:s

Ubuntu下的FTP服务的安装和设置

一 安装vsftpd 在安装前vsftpd,先更新apt-get下载的数据源输入如下命令: sudo apt-get update 然后安装vsftpd sudo apt-get install vsftpd 二 增加FTP账户 新建ubuntu账户ftp. sudo useradd -m ftp sudo passwd ftp 如果安装好vsftpd服务后在/home目录下有ftp目录,那么就忽略创建ftp目录命令,否则就输入以下命令,新建一个ftp目录并授权. mkdir /home/ftp

CentOS7.4上2分钟快速安装MySQL5.6

一.环境介绍: 腾讯云云主机全新环境安装MySQL5.6.39 [[email protected]_82_178_centos scripts]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 磁盘伪云盘40G 内存为2G 二.开始安装: 上传my.cnf模板文件到服务器/etc/下上传文件mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz到服务器root目录下 useradd mys

Ftp服务端安装-Linux环境

目的 为什么要搭建FTP服务器,进入maven仓库下载Jar包时点击相应的链接进去会看到目录结构,这个就是ftp站点.可以随意的下载. 环境 Linux系统为CentOS6.5 安装步骤 查询是否已安装 rpm -qa | grep vsftpd 如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装vsftpd服务器.若没有回复,即系统中没有安装. 如下图,说明没有安装 安装并设为开机启动 yum -y install vsftpd chkconfig vsftpd on 服务基本

Linux: FTP服务原理及vsfptd的安装、配置

1.FTP 服务的安装# yum install -y vsftpd [[email protected] pub]# ls -l /etc/vsftpd/ total 20 -rw-------. 1 root root 125 Aug 3 2015 ftpusers -rw-------. 1 root root 361 Aug 3 2015 user_list -rw-------. 1 root root 5030 Aug 3 2015 vsftpd.conf -rwxr--r--. 1

FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输.FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机.小公司用的多,大企业不用FTP,因为不安全. 使用vsftpd搭建ftp服务 1.安装及建立账号 [[email protected] ~]# yum insta

02.FTP服务原理及vsftpd服务配置

02.FTP服务原理及vsftpd服务配置 ·FTP(File Transfer Protocol)是个古老并且应用广泛的互联网协议,提供了一种可靠的方式在网络上进行文件共享, ·FTP是cs架构的服务,拥有一个服务器端和客户端,使用TCP协议作为底层传输协议,提供数据传输的可靠性, ·FTP的标准端口为20.21,20为数据接口,21为指令接口, ·FTP模式:(针对数据传输) ·主动模式,客户端通过联系服务器21端口后,服务器20端口主动发起连接给客户端, ·被动模式,客户端通过联系服务器2

linux系统如何启用ftp服务

在linux操作系统中,ftp功能是最常用的服务之一,平常写代码都是在windows下完成再通过ftp传到linux下.由此ftp服务必不可少. 但在刚安装的linux操作系统中,ftp服务一般是不启用的,有些甚至都没有安装这个服务.下面记录下ftp服务的安装与启动过程: 安装(red hat下): #yum install vsftpd 启动ftp服务: #service vsftpd start 安装ftp客户端组件(用来验证是否vsftpd) #yum install ftp 验证: #f

xshell使用xftp传输文件和使用pure-ftpd搭建ftp服务

xshell使用xftp传输文件 首先安装xftp,然后建立会话,步骤和xshell一样,在使用的时候用Ctrl+ALT+f呼出,左边是windows桌面,右面是linux,双击或拖拽都可以实现命令互传. 使用pure-ftpd搭建ftp服务 首先安装yum install -y pure-ftpd 更改配置文件vim /etc/pure-ftpd/pure-ftpd.conf//找到pureftpd.pdb这行,把行首的#删除 systemctl stop vsftpd(如果我们以前启动了vs