当前位置: 首页 > news >正文

十二、FTP服务器配置与应用

FTP(File Transfer Protocol)是文件传输协议的简称,用于控制文件的双向传输,同时,它也
是一个应用程序(Application)。用户可以通过该软件把使用的计算机与世界各地所有运行基
于FTP协议的服务器相连,以访问服务器上的大量程序和信息。

1、FTP概述

FTP是在TCP/IP网络和因特网上最早使用的、进行文件传输的协议之一,可以在主机间共享文
件。它属于ISO网络结构中的应用层。
文件传输是Internet提供的一项基本服务,通过Internet,可以把文件从一台计算机传送到另一
台计算机。文件传输服务必须遵循文件传输协议——FTP。
当启动FTP从远程计算机复制文件时,事实上启动了两个程序:一个是本地机上的FTP客户程
序,它向FTP服务器提出复制文件的请求;另一个是启动在远程计算机上的FTP服务器程序,它
响应客户机的请求把指定的文件传送到本地机中。FTP采用“客户机/服务器”方式,客户端要
在自己的本地计算机上安装FTP客户程序。

1.1、FTP连接与传输模式

1.1.1、FTP连接与连接模式

  • 控制连接:TCP 21,用来接收客户端发送的命令,并给予响应的。
  • 数据连接:TCP 20,用于数据通道,负责实际的数据传输,包括上传、下载数据。
  • 数据连接的建立类型:
  • 主动模式:服务端从 20 端口主动向客户端发起连接
  • 被动模式:服务端在指定范围内某个端口被动等待客户端连接
    解释:
    **FTP(文件传输协议)**主要使用两个TCP端口:21和20。这两个端口分别用于不同的目的,以支
    持FTP的操作。
    TCP 21端口(控制端口)
    用途:TCP 21端口主要用于控制通道。这个通道负责传输FTP会话期间的所有控制信息,包
    括用户认证(登录名和密码)、命令传输(如列出文件、更改目录、删除文件等)和响应消
    息。
    特点:在整个FTP会话期间,控制通道始终保持开启状态。这意味着客户端和服务器之间的
    控制信息交换(如命令和响应)都通过这个端口进行。
    TCP 20端口(数据端口)
    用途:TCP 20端口主要用于数据通道,负责实际的数据传输,包括文件上传和下载以及目
    录列表的传输。
    特点:数据通道可以根据需要开启和关闭。在传输文件或目录列表时建立开启,传输完成后
    关闭。与控制通道相比,它不是持久开启的。
    工作模式
    FTP有两种工作模式:主动模式(Active Mode)和被动模式(Passive Mode),这两种模式
    影响数据通道(TCP 20端口)的工作方式:
    主动模式:服务器主动连接到客户端指定的数据端口来传输数据。在这种模式下,客户端通
    过控制通道发送PORT命令,告知服务器一个客户端上的端口号,服务器随后从自己的TCP
    20端口连接到这个指定的客户端端口来传送数据。
    被动模式:为了解决主动模式中防火墙和NAT导致的连接问题,被动模式允许客户端主动连
    接到服务器上的一个随机打开的高端口。在这种模式下,客户端通过控制通道发送PASV命
    令给服务器,服务器响应一个开放的高级端口号供数据连接使用,然后客户端从本地任意端
    口连接到这个服务器上的高级端口。
    总结来说,TCP 21端口用于控制信息的交换,而TCP 20端口在主动模式下用于数据传输。在被
    动模式下,数据传输使用的是服务器上的随机高级端口而不是20端口。

1.1.2、FTP传输模式

文本模式:ASCII 模式,以文本序列传输数据
二进制模式:Binary 模式,以二进制序列传输数据
文字类一般采用ASC模式,图片视频等使用二进制方式。
FTP客户端和服务器在开始文件传输之前需要协商使用哪种传输模式。大多数现代FTP客户端会
根据文件类型自动选择合适的传输模式,但用户通常也可以手动指定所需的模式。

1.2、FTP用户的类型

FTP(文件传输协议)支持不同类型的用户身份,允许通过多种方式进行认证和访问控制。

1.2.1、匿名用户(Anonymous or FTP)

定义:允许用户无需提供个人认证信息就能登录FTP服务器。通常,当提示输入用户名时,
用户输入 anonymous 或 ftp ,并使用电子邮件地址作为密码(尽管大多数服务器并不验
证这个密码)。
用途:主要用于公共文件共享,允许公众下载或查看特定的文件和目录,而不允许上传或
修改。
配置:服务器管理员需要特别配置FTP服务器以启用匿名访问,并设置适当的权限来保护系统安全。

1.2.2本地用户

定义:这些是在服务器操作系统中具有账户的用户。他们的账户名称、密码等身份验证信息保存在操作系统的用户数据库中,如Linux/Unix系统的 /etc/passwd 和 /etc/shadow文件。
用途:本地用户通常用于内部或受信任的用户群体,允许他们上传、下载、删除和修改文件,具体权限取决于服务器的配置和用户的权限设置。
配置:管理员需要确保每个本地用户都有适当的目录权限,并且FTP服务正确地与操作系统的身份验证系统集成。

1.2.3、虚拟用户

定义:虚拟用户不是操作系统中的实际账户,而是仅存在于FTP服务的配置中。他们使用独
立的账户/密码数据文件进行身份验证,这使得管理更加灵活,并提高了安全性。
用途:适用于需要为用户提供FTP访问权限但不希望赋予他们操作系统级别访问权限的场
景。这种方式便于管理大量用户,并可以更细致地控制每个用户的权限。
配置:管理员需要在FTP服务器上配置虚拟用户支持,并维护一个包含用户名和密码的独立
数据文件。此外,还需要为每个虚拟用户设置适当的访问权限和目录限制。

1.2.4、常见的 FTP 服务器程序

IIS、Serv-U
wu-ftpd、Proftpd
vsftpd(Very Secure FTP Daemon)
1.2.5、常见的 FTP 客户端程序
ftp 命令
CuteFTP、FlashFXP、LeapFTP、Filezilla
gftp、kuftp

2、Vsftpd 服务基础

2.1、安装vsftpd

官方站点:http://vsftpd.beasts.org/

[root@ftp ~]# rpm -q vsftpd
未安装软件包 vsftpd
[root@ftp ~]# yum -y install vsftpd

主程序:/usr/sbin/vsftpd
服务名:vsftpd
用户控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件
/etc/vsftpd/vsftpd.conf

2.2、主配置文件——vsftpd.conf

vsftpd.conf 是vsftpd(Very Secure FTP Daemon)的主配置文件,通过它可以调整和控制
FTP服务器的行为和属性。

2.1、常见的全局配置项及其解释

2.1.1、界面和消息

dirmessage_enable=YES: 控制是否显示目录欢迎消息。

2.1.2、服务器行为和性能

listen=YES: 控制vsftpd是否以独立服务的方式运行,监听FTP请求。
listen_address=192.168.4.1: 指定vsftpd监听的IP地址。
listen_port=21: 设置vsftpd监听的端口号。
max_clients=0: 限制并发客户端连接数,0表示无限制。
max_per_ip=0: 限制同一IP地址的并发连接数,0表示无限制。

2.1.3、文件传输和日志

write_enable=YES: 控制是否允许FTP命令更改文件系统(如上传、删除文件)。
download_enable=YES: 控制是否允许下载文件。
connect_from_port_20=YES: 控制服务器是否从端口20(FTP数据端口)发起数据连
接。
xferlog_enable=YES: 启用传输日志记录。

2.1.4、安全和访问控制

userlist_enable=YES: 启用用户列表文件,用于控制访问权限。
userlist_deny=YES: 设置为YES时,列表中的用户将被拒绝访问。
tcp_wrappers=YES: 启用tcp_wrappers支持,进行基于主机名、IP地址的访问控制。
pam_service_name=vsftpd: 指定PAM服务进行用户认证。

2.1.5、匿名用户配置

anonymous_enable=YES: 启用匿名用户访问。
anon_root=/var/ftp: 指定匿名用户的根目录。
anon_umask=022: 设置匿名用户上传文件的权限掩码。
anon_upload_enable=YES: 允许匿名用户上传文件。
anon_mkdir_write_enable=YES: 允许匿名用户创建目录。
anon_other_write_enable=YES: 允许匿名用户执行其他写操作。
anon_max_rate=0: 设置匿名用户的最大传输速率,0表示无限制。

2.1.6、本地用户配置

local_enable=YES: 启用本地用户登录。
local_root=/var/ftp: 设置本地用户的根目录。
local_umask=022: 设置本地用户上传文件的权限掩码。
local_max_rate=0: 设置本地用户的最大传输速率,0表示无限制。
chroot_local_user=YES: 将本地用户限制在其主目录中

3、FTP服务构建

3.1、匿名访问

构建流程
准备匿名FTP访问的目录
默认情况下,匿名用户被限制在/var/ftp目录。确保此目录存在,并设置了正确的权限:

[root@vsftpd ~]# ls /var/ftp/
pub
[root@vsftpd ~]# touch /var/ftp/pub/pub.test
[root@vsftpd ~]# chown -R ftp:ftp /var/ftp/pub/
[root@vsftpd ~]# ll /var/ftp/
总用量 0
drwxr-xr-x 2 ftp ftp 22 513 21:04 pub

开放匿名用户配置并启动vsftpd服务

[root@vsftpd vsftpd]# vim vsftpd.conf
anonymous_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write

相关文章:

  • LeetCode Hot100(矩阵)
  • ADB安装及使用
  • Ubuntu系统下Docker部署Dify保姆级教程:实现内网穿透远程访问
  • PostgreSQL 备份与恢复策略
  • 架构意识与性能智慧的双重修炼
  • Pytorch的梯度控制
  • Pinia Plungin Persistedstate
  • 长春CCPC邀请赛
  • [Redis] Redis:高性能内存数据库与分布式架构设计
  • unity—特效闪光衣服的设置
  • 【Unity高级】ScriptableObject 全面解析:从理论到实战
  • MediaMtx开源项目学习
  • C语言学习笔记四---V
  • 能源领域新兴技术论坛:EMQ 实时数据引擎构建工业智能中枢
  • NLP学习路线图(十一):词干提取与词形还原
  • 机动车结构化检测算法AI智能分析网关V4打造全场景应用解决方案
  • 动态内容加载时,爬虫应如何处理?
  • 2025国创赛-高教主赛道·创意组评审要点整理
  • Java 微服务架构设计:服务拆分与服务发现的策略
  • 【ROS2】使用ROS2接口时,对抛异常的处理
  • 电子商务网站建设与管理期末/武汉seo排名公司
  • 公司网站制作平台/高端网站建设公司
  • 四川手机网站/发帖百度秒收录网站分享
  • 深圳十大甲级装饰公司/寻找郑州网站优化公司
  • 衡阳房产网/seo营销方案
  • win8风格门户网站/杭州seo工作室