Centos7 搭建FTP服务器

Centos 7 搭建FTP服务器

1. FTP简述

文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息,同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。

FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。

2. FTP传输模式

FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式,主被动模式均是以FTP服务器端为参照。主被动模式如图1-2(a)、1-2(b)所示,主被动模式详细区别如下:
(1)FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。
(2)FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
在企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需要在FTP服务器端防火墙规则中,开放20、21端口即可。

在这里插入图片描述
在这里插入图片描述

3. Vsftpd服务器简介

目前主流的FTP服务器端软件包括:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd 。
非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用等。

4. 试验目的

本次试验目的为添加一个管理员账号,通过管理员账号在指定目录上传文件,其他用户(即匿名用户)登陆后可查看下载。其他账号登陆后可在本账号目录下操作,也可查看下载匿名用户目录下的文件,但无权对匿名用户目录进行修改。

5. 安装FTP

5.1 关闭防火墙

关闭防火墙,禁止开机自启(可根据自己配置设置是否关闭)

systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述

5.2 关闭selinux

vim /etc/selinux/config

在这里插入图片描述

setenforce 0使修改立即生效

在这里插入图片描述

5.3 安装vsftpd

yum install vsftpd* -y

在这里插入图片描述
打印vsftpd安装后的配置文件路径、启动Vsftpd服务及查看进程是否启动

rpm –ql vsftpd | more
systemctl  restart   vsftpd.service
ps   -ef |grep  vsftpd

启动Vsftpd服务后,通过Windows客户端资源管理器访问Vsftp服务器端

ftp://服务器ip

在这里插入图片描述
FTP主被动模式,默认为被动模式,设置为被动模式使用端口方法如下:
在文件末尾加上如下内容
在这里插入图片描述

pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60100

在这里插入图片描述

5.4Vsftpd系统用户配置

本次计划目的添加一个管理员账号,使用管理员账号上传管理文件,匿名用户可以查看下载,但是没有其他权限。默认账号路径在/home下

useradd admin
echo admin12345|passwd --stdin admin

在这里插入图片描述

5.5修改ftp默认目录

vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

local_root=/home
chroot_local_user=YES
anon_root=/home/test

local_root 表示本地用户登录后的根目录,也就是非匿名,而是输入用户名和密码登录进入的
anon_root 用户,即匿名用户访问的主目录

  • 新建目录

在这里插入图片描述

  • 查看目录所属用户,并修改匿名用户访问目录为管理员admin所有
chown admin:admin test

在这里插入图片描述

  • 重启服务
systemctl restart vsftpd

在这里插入图片描述

  • 切换用户,创建目录测试

在这里插入图片描述

5.6测试

在Windows中查看(匿名用户查看的结果)
在这里插入图片描述

管理员登陆查看
在这里插入图片描述
在这里插入图片描述
以上经测试匿名用户只能查看下载test目录下内容,admin可以管理admin目录及test匿名用户目录

5.7添加新用户

在这里插入图片描述
使用user用户登陆
在这里插入图片描述
可以查看匿名用户test目录但是没有修改权限,只可以下载,不可以访问admin目录

6.Vsftpd.conf默认配置文件详解

anonymous_enable=YES			#开启匿名用户访问;
local_enable=YES				#启用本地系统用户访问;
write_enable=YES                #本地系统用户写入权限;
local_umask=022                 #本地用户创建文件及目录默认权限掩码;
dirmessage_enable=YES  			#打印目录显示信息,通常用于用户第一次访问目录时,信息提示;
xferlog_enable=YES              # 启用上传/下载日志记录; 
connect_from_port_20=YES      	#FTP使用20端口进行数据传输;
xferlog_std_format=YES          #日志文件将根据xferlog的标准格式写入;
listen=NO               		#Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;
listen_ipv6=YES                 # 启用IPV6监听;
pam_service_name=vsftpd      	#登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;
userlist_enable=YES             #Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
tcp_wrappers=YES                # 设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。

 
 
 
 
 

  • 15
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值