Linux---FTP文件服务器搭建及实战

一、FTP简介

FTP: File Transfer Protocol文件传输协议

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

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

下载文件就是从远程主机拷贝文件至自己的计算机上,上传文件就是将文件从自己的计算机中拷贝至远程主机上。

FTP协议:文件传输协议(File Transfer Protocol)

  • 协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准

  • FTP运行在OSI模型的应用层,并利用传输协议TCP在不同的主机之间提供可靠的数据传输

  • FTP 在文件传输中还支持断点续传功能,可以大幅度减少CPU网络带宽的开销

用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件,由于FTP的文件传输是明文方式,具有一定危险性,所以就诞生了一种更加安全的传输方式vsftp。

1.1 VSFTP特点

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

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

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

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

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

  5. vsftpd是一个基于GPL发布的FTP服务器软件。其中的vs是" Very Secure"的缩写,由此名称缩写可以看出,本服务器的初衷就是服务的安全性。

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

  7. vsftpd不再依赖于xinetd服务

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

1.2 VSFTP连接类型

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

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

1.3 Vsftp工作模式

FTP协议有两种工作方式:PORT方式和PASV方式,主动式和被动式

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

    • 客户端连接到ftp服务端的信息端口(默认是20),并向其发送用户名和密码。

    • 若客户端想要下载或上传文件,客户端随即开放一个端口(1024以上),发送PORT命令倒ftp服务端,告知ftp服务端采用主动模式并开放数据端口(默认是ftp服务端的信息端口-1,也就是20)。

    • 随后ftp服务端会通过数据端口和客户端开发的端口进连接,从而传输文件信息。

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

    • 客户端连接到ftp服务端的信息端口(默认是21),并向其发送用户名和密码。

    • 若客户端想要下载或上传文件,客户端发送PASV命令倒ftp服务端,告知ftp服务端采用被动模式,服务器在本地随即开放一个端口(自己配置范围),然后将开放的端口告诉客户端。

    • 客户端连接服务器这个开放的端口,从而上传或下载文件。

模式的不同:

  • PORT:需要客户端开放端口给服务器进行文件的上传和下载,但不同客户端自身防火墙规则不同,可能出现不能传输文件的情况。

  • PASV:服务器开放端口给客户端进行文件的上传和下载,防火墙可控,因此较为推荐。

1.4 FTP用户的类型

匿名用户:anonymous或ftp

本地用户:计算机操作系统的用户名和密码,帐号名称、密码等信息保存在passwd/shadow文件中

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

二、VSFTPD安装

2.1 服务介绍

  • 服务包:vsftpd

  • 服务类型:由Systemd启动的守护进程

  • 配置单元: /usr/lib/systemd/system/vsftpd.service

  • 守护进程: /usr/sbin/vsftpd

  • 端口: 21(ftp) , 20(ftp‐data)

  • 主配置文件: ==/etc/vsftpd/vsftpd.conf==

  • 用户访问控制配置文件: /etc/vsftpd/ftpusers /etc/vsftpd/user_list

  • 日志文件: /etc/logrotate.d/vsftpd

2.2 配置文件参数

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

2.3 关闭selinux

关闭防火墙

修改之后需要执行命令reboot重启Linux服务

reboot 

2.4 安装VSFP

使用yum安装vsfp 

yum -y install vsftpd

三、允许匿名用户上传文件

3.1 找到配置文件进行修改

cd /etc/vsftpd/

将下面这些添加进去

# 匿名用户上传文件的umask值

anon_umask=022

# 匿名用户允许上传文件

anon_upload_enable=YES

# 匿名用户允许创建文件夹

anon_mkdir_write_enable=YES

# 匿名用户允许写文件

anon_other_write_enable=YES

3.2 重启(开启)服务

#开启

systemctl  start vsftpd 

#重启

systemctl  restart vsftpd 

3.3 找到pub文件修改权限 

3.4 客户端访问ftp 

访问

随便上传一个文件 

在虚拟机里查看是否上传成功

四、搭建图片资源服务器 

1.禁止匿名用户访问

cd /etc/vsftpd

保存之后重启服务

systemctl restart vsftpd 

2.添加本地用户

useradd testftp

修改密码

 passwd  dys1234..

这里就是刚才创建的用户的家目录 上传就在家目录里面 在家目录里面创建一个文件夹名字必须和下面资源服务的 /名字/ 相同

mkdir images

给这个文件夹里上传一张图片

  

3.搭建资源服务

修改Linux配置文件

cd /opt/nginx/nginxserver/conf

4. 给创建的家目录权限

 找到 /home 给刚才创建的用户的家目录赋值777权限

chmod 777 testftp

5. 浏览器访问

⚠️ 启动nginx

可以访问到就说明配置生效了 

6.非匿名客户端访问

在关闭匿名用户访问之后 再通过客户端访问ftp就需要登录了 

账号密码为上面设置的账号密码使用登录即可

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux系统中,搭建FTP服务器是十分常见的任务,通过FTP服务器可以方便地在本地和远程进行文件传输。以下是FTP服务器搭建的步骤: 第一步,安装vsftpd软件包:在终端中输入sudo apt-get install vsftpd,这将会下载并安装vsftpd软件包。 第二步,配置vsftpd服务:通过在终端中运行sudo vim /etc/vsftpd.conf命令,可以打开vsftpd服务的配置文件,根据需要进行不同配置。例如,可以更改默认的FTP用户的根目录,开启匿名访问,设置FTP服务端口等。 第三步,启动vsftpd服务:在终端中输入sudo service vsftpd start,即可启动vsftpd服务。 第四步,设置防火墙规则:如果系统上开启了防火墙,则需要设置相应的规则,以允许FTP服务的访问。通过iptables命令或者ufw命令均可实现。 总之,通过以上步骤,就可以在Linux系统上成功搭建FTP服务器。在这里,需要注意FTP服务的安全性问题,例如匿名访问带来的安全隐患等。因此,在使用FTP服务器时,需要谨慎并采取必要措施,以确保文件的安全传输。 ### 回答2: FTP文件传输协议)是一种用于文件传输的网络协议。我们可以通过FTP协议来搭建自己的FTP服务器,方便文件上传、下载和共享。本文重点介绍如何在Linux系统上搭建FTP服务器。 1.安装VSFTPD 在命令行中输入以下命令: sudo apt-get install vsftpd 2.配置vsftpd 配置文件位于“/etc/vsftpd.conf”,可以使用以下命令打开文件: sudo nano /etc/vsftpd.conf 为了保持安全,应该禁用匿名访问,仅允许通过用户名和密码进行访问。以下是禁用匿名访问的配置项: anonymous_enable=NO 为每个用户单独分配文件夹进行访问,并启用本地用户登录。以下是配置项: chroot_local_user=YES local_enable=YES 将文件传输模式设置为二进制模式。以下是配置项: ascii_upload_enable=NO ascii_download_enable=NO local_umask=022 pasv_enable=YES pasv_min_port=40000 pasv_max_port=40100 其中,“pasv_min_port”和“pasv_max_port”表示FTP使用的被动模式端口,确保其在防火墙中打开并配置为允许通过。 3.启用防火墙端口 打开TCP端口20和21: sudo ufw allow 20/tcp sudo ufw allow 21/tcp 打开TCP端口40000到40100,如果您在配置vsftpd时使用了不同的端口,则需要更改相应的端口范围: sudo ufw allow 40000:40100/tcp 4.启动VSFTPD并设置开机启动 运行以下命令以启动VSFTPD: sudo service vsftpd start 使VSFTPD在系统启动时启动: sudo systemctl enable vsftpd 5.创建FTP用户 运行以下命令来创建FTP用户: sudo adduser ftpuser 将新用户加入FTP用户组: sudo usermod -aG ftpuser ftpuser FTP用户的文件夹将在“/home/ftpuser”下创建。 6.测试FTP服务器 在Windows电脑上使用FTP客户端(例如FileZilla)连接到Linux上的FTP服务器。使用FTP用户的凭据进行身份验证,确保您可以上传和下载文件。 总的来说,搭建FTP服务器需要注意的几点是:保持安全、禁用匿名访问、为每个用户单独分配文件夹进行访问、打开TCP端口、启用防火墙、创建FTP用户等。通过这些步骤,您就可以成功地在Linux系统上搭建FTP服务器了。 ### 回答3: 在Linux中,FTP服务器可以用于文件传输和共享。在Linux上配置FTP服务器非常容易,只需要安装适当的软件包并进行一些简单的配置即可。这篇文章将介绍如何在Linux上搭建FTP服务器。 首先,我们需要安装FTP服务器软件包。在大多数Linux发行版上,FTP服务器软件包为vsftpd,可以使用以下命令安装: sudo apt-get install vsftpd 安装完成后,我们需要编辑配置文件/etc/vsftpd.conf以定义我们的FTP服务器设置。以下是一些常用设置: 1. anonymous_enable=YES:启用匿名FTP登录。 2. local_enable=YES:启用本地用户登录FTP。 3. write_enable=YES:启用写入FTP服务器的权限。 4. chroot_local_user=YES:使本地用户只能访问其主目录。 5. pasv_enable=YES:启用被动模式FTP。 编辑完成配置文件后,我们需要重启FTP服务器以应用设置。可以使用以下命令: sudo service vsftpd restart 现在我们已经可以从其他设备连接到我们的FTP服务器了。使用FTP客户端(如FileZilla)输入服务器IP地址、用户名和密码即可连接到服务器。如果设置了匿名登录,客户端可以使用用户名“anonymous”和空密码登录。 在FTP服务器上,我们可以创建和删除文件夹,上传和下载文件。在上传和下载文件时,FTP服务器需要具有足够的权限才能写入服务器文件系统。如果无法上传或下载文件,请检查FTP服务器配置文件中的“write_enable”设置是否正确。 总之,搭建FTP服务器非常简单,只需要安装适当的软件包和简单的配置即可开始共享文件FTP服务器是一个非常有用的工具,可以用于共享大量文件和协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值