010A-FTP

FTP介绍

意义:
一般来讲,人们将计算机联网的首要目的就是获取资料,而文件传输是一种非常重要的获取资料的方式。今天的互联网是由几千万台个人计算机、工作站、服务器、小型机、大型机、巨型机等具有不同型号、不同架构的物理设备共同组成的,而且即便是个人计算机,也可能会装有Windows、Linux、UNIX、Mac等不同的操作系统。为了能够在如此复杂多样的设备之间解决问题解决文件传输问题,文件传输协议(FTP)应运而生。

FTP服务器:
Wu-ftpd,Proftpd,Pureftpd,ServU,IIS #Servu为商业版
vsftpd:Ver y Secure FTP Daemon,CentOS默认FTP服务器
高速,稳定,下载速度是WU-FTP的两倍
ftp.redhat.com数据:单机最多可支持15000个并发
客户端软件:
ftp,lftp,lftpget,wget,curl
ftp -A ftpserver port -A主动模式 –p 被动模式
lftp –u username ftpserver
lftp username@ftpserver
lftpget ftp://ftpserver/pub/file #非交互方式
gftp: GUI centos5 最新版2.0.19 (11/30/2008)
filezilla,CuteFtp,FlashFXP,LeapFtp
IE浏览器 ftp://username:password@ftpserver

  • ftp:文件传输协议(File Transfer Protocol,FTP)。华为网络设备用此协议进行版本升级、日志下载和配置保存等业务操作
  • tftp:简单文件传输协议(Trivial File Transfer Protocol,TFTP) 。cisco网络设备用此协议上传下载文件进行系统补丁升级等。另外centos7配置PXE自动化安装centos7时也用到tftp。
  • vsftpd:(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。CentOS默认FTP服务器

FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。FTP协议的传输拓扑如图所示。
在这里插入图片描述
在这里插入图片描述

FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。

  • File Transfer Protocol 早期的三个应用级协议之一
  • 基于C/S结构
  • 双通道协议:数据和命令连接
  • 数据传输格式:二进制(默认)和文本
  • 两种模式:服务器角度
    – 主动(PORT style):服务器主动连接
              命令(控制):客户端:随机port — 服务器:tcp21
              数据:               客户端:随机port —服务器:tcp20
    – 被动(PASV style):客户端主动连接
             命令(控制):客户端:随机port —服务器:tcp21
              数据:               客户端:随机port —服务器:随机port

双通道协议:打开两个tcp连接
命令:都是客户端连接服务器 。
数据连接有主被动之分:服务器主动连接客户端,此时服务器数据端口为tcp20 ,而客户端的端口未知,需要通过命令端口发送客户端协商客户端数据端口,让客户端发送过来数据端口,若客户端方面存在防火墙,则连接失败;而被动连接时,服务器若也存在防火墙,也会导致失败,故ftp适合局域网使用,广域网由于防火墙可能导致失败;一般现在有智能防火墙,只要ftp协议命令端口中传输协商的数据端口传输过来时,防火墙会自动打开该端口,即协议追踪;;数据通道传完数据就断开;客户端可以通过指令决定是用哪种数据端口

命令端口:持久连接

ftp连接两种方式

主动方式建立连接过程

  • 主动方式也称为PORT方式,是FTP协议最初定义的数据传输连接方式,主要特点是:
    – FTP客户端通过向FTP服务器发送PORT指令,告诉服务器该客户端用于传输数据的临时端口号
    – 当需要传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输
  • 在建立数据连接的过程中,由服务器主动发起连接,因此被称为主动方式
    在这里插入图片描述

FTP被动数据传输方式

  • 被动方式也称为PASV方式,被动方式的主要特点是:
    – FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端
    – 当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道, 完成数据传输
  • 在整个过程中,由于服务器总是被动接收客户端的数据连接,因此被称为被动方式
    在这里插入图片描述
实施FTP协议

在这里插入图片描述
R1作为ftp服务器,sw1作为ftp客户端

①、配置sw1的IP和R1的IP,且网络可以通信

<Huawei>system-view                            #进入系统视图
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R1
[R1]in g 0/0/1
[R1-GigabitEthernet0/0/1]ip ad 10.1.11.1 29         #配置g0/0/1的接口ip地址
Feb 19 2020 19:14:36-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/1 has entered the UP state. 
[R1-GigabitEthernet0/0/1]quit

<Huawei>system-view 
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW1
[SW1]interface Vlanif 1
[SW1-Vlanif1]ip ad
[SW1-Vlanif1]ip address 10.1.11.2 29
[SW1-Vlanif1]
Feb 19 2020 19:15:48-08:00 SW1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface Vlanif1 has entered the UP state.
Feb 19 2020 19:15:50-08:00 SW1 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.191.3.1 configurations have been changed. The current change number is 5, the change loop count is 0, and the maximum number of records is 4095.
[SW1-Vlanif1]ping 10.1.11.2                                    #测试是否能ping通R1
 PING 10.1.11.2: 56  data bytes, press CTRL_C to break
    Reply from 10.1.11.2: bytes=56 Sequence=1 ttl=255 time=30 ms
    Reply from 10.1.11.2: bytes=56 Sequence=2 ttl=255 time=1 ms
    Reply from 10.1.11.2: bytes=56 Sequence=3 ttl=255 time=1 ms
    Reply from 10.1.11.2: bytes=56 Sequence=4 ttl=255 time=10 ms
    Reply from 10.1.11.2: bytes=56 Sequence=5 ttl=255 time=1 ms

  --- 10.1.11.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 1/8/30 ms

②、ftp协议实施

[R1]ftp server enable              #在路由器上开启ftp服务
Info: Succeeded in starting the FTP server
[R1]aaa                              #进入aaa视图
[R1-aaa]local-user dhy password cipher dhy123   #添加一个用户dhy,密码dhy123
Info: Add a new user.
[R1-aaa]local-user dhy service-type ftp                  #设置用户dhy的服务类型为ftp
[R1-aaa]local-user dhy privilege level 15               #设置用户dhy的权限最高级别为15
[R1-aaa]local-user dhy ftp-directory ?
  STRING<1-64>  [drive][path]
  flash:        Device name
[R1-aaa]local-user dhy ftp-directory flash:              #设置用户dhy可以操作的目录为flash:
[R1-aaa]q
[R1]q
<R1>save                                                          #保存设置
  The current configuration will be written to the device. 
  Are you sure to continue? (y/n)[n]:y
  It will take several minutes to save configuration file, please wait.......
  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated
<R1>



<SW1>ftp 10.1.11.1
Trying 10.1.11.1 ...
Press CTRL+K to abort
Connected to 10.1.11.1.
220 FTP service ready.
User(10.1.11.1:(none)):dhy           #输入ftp用户名dhy
331 Password required for dhy.
Enter password:                          #输入密码
230 User logged in.

[ftp]dir
200 Port command okay.
150 Opening ASCII mode data connection for *.
drwxrwxrwx   1 noone    nogroup         0 Feb 19 10:02 dhcp
-rwxrwxrwx   1 noone    nogroup    121802 May 26  2014 portalpage.zip
-rwxrwxrwx   1 noone    nogroup      2263 Feb 19 10:02 statemach.efs
-rwxrwxrwx   1 noone    nogroup    828482 May 26  2014 sslvpn.zip
-rwxrwxrwx   1 noone    nogroup       289 Feb 19 11:18 private-data.txt
drwxrwxrwx   1 noone    nogroup         0 Feb 19 11:18 .
-rwxrwxrwx   1 noone    nogroup       686 Feb 19 11:18 vrpcfg.zip
226 Transfer complete.

[ftp]get portalpage.zip
200 Port command okay.
150 Opening ASCII mode data connection for portalpage.zip.
226 Transfer complete.
FTP: 121802 byte(s) received in 0.520 second(s) 234.23Kbyte(s)/sec.

[ftp]

<think>我们首先需要理解用户的需求:用户希望通过eNSP搭建网络,配置SSH和FTP服务,并观察TCP三次握手过程。根据引用[2]和引用[1]的内容,我们可以使用eNSP来模拟SSH的客户端和服务器端,同时配置FTP服务器。为了观察TCP三次握手,我们可以使用Wireshark抓包工具。具体步骤:1.搭建拓扑:使用两台路由器(一台作为SSHClient,一台作为SSHServer和FTPServer)和一台PC(用于运行Wireshark抓包)。2.配置IP地址和路由,确保网络连通。3.配置SSHServer(路由器R2)和FTPServer(同样在R2上配置)。4.配置SSHClient(路由器R1)进行远程登录。5.在连接链路上开启抓包,观察SSH连接建立时的TCP三次握手。6.同样,配置FTP客户端(可以使用路由器R1作为FTP客户端)连接FTP服务器,并观察FTP控制连接建立的TCP三次握手。注意:SSH和FTP都是基于TCP的应用层协议,在建立连接前都会进行TCP三次握手。详细配置步骤:一、拓扑搭建-路由器R1(模拟SSHClient和FTPClient)-路由器R2(作为SSHServer和FTPServer)-使用网线连接R1和R2的接口(例如GE0/0/0)-在R1和R2之间的链路上启动Wireshark抓包(在eNSP中右键单击链路,选择“开始抓包”)二、基础配置1.R1配置:[R1]interfaceGigabitEthernet0/0/0[R1-GigabitEthernet0/0/0]ipaddress10.1.1.124[R1-GigabitEthernet0/0/0]quit2.R2配置:[R2]interfaceGigabitEthernet0/0/0[R2-GigabitEthernet0/0/0]ipaddress10.1.1.224[R2-GigabitEthernet0/0/0]quit3.测试连通性:在R1上ping10.1.1.2,应该能通。三、配置SSHServer(在R2上配置)1.生成RSA密钥对:[R2]rsalocal-key-paircreate(输入密钥长度,默认2048,直接回车)2.启用SSH服务器功能:[R2]sshserverenable3.配置VTY用户界面:[R2]user-interfacevty04[R2-ui-vty0-4]authentication-modeaaa//设置为AAA认证[R2-ui-vty0-4]protocolinboundssh//只允许SSH登录4.配置AAA用户:[R2]aaa[R2-aaa]local-useradminpasswordcipherAdmin@123//创建用户admin,密码Admin@123[R2-aaa]local-useradminservice-typessh//设置用户服务类型为SSH[R2-aaa]local-useradminprivilegelevel15//设置用户权限级别[R2-aaa]quit5.配置SSH用户:[R2]sshuseradminauthentication-typepassword//设置SSH用户认证方式为密码四、配置FTPServer(在R2上配置)1.启用FTP服务:[R2]ftpserverenable2.配置FTP用户:[R2]aaa[R2-aaa]local-userftpuserpasswordcipherFtp@123[R2-aaa]local-userftpuserservice-typeftp[R2-aaa]local-userftpuserftp-directoryflash://设置FTP用户的主目录为flash:[R2-aaa]local-userftpuserprivilegelevel15[R2-aaa]quit五、在R1上作为SSHClient登录R21.在R1上使用stelnet命令登录R2:<R1>stelnet10.1.1.2输入用户名:admin密码:Admin@1232.此时,在Wireshark抓包中可以看到TCP三次握手的过程(SYN,SYN+ACK,ACK),然后开始SSH协议交互。六、在R1上作为FTPClient连接R21.在R1上使用ftp命令连接R2:<R1>ftp10.1.1.2输入用户名:ftpuser密码:Ftp@1232.同样,在Wireshark抓包中可以看到另一个TCP三次握手(因为FTP默认使用21端口,而SSH使用22端口)。七、观察TCP三次握手-在Wireshark中,过滤条件设置为“tcp”,可以观察到:第一个包:SYN(客户端->服务器)第二个包:SYN+ACK(服务器->客户端)第三个包:ACK(客户端->服务器)-注意:SSH和FTP控制连接的三次握手分别对应不同的端口(22和21),所以可以通过端口号区分。八、保存配置在R1和R2上分别执行save命令,保存配置文件。注意:为了成功抓包,需要确保eNSP关联的Wireshark正确安装,并且抓包时选择正确的网卡(通常为VirtualBox的虚拟网卡)。通过以上步骤,就可以在eNSP环境中观察SSH和FTP的TCP三次握手过程。参考文献:[^1]:eNSP中配置SSH和FTP服务器的相关文档[^2]:eNSP——通过Stelnet登录系统网络配置实验[^3]:网络协议大全</think>### 使用eNSP配置SSH与FTP服务观察TCP三次握手 #### 一、实验拓扑搭建 ```mermaid graph LR R1[路由器R1] -- GE0/0/0:20.1.1.1/24 --- R2[路由器R2] R1 -- GE0/0/1:20.1.2.1/24 --- R3[路由器R3] R2 -- GE0/0/1:192.168.1.1/24 --- PC1[PC1:192.168.1.2] R3 -- GE0/0/1:192.168.2.1/24 --- PC2[PC2:192.168.2.2] ``` #### 二、基础配置 1. **路由器R1配置**: ```bash sysname R1 interface GigabitEthernet0/0/0 ip address 20.1.1.2 255.255.255.0 interface GigabitEthernet0/0/1 ip address 20.1.2.2 255.255.255.0 ``` 2. **路由器R2配置**: ```bash sysname R2 interface GigabitEthernet0/0/0 ip address 20.1.1.1 255.255.255.0 interface GigabitEthernet0/0/1 ip address 192.168.1.1 255.255.255.0 ``` 3. **路由器R3配置**: ```bash sysname R3 interface GigabitEthernet0/0/0 ip address 20.1.2.1 255.255.255.0 interface GigabitEthernet0/0/1 ip address 192.168.2.1 255.255.255.0 ``` #### 三、SSH服务配置(路由器R2) ```bash # 生成RSA密钥对 rsa local-key-pair create # 配置VTY用户界面 user-interface vty 0 4 authentication-mode aaa protocol inbound ssh # 配置AAA认证 aaa local-user wenli1 password cipher wenli1 local-user wenli1 service-type ssh local-user wenli1 privilege level 3 # 只读权限 # 启用SSH服务 stelnet server enable ssh user wenli1 authentication-type password ``` #### 四、FTP服务配置(路由器R3) ```bash # 启用FTP服务 ftp server enable # 配置FTP用户 aaa local-user wenli2 password cipher wenli2 local-user wenli2 service-type ftp local-user wenli2 privilege level 15 # 完全权限 # 设置FTP目录 local-user wenli2 ftp-directory flash: ``` #### 五、观察TCP三次握手 1. **启动Wireshark抓包**: - 在R2-R1链路右键选择"数据抓包" - 设置过滤条件:`tcp.port == 22 || tcp.port == 21` 2. **SSH连接过程**: ```mermaid sequenceDiagram PC1->>R2: SYN (Seq=x) R2->>PC1: SYN-ACK (Seq=y, Ack=x+1) PC1->>R2: ACK (Ack=y+1) ``` 3. **FTP连接过程**: ```mermaid sequenceDiagram PC2->>R3: SYN (Seq=a) R3->>PC2: SYN-ACK (Seq=b, Ack=a+1) PC2->>R3: ACK (Ack=b+1) ``` 4. **抓包结果分析**: - **SYN包**:Flags=0x002 (SYN) - **SYN-ACK包**:Flags=0x012 (SYN, ACK) - **ACK包**:Flags=0x010 (ACK) - 序列号验证:$Ack_{server} = Seq_{client} + 1$ #### 六、配置文件管理 1. **保存配置**: ```bash # R2配置保存 save wenli1.zip startup saved-configuration wenli1.zip # R3配置保存 save wenli2.zip startup saved-configuration wenli2.zip ``` 2. **验证启动配置**: ```bash display startup ``` #### 七、连接测试 1. **PC1 SSH登录R1**: ```bash telnet 20.1.1.2 用户名:wenli1 密码:wenli1 ``` 2. **PC2 FTP连接R2**: ```bash ftp 20.1.2.1 用户名:wenli2 密码:wenli2 ``` > **关键点**:通过Wireshark可观察到SSH使用TCP端口22,FTP使用TCP端口21建立连接。三次握手完成后才进行应用层协议交互[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值