当前位置:网站首页>FTP实验及概述
FTP实验及概述
2022-07-26 05:17:00 【蓝月欧冠之王】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、FTP
1.概述
FTP (File TransferProtocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。TCP 协议:20,21端口
FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式 FTP的客户端发送PORT 命令到FTP server。 Passive 模式FTP的客户端发送PASV命令到FTP Server
(1)Standard模式
FTP客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。
PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
(2)Passive模式
在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和15000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候ETP server不再需要建立一个新的和客户端之问的连接。
2.搭建和配置FTP服务
搭建FTP服务器
1)实验环境
服务器: CentOS 7 系统ip: 网络地址
客户端: Win10 系统ip: 网络地址
very secure ftlp
2)软件安装
linux 系统中,是vsftpd提 供ftp的服务(没有依赖包,可直接yum安装,也可光盘安装)
yum install -y vsftpd
3)配置文件
/etc/ vsftpd/ vsftpd. conf ftp服务器的主配置文件
/etc/pam.d/vsftpd
/etc/vsftpd/ ftpusers 禁止登陆用户名单,默认root 不能登陆
/etc/vsftpd/user_ 用户名 可以通过设置只有这个名单里的用户可以登陆,如果同一用户同时 出现在ftpusers和user_ 用户名 那么该用户也是被禁止登陆,取最严权限.
/var/ ftp ftp的根目录,默认登陆位置
/var/ ftp/pub .
4)用户
①匿名用户: anonymous/ftp 默认开启,密码为空
②本地用户: linux系统中的用户(无需配置可直接登陆但有安全隐患)
③虚拟用户:自定义的虚拟用户(配置麻烦但相对安全)
5)开启服务
systemctl start vsftpd
6)匿名用户默认可下载但不能上传,修改匿名用户权限可上传
修改/etc/vsftpd/vsftpd.conf,开启anon _upload_ enable-YES
修改/var/ ftp/pub为777权限,不要修改/var/ftp的权限否则无法登陆
7)允许root登陆.
修改/etc/vsftpd/ ftpusers,将root注释
修改/etc/vsftpd/vsftpd.conf,添加一行userlist_ _deny-NO
重启服务.
8)锁定用户家目录不可随意切换
修改/etc/vsftpd/ vsftpd. conf
chroot_ local_ user-YES 取消注释, 锁定家目录了,但是如果家目录有写权限ftp会拒绝连接
allow writeable chroot-YES 添加这一行
(9)重启服务
tepdump -i ens33 -nnX port 21
-nn:直接以IP及portnumber显示,而非主机名与服务名称
-X :可以列出十六进位(hex) 以及ASCII 的封包內容,对于监听封包內容很有用
3.查看信息
yum info vsftpd
FTP (File Transfer Protocol: 文件传输协议) 作用: Internet上用来传送文件的协议。
VSFTP全称 (very secure FTP )
VSFTP模式: C/S模式
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
开启服务,关闭防火墙和增强型安全功能X
systemctl stop firewalld
setenforce 0
rpm -qa l grep vsftp
yum install -y vsftpd
cd /etc/ vsftpd/
cp vsftpd. conf vsftpd. conf .bak
4.设置匿名用户访问的FTP服务(最大权限)
1)修改配置文件
vim /etc/vs ftpd/vsftpd. conf
anonymous_ enable-YES 开启匿名用户访问。默认已开启(FTP)
write_ enable=YES 开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_ umask=022 设置匿名用户所上传数据的权限掩码(反掩码)。
anon_ upload_ enable-YES 允许匿名用户。上传文件。默认已注释,需取消注释
anon_ mkdir_ write_ enable=YES 允许匿名用户创建(.上传)目录。默认E注释,需取消注释
anon_ other_ write_enable=YEs 允许其他删除、重命名、覆盖等操作。需添加
chmod 777 /var/ftp/pub/ 为匿名访问ftp的根目录下的pub子目录设置最大权限,以便着 名用户上传数据
2)开启服务,关闭防火墙和增强型安全功能
systemctl start vsftpd .
systemctl stop firewalld
setenforce 0
3)匿名访问测试
在windows 系统打开开始菜单,输入cmd命令打开命令提示符
建立ftp连接
ftp 网络地址
匿名访问,用户名为ftp, 密码为空,直接回车即可完成登录
ftp> pwd 匿名访问ftp的根月录为Linux系统的/var/ftp/目录
ftp> ls 查看当前目录
ftp> cd pub 切换到pub目录
ftp> get文件名 下载文件到当前Windows本地目录
ftp> put文件名 上传文件到ftp目录
ftp> quit 退出
yum install -y vsftpd

vim vsftpd.conf

开启服务,关闭防火墙和增强型安全功能
验证
在Windows系统打开开始菜单,输入cmd命令打开命令提示符

边栏推荐
- Annotation @autowired how to assemble automatically
- Basic methods of realizing licensing function in C language
- If MySQL calculates the current month change / current month increase / year-on-year change / year-on-year increase?
- Common modules in ansible
- Recommend 12 academic websites for free literature search, and suggest to like and collect!
- Okaleido上线聚变Mining模式,OKA通证当下产出的唯一方式
- ALV report flow diagram
- Security permission management details
- Okaleido launched the fusion mining mode, which is the only way for Oka to verify the current output
- 基于通用优化软件GAMS的数学建模和优化分析
猜你喜欢

手把手教你用代码实现SSO单点登录

黑吃黑?男子破解赌博网站漏洞,每月“薅羊毛”10多万元

pillow的原因ImportError: cannot import name ‘PILLOW_VERSION‘ from ‘PIL‘,如何安装pillow<7.0.0

【pytorch】torch1.8.1安装、查看torch版本、GPU是否可用

Recommendation system - machine learning
![提升命令行效率的 Bash 快捷键 [完整版]](/img/ec/f0dd2fbfac6853ae60d7cf52d8f3e1.png)
提升命令行效率的 Bash 快捷键 [完整版]
![Bash shortcut key to improve command line efficiency [Full Version]](/img/ec/f0dd2fbfac6853ae60d7cf52d8f3e1.png)
Bash shortcut key to improve command line efficiency [Full Version]

ALV程序收集

Five simple and practical daily development functions of chrome are explained in detail. Unlock quickly to improve your efficiency!

Embedded sharing collection 21
随机推荐
测试用例评审如何开展
JVM Lecture 5: how to deal with peak push of vertical and horizontal data
When AQS wakes up the thread, I understand why it traverses from the back to the front
DOM事件流 事件冒泡-事件捕获-事件委托
Recommended reading: how can testers get familiar with new businesses quickly?
使用Ansible中的playbook
Development to testing: a six-year road to automation from scratch
JVM Lecture 2: class loading mechanism
ABAP语法学习(ALV)
Excel VBA: summarize calculation output results by date (SUMIF)
nacos注册中心
Please elaborate on the implementation principle of synchronized and related locks
Common solutions for distributed ID - take one
Alibaba three sides: how to solve the problems of MQ message loss, duplication and backlog?
推荐必读:测试人员如何快速熟悉新业务?
没背景、没学历?专科测试员进入互联网大厂是不是真的没希望?
Meta analysis [whole process, uncertainty analysis] method based on R language and meta machine learning
Getaverse,走向Web3的远方桥梁
Why is the value represented by a negative number greater than an integer by 1?
黑吃黑?男子破解赌博网站漏洞,每月“薅羊毛”10多万元