配置vsftpd服务

简介: FTP是TCP/IP协议族中的应用层协议,用于可靠地传输文件,基于C/S架构,使用20(数据)和21(命令)端口。有两种传输模式:主动模式,客户端告知服务器数据端口,服务器发起连接;被动模式,服务器响应客户端的PASV命令,客户端建立数据连接。安装Linux的vsftpd服务涉及`yum install vsftpd`,创建用户,重启服务并设置开机启动。配置文件`vsftpd.conf`可调整访问权限和行为。通过FTP命令如`help`,`get`,`put`进行文件操作。匿名用户模式可允许无密码访问,需修改配置文件开启。


服务简介
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 #本地⽤户上传⽂件默认权限为755

37 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的连接,默认没开启,改为yes

126 pam_service_name=vsftpd #启⽤pam认证的⽂件名称,路径为/etc/pam.d/vsftpd

127 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>

目录
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
147 2
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
37 2
|
7月前
|
安全 Linux 应用服务中间件
[笔记]CentOS7 vsftpd安装及配置使用
[笔记]CentOS7 vsftpd安装及配置使用
284 0
|
2月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
28 4
|
5月前
|
安全 Linux 网络安全
Linux加强篇011-使用Vsftpd服务传输文件
山重水复疑无路,柳暗花明又一村
258 1
Linux加强篇011-使用Vsftpd服务传输文件
|
11月前
|
存储 运维 安全
Linux巩固篇011-Linux vsftpd 服务传输文件
纸上得来终觉浅,绝知此事要躬行
11254 13
Linux巩固篇011-Linux vsftpd 服务传输文件
|
11月前
|
Linux 数据安全/隐私保护
linux中配置vsftpd
linux中配置vsftpd
89 0
|
弹性计算 缓存 Linux
Centos Linux系统使用vsftpd搭建ftp服务
Centos Linux系统使用vsftpd搭建ftp服务
208 0
Centos Linux系统使用vsftpd搭建ftp服务
|
安全 Linux 网络安全
CentOS7下vsftpd over SSL/TLS加密传输配置实践
CentOS7下vsftpd over SSL/TLS加密传输配置实践
403 0
CentOS7下vsftpd over SSL/TLS加密传输配置实践