文件共享服务FTP介绍

文件共享服务FTP介绍

1 FTP是什么?
FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。
它属于网络传输协议的应用层。
文件传送(file transfer)和文件访问(file access)之间的区别在于:
前者由FTP提供,后者由如NFS等应用系统提供。
在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。
"下载"文件就是从远程主机拷贝文件至自己的计算机上;
"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。
用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件,
由于FTP的文件传输是明文方式,具有一定危险性,所以就诞生了一种更加安全的传输方式vsftp,
下面主要介绍vsftp的特性及相关配置。

2 VSFTP特点
2.1 VSFTP是一个比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工作模式
主动模式:服务端从20端口主动向客户端发起连接
被动模式:服务端在指定范围内某个端口被动等待客户端连接

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

5 VSFTP传输模式
文本模式:ASCII模式,以文本序列传输数据
二进制模式:Binary模式,以二进制序列传输数据

6 FTP用户的类型
匿名用户:anonymous或ftp
本地用户:帐号名称、密码等信息保存在passwd/shadow文件中
虚拟用户:使用独立的帐号/密码数据文

7 环境准备

1 关闭SElinux
	//临时关闭
	setenforce 0 
	//永久关闭selinux
	vim /etc/selinux/config 
	SELINUX=disabled

2 关闭防火墙
	//停止防火墙
	systemctl stop firewalld.service
	//关闭防火墙
	systemctl disable firewalld.service

8 安装并启动FTP服务

1 查看系统是否安装vsftp
	rpm -qa | grep vsftpd

2 使用yum命令安装vsftpd
	yum install -y vsftpd

3 启动vsftpd
	systemctl start vsftpd

4 查看21端口是否存在
	netstat -nltp|grep 21

5 连接FTP服务器(FTP默认的存储目录 /var/ftp/pub 默认不允许匿名用户上传)
	ftp://机器地址

9 创建FTP用户

1 创建一个ftp用户
	useradd ftptest(用户名)

2 为ftp用户设置密码
	passwd ftptest(用户密码,多验证几次)

3 限制该用户只能访问FTP,不能直接登录服务器(系统)
	usermod -s /sbin/nologin ftptest(设置完之后只用于文件操作不用于其他操作)

10 创建FTP文件存储路径

1 创建FTP文件存储路径
	创建主目录,不可上传文件
	mkdir /var/ftptest -p 
	文件存储目录
	mkdir /var/ftptest/html (文件名自己定义)
	

在这里插入图片描述

2 设置访问权限
	chmod a-w /var/ftptest && chmod 777 -R /var/ftptest/html

3 修改系统用户的存储目录(文件末尾追加)
	vim /etc/vsftpd/vsftpd.conf
	//针对系统用户的存储目录
	local_root=/var/ftptest/ 
	//针对匿名用户的存储目录
	anon_root=/var/ftptest/ 

11 配置FTP权限

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

	备份vsftpd.conf文件:
	 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

2 关闭匿名访问和切换根目录权限
	vim /etc/vsftpd/vsftpd.conf   末行:/an
	//禁用匿名用户
	anonymous_enable=NO 
	//禁止切换根目录  删除此行
	chroot_local_user=YES 

3 重启服务
	systemctl restart vsftpd

你可能感兴趣的:(LInux)