vsftpd文件传输服务

it2022-05-05  221

目录:

vsftpd介绍FTP主流软件、用户模式vsftpd安装vsftpd配置文件vsftpd匿名用户模式vsftpd系统用户模式vsftpd虚拟用户模式ftp主动和被动模式

vsftpd介绍

FTP(文件传输协议),基于TCP协议运行、(c/s)架构。 默认使用20,21端口,20端口(数据端口)进行数据传输,21端口(控制端口)用ftp控制连接命令执行。 FTP普遍部署在内网,支持文件传输共享。

FTP主流软件、用户模式

VSFTPD,server-uFTP,FZ,wuftpd

Vsftpd(very secure ftp daemon)非常安全的ftp服务 Vsftpd 基于GPL开源协议,可以实现匿名用户,系统用户,虚拟用户三种用户模式

匿名用户模式为最不安全的用户模式,任何人都可以无需通过验证来访问ftp服务器,通常用于临时使用。本地用户模式, 比匿名用户安全。必须在本地存在用户才能访问ftp服务。虚拟用户模式,虚拟用户就是没有真实的用户存在,通过映射一个ftp认可的本地用户来设置相应的权限来完成验证,真实用户是不能登录Linux系统的,是最可靠的用户模式。

回到目录

vsftpd安装

yum安装与源码安装效果相同,此处使用yum安装yum install vsftpd* -y 查看安装是否完成[root@localhost ~]# rpm -qa| grep vsftpd vsftpd-3.0.2-25.el7.x86_64 vsftpd-sysvinit-3.0.2-25.el7.x86_64 启动服务[root@localhost ~]# systemctl restart vsftpd 安装完成后,相关文件的存放位置

vsftpd配置文件

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 /etc/vsftpd/user_list 和 ftpusers 配置文件里用户禁止访问 FTP; tcp_wrappers=YES 设置 vsftpd 与 tcp wrapper 结合进行主机的访问控制,Vsftpd 服务器检查/etc/hosts.allow和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该 FTP 服务器。

回到目录

vsftpd匿名用户模式

下面三个参数代表匿名用户上传、创建、写入权限:

anon_upload_enable=YES 允许匿名用户上传文件; anon_mkdir_write_enable=YES 允许匿名用户创建目录; anon_other_write_enable=YES 允许匿名用户其他写入权限。

匿名用户完整 vsftpd.conf 配置文件代码如下:

anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

由于默认 Vsftpd 匿名用户有两种:anonymous、ftp,所以匿名用户如果需要上传文件、删除及修改等权限,需要 ftp 用户对/var/ftp/pub 目录有写入权限,使用如下 chown 和 chmod 任意一种即可,设置命令如下:

chown -R ftp.ftp /var/ftp/pub chmod o+w /var/ftp/pub systemctl restart vsftpd

vsftpd系统用户模式

创建系统用户test1、test2,分别设置密码为123456。useradd test1 useradd test2 echo "123456" | passwd --stdin test1 echo "123456" | passwd --stdin test2 修改vsftpd.conf配置文件:anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES 验证

通过 Windows 资源管理器验证,使用 test1、test2 登录ftpserver test1、test2 系统用户上传文件的家目录在/home/test1、/home/test2 下

[root@localhost ftp]# cd /home/test1 [root@localhost test1]# ls 新文件夹

回到目录

vsftpd虚拟用户模式

https://blog.csdn.net/qq_36327717/article/details/96475959

ftp主动和被动模式

FTP 主动模式:客户端从一个任意的端口 N(N>1024)连接到 FTP 服务器的 port 21 命令端口,客户端开始监听端口 N+1,并发送 FTP 命令“port N+1”到 FTP 服务器,FTP 服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。FTP 被动模式:客户端从一个任意的端口 N(N>1024)连接到 FTP 服务器的 port 21 命令端口,客户端开始监听端口 N+1,客户端提交 PASV 命令,服务器会开启一个任意的端口(P >1024),并发送 PORT P 命令给客户端。客户端发起从本地端口 N+1 到服务器的端口 P 的连接用来传送数据。

对应vsftpd配置文件参数:

connect_from_port_20=YES pasv_enable=NO 关闭被动模式

如何选择模式:

服务端没有防火墙,选择被动模式服务端有防火墙,选择主动模式双方都有防火墙时,vsftpd可以设置端口范围,服务端打开端口范围。 需要修改的配置参数为:connect_from_port_20=NO pasv_enable=YES pasv_min_port=5000 pasv_max_port=5005

最新回复(0)