avatar

Catalog
网络安全基础06(下):FTP服务器

定义

FTP(File Tranfer Protocol),文件传输协议。

端口

TCP 20/21

FTP工作方式

FTP的工作方式分为两种,主动模式被动模式。其选择权在于客户机。下面根据温晓飞老师的图,来简单介绍这两种模式的工作方式。

主动模式

先看左边的主动模式,客户机会随机选择一个端口,例如50001,向服务器发送FTP请求(此时已和服务器的21端口建立连接),服务器接收到请求后,会回复客户端要求验证客户机的用户名(User)和密码(Password)。接着客户机会发送相应的信息,完成验证后,可以进行数据传输。

此时,若客户发起请求,例如下载一个文件,在主动模式下,客户机会先通过方才建立连接的50001端口,向服务器的21端口发送一条消息,告诉服务器自己要用哪一个端口(随机选择的)接收文件数据,例如50002。然后,服务器会打开20端口,并通过该端口向客户机的50002端口发送数据

被动模式

被动模式与21端口的连接过程,与主动模式一样。

当客户机试图下载文件时,并不会事先告诉服务器自己要用哪一个端口接收,而且服务器会事先通过已经建立连接的21端口告诉客户机自己要用哪一个端口(随机选择的,例如20001)给客户机传送数据。当客户机接收到服务器发来的数据时,会随机选择一个端口,例如50002,来接收数据。

关于防火墙

防火墙会限制端口对数据的接收,若一个客户机开了防火墙,且没有开放某个端口,此时客户机将接收不到别人向此端口发送的数据,但是自己可以通过该端口向外发送数据(第一次主动向别人发送消息,可以建立连接,防火墙不再影响已经建立连接的通话,好比说打开防火墙,就是让一个人性格变的内向,任何人对他说话,他都不会理睬,但是有一天他看上了一个女生,然后主动向这个女生搭讪,这时,下次女生找她聊天时,他就会回复这个女生)。主动模式下,若客户机开了防火墙,则很大可能接收不到FTP服务器上的数据,原因是,用来接收数据的端口未被防火墙放行,此时服务器的20端口发送的数据被拒收了。被动模式下,则反过来,若服务器开了防火墙,那么用户就很难获取到数据了,在生产环境下,为了安全起见,服务器防火墙通常都是打开的,因此想要从服务器下载文件,一般选择主动模式,并关掉自己的防火墙

FTP工具

客户端:8UFtp

服务器端:IIS,FTPserver,Serv-U

这里简单介绍一下几个服务器端的FTP工具,IIS是微软自家的,操作较为繁琐,但是相对稳定,允许大量用户同时访问。适用于生产环境。不过IIS仅限于服务器版本的Windows系统,例如Win7/Win10,则可以考虑下述工具。

FTPserver属于迷你型FTP服务器,适用于少量用户间的FTP服务搭建,它的使用较为简单,可以创建与系统无关的FTP账号供用户登录,对于所选文件夹或文件,可自动获取最高权限,因此只需要在软件中设置用于对文件夹或文件的权限即可,不需要单独设置文件本身的NTFS权限

Serv-U具备FTPserver已拥有的所有功能,并且与IIS同样稳定,可用于生产环境。Serv-U可以设置虚拟路径,用来实现不同用户对主文件夹外的文件进行访问。例如,A班和B班的教学进度不同,因此它们的教材不同,分别存于A文件夹与B文件夹。但此时有一份iso镜像文件,两个班的学生都需要使用,若将iso文件各拷贝一份放入两个文件夹,就比较浪费空间了。此时可以将iso镜像文件所在的文件夹设置成虚拟路径,并将该路径添加至两个班学生可以访问的路径中。就可以只保存一份实现双方访问同一份文件。此外,Serv-U可以通过设置磁盘配额,限制用户上传文件的总量大小。

实验

实验环境

客户机:Windows XP

服务器:Windows 2003

FTP软件:IIS

使用ftp服务

  1. 前一篇学习Web服务器时,安装IIS实验,已经安装了ftp服务。21端口也已经打开。这里就接着上回的用。打开IIS,FTP站点->默认FTP站点->属性,可以看到一个本地路径,这个路径对应用户通过ftp访问时所进入的目录,紧接着下面是用户对访问时所设置的FTP权限。这里和文件共享很像,用户真正对该目录下文件的权限是FTP权限、NTFS权限经过与运算的结果。通常这样可以全部勾上,然后再单独为用户设置NTFS权限。

  2. 进入该目录,随意新建一个文件。

  3. 切换到客户机(Windows),在地址栏输入ftp://10.1.1.1,访问Ftp服务器。将服务器上的文件下载下来,操作成功。这样简单的ftp服务使用就完成了。

部署ftp站点

  1. 将先前实验的默认FTP站点删除,这里重新部署一个。进入IIS,右键FTP站点->新建->FTP站点。描述就随便写,这里为FTPSite,IP地址与端口名使用默认即可(这里注意,一旦IIS使用了21端口,其它FTP软件例如Serv-U就无法使用该端口了,因此无法同时使用两款软件部署FTP服务器,使用一款时需要关掉另一款

  2. 由于还没有学习到域,FTP用户隔离这里,使用默认即可

  3. 设置路径这里,可以专门新建一个目录供FTP服务的用户使用,我懒,这里使用之前默认FTP站点用的那个。

  4. 这里的权限指的是FTP权限,与共享权限类似,最终用户通过FTP服务访问的文件的权限,是经过FTP权限和NTFS权限进行与运算的结果,因此这里就都勾上就行了,然后再单独设置NTFS权限,NTFS权限可以参考此篇

  5. 接着就创建完成了,进入FTP站点属性->安全账户,将允许匿名连接的勾给去掉。这样,就只有服务器创建的用户可以访问FTP站点。并且可以通过设置文件的NTFS权限,对用户的操作进行限制。这部实验,就和之前介绍的共享文件服务器很像了,这里不再重复演示。

端口小结

Code
1
2
3
4
5
6
7
8
3389端口:	远程桌面
23端口: telnet
445端口: 共享服务
UDP67, 68: DHCP
53端口: DNS
TCP80: HTTP
TCP443: HTTPS
TCP20/21: FTP

参考资料

参考课程:

参考链接:

Author: cataLoc
Link: http://cataloc.gitee.io/blog/2020/10/01/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%9F%BA%E7%A1%8006-%E4%B8%8B-Ftp%E6%9C%8D%E5%8A%A1%E5%99%A8/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶