今天本来计划分析下suricata中协议识别和解析的代码的,准备先从ftp协议开始看,不过看了一会儿代码后,还是觉得有必要对ftp协议的细节先熟悉熟悉。
目录
1、FTP环境搭建工具
1)FTP客户端:
-
Windows系统:FlashFXP 或者 浏览器 或者 文件管理器
-
Linux系统:ftp命令
2)FTP服务器:
-
Windows系统: FileZilla Server 或者 3CDaemon(不支持IPv6)或者 自带的IIS
-
Linux系统:vsftpd
本篇文章,我的FTP客户端和服务器都是在windows系统上。
2、FTP协议介绍
FTP协议(File Transfer Protocol,文件传输协议)是一种用于计算机之间传输文件的标准网络协议。它允许用户在不同的计算机之间进行文件传输和共享。通过FTP协议,用户可以通过网络连接到远程计算机上的FTP服务器,并进行文件上传、下载和管理。
FTP协议的功能非常简单,它不仅可以支持不同平台之间的文件传输,而且还支持多用户和多任务处理。FTP客户端和FTP服务器分别作为不同的实体进行交互。FTP客户端掌握了可以在一个远程服务器上实现的文件系统,而FTP服务器则允许用户上传、下载、删除和修改文件。FTP协议主要有两种模式:主动模式和被动模式。主动模式中,客户端向服务器发送命令,并侦听服务器发送的数据连接。被动模式中,服务器向客户端发送端口号,并侦听客户端连接的数据。FTP协议默认使用TCP协议传输,其控制连接是通过TCP的21端口,数据连接则是通过TCP的20端口。
需要注意的是,FTP协议并没有对数据进行加密处理,因此在数据传输过程中存在安全问题。有一些扩展了FTP协议的协议(比如Secure File Transfer Protocol、SSH File Transfer Protocol等),则包含了加密处理来保证数据的安全传输。
3、FTP文件操作命令列表
序号 |
命令 |
说明 |
1 |
ls |
显示服务器上的目录 |
2 |
get |
从服务器下载指定文件到客户端 |
3 |
put |
从客户端传送指定文件到服务器 |
4 |
open |
连接ftp服务器 |
5 |
quit |
断开连接并退出ftp服务器 |
6 |
cd directory |
改变服务器的当前目录为directory |
7 |
lcd directory |
改变本地的当前目录为directory |
8 |
bye |
退出ftp命令状态 |
9 |
ascii |
设置文件传输方式为ASCII模式 |
10 |
binary |
设置文件传输方式为二进制模式 |
11 |
! |
执行本地主机命令 |
12 |
cd |
切换远端ftp服务器上的目录 |
13 |
cdup |
上一层目录 |
14 |
close |
在不结束ftp进程的情况下,关闭与ftp服务器的连接 |
15 |
delete |
删除远端ftp服务器上的文件 |
16 |
get |
下载 |
17 |
hash |
显示#表示下载进度 |
18 |
mdelete |
删除文件,模糊匹配 |
19 |
mget |
下载文件,模糊匹配 |
20 |
mput |
上传文件,模糊匹配 |
21 |
&nb |