配置vsftpd服务

2024-03-30 16:28
文章标签 配置 服务 vsftpd

本文主要是介绍配置vsftpd服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务简介

1、FTP协议概览 FTP(File Transfer Protocol)⽂件传输协议,在TCP/IP协议族中属于应⽤层协议,是运⾏于 TCP协议之上是⼀种可靠的传输协议,主要功能⽤于实现⽤户间⽂件分发共享,以及⽹络管理 者在进⾏设备版本升级、⽇志下载和配置保存等业务操作时,均会使⽤到FTP功能。FTP协议 运⾏在TCP连接上,运⾏在UDP协议上的是TFTP协议)

2、FTP(File Transfet Protocol):⽂件传输协议 FTP是⼀种在互联⽹中基于TCP协议端到端的数据传输协议 基于C/S架构,默认使⽤20、21号端⼝ 端⼝20(数据端⼝)⽤于数据传输 端⼝21(命令端⼝)⽤于接收客户端发出的相关FTP命令

3、FTP协议的两种传输模式

主动模式(Port)

主动模式的核⼼是TFP客户端告诉服务端⾃⼰开发那个端⼝作为数据端⼝,然后让服务端来连 接⾃⼰。 主动模式的连接建⽴⼀般是通过⼀些⼏个步骤: 客户端随机打开⼀个本地⼤于1024的端⼝P1 客户端通过端⼝P1向服务器控制端⼝(端⼝21)发起连接请求 服务器进⾏认证成功,请求建⽴ 客户端对本地端⼝P2进⾏监听并向服务器发送“Port P1+1”告诉服务器,客户端的数据监听端 ⼝。 服务器收到端⼝后,从⾃⼰的数据端⼝(端⼝20)发起连接,连接到客户端指定的数据端⼝ P1+1.

被动⽅式(Passive)

由于主动⽅式中,服务端需要主动连客户端,对于客户端的防⽕墙来说,属于外部连接内 部,会出现被阻塞的情况。被动⽅式解决了这个问题。被动连接的核⼼是控制连接请求和数 据连接请求都是由客户端发起。被动⽅式的步骤如下: 客户端任意打开⼤约1024的两个本地端⼝(P1和P1+1) P1端⼝发送请求连接服务器的21端⼝(控制连接端⼝)同时提交PASV命令。 服务器收到请求后,会开启任意⼀个⼤约1024的端⼝P2,然后返回如下格式内容: 227 entering passive mode(h1,h2,h3,h4,p1,p2) 客户端收到服务端返回的内容后,计算出服务端开放的数据连接端⼝ 客户端通过P1+1端⼝向服务端的发送连接请求。进⾏数据传输。

4、vsftpd服务相关参数

 步骤:

安装vsftp服务

[root@admin ~]# yum -y install  vsftpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。省略。。。。
1/1 安装    : vsftpd-3.0.5-4.el9.x86_64                                                                                                                                            1/1 运行脚本: vsftpd-3.0.5-4.el9.x86_64                                                                                                                                            1/1 验证    : vsftpd-3.0.5-4.el9.x86_64                                                                                                                                            1/1 
已更新安装的产品。已安装:vsftpd-3.0.5-4.el9.x86_64                                                                                                                                                          完毕!
[root@admin ~]# 

创建用户用于登录

[root@admin ~]# useradd  vsftp
[root@admin ~]# echo "1" |passwd --stdin vsftp
更改用户 vsftp 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@admin ~]# 

 重启服务并设置开机自启

[root@admin ~]# systemctl  restart  vsftpd.service 
[root@admin ~]# systemctl  enable  vsftpd.service 
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@admin ~]# 

 关闭防火墙和selinux

[root@admin ~]# systemctl  stop firewalld
[root@admin ~]# setenforce  0

 上传下载文件操作方式

1、 help查看可执行操作命令

2、不可对目录操作,可以操作某个目录下的文件

help // 获取帮助

get // 下载

put // 上传

mget // 下传一-批文件

mput // 上传一-批文件

quit // 退出

主配置文件参数

[root@admin ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=NO     #关闭匿名⽤户访问16 local_enable=YES    #是否允许本地⽤户访问,yes允许,no不允许 19 write_enable=YES #是否允许本地⽤户有写权限,yes允许,no不允许23 local_umask=022 #本地⽤户上传⽂件默认权限为75537 dirmessage_enable=YES #当⽤户第⼀次进⼊新⽬录时显示消息(了解)40 xferlog_enable=YES #启动xferlog⽇志记录,该⽂件记录传输数据53 #xferlog_file=/var/log/xferlog #⽇志⽂件位置,需删除注释43 connect_from_port_20=YES #启⽤数据传输端⼝49 #chown_username=whoever #改变上传⽂件的属主与属组60 #idle_session_timeout=600 #客户端连接超时时间63 #data_connection_timeout=120 #数据连接超时时间101 chroot_local_user=YES #是否允许本地⽤户切换⽬录,yes不允许,no允许115 listen=NO #是否开启监听IPV4的连接,默认没开启,改为yes126 pam_service_name=vsftpd  #启⽤pam认证的⽂件名称,路径为/etc/pam.d/vsftpd127 userlist_enable=YES #是否启⽤控制名单⽂件,yes启⽤,no不启⽤,⽂件为/etc/vsftpd/user_list,如果启⽤控制名单功能,需要指定该⽂件为⿊名单|⽩名单128 userlist_deny=no #yes拒绝user_list⽂件中⽤户登录ftp服务器(⿊名单),no允许登录(⽩名单)
max_clients=  #限制最⼤并发连接数量

 cmd窗口测试 ftp + 本机IP

 上传一个文件 使用pwd命令查看上传位置

 回到Linux查看是否上传成功

[root@admin vsftp]# pwd
/home/vsftp
[root@admin vsftp]# ls
CentOS7.2.qcow2
[root@admin vsftp]# 

 vsftpd匿名⽤户模式

匿名开放模式:它是⼀种最不安全的认证模式,任何⼈都可以⽆需密码验证⽽直接

打开另一台虚拟机(基础环境以配置完成)  修改名称

[root@AI ~]# hostname client
[root@AI ~]# bash
[root@client ~]# 

 下载客户端连接工具  并测试能否登录

[root@client ~]# yum -y install ftp
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。MySQL 8.0 Community Server                                                                                                                           4.2 kB/s | 2.6 kB     00:00    
MySQL Connectors Community                                                                                                                           1.1 kB/s | 2.6 kB     00:02    
MySQL Tools Community                                                                                                                                1.8 kB/s | 2.6 kB     00:01    
local_rehat                                                                                                                                          3.1 MB/s | 3.2 kB     00:00    
BaseOS                                                                                                                                               2.7 MB/s | 2.7 kB     00:00    
软件包 ftp-0.17-89.el9.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@client ~]# ftp 192.168.200.133
Connected to 192.168.200.133 (192.168.200.133).
220 (vsFTPd 3.0.5)
Name (192.168.200.133:root): vsftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

 修改服务端配置文件允许匿名用户登录

[root@admin ~]# vim /etc/vsftpd/vsftpd.conf...12 anonymous_enable=yes      #是否允许匿名⽤户访问,yes允许,no不允许...28 anon_upload_enable=YES      #是否允许匿名⽤户上传,yes允许,no不允许...32 anon_mkdir_write_enable=YES  #是否允许匿名⽤户创建⽬录,yes允许,no不允许...33 anon_other_write_enable=yes   #是否允许匿名⽤户写权限,yes允许,no不允许(⼿动添加)

 客户端 使用ftp伪用户进行登录测试

[root@client ~]# ftp 192.168.200.133
Connected to 192.168.200.133 (192.168.200.133).
220 (vsFTPd 3.0.5)
Name (192.168.200.133:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

这篇关于配置vsftpd服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861985

相关文章

Nginx之https证书配置实现

《Nginx之https证书配置实现》本文主要介绍了Nginx之https证书配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录背景介绍为什么不能部署在 IIS 或 NAT 设备上?具体实现证书获取nginx配置扩展结果验证

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点