1、简介

ftp服务器全称叫做file transfor protocol 服务器,中文叫做文件传输协议。

2、所用的端口号

tcp20和21.其中20是数据传输端口,21是控制端口。

3、ftp的工作方式

server有两个进程 一个主进程 负责接收新的请求 若干从进程 负责处理单个请求 

主进程的工作步骤:

监听21号端口 等待client发来的连接请求

启动从属进程 处理client发来的连接请求 

client向server的21号端口发起连接请求时 还会携带一个随机端口 作为建立数据传送的端口 

server使用20号端口与client的提供端口建立数据传送连接

ftp有两种工作模式

1)主动模式 (2步):server主动连接client 

client使用随机端口N 向server的21号端口建立控制连接 发送port命令 通告自己的数据传送端口M

server通过自己的20号端口主动向client的M端口建立数据连接 


#yyds干货盘点# web安全day7:IIS之FTP服务器_数据

问题:client端的防火墙deny外部server主动发起ftp连接(20)

解决:server端防火墙开21端口准入 20端口准出

            client端设置相关应用通过防火墙 


因此不建议在客户端开启防火墙的情况下, 使用主动模式。

2)被动模式(3步):client主动连接server,即server被client连接

client使用随机端口N 向server的21号端口建立控制连接 发送pasv命令 

server随机打开一个高端端口P作为自己的数据传送端口 发送port命令 通告client自己的数据传送端口是P 

client使用随机端口M连接P端口 建立数据连接

#yyds干货盘点# web安全day7:IIS之FTP服务器_数据传输_02

问题:server端的防火墙deny外部client向p端口发送的ftp连接

解决:server端防火墙开21端口准入 设置p端口范围 开启针对p的准入

ftp报文中 port或者pasv报文包含active ip addr 和active port 字段 


注意:主被动模式,选择权在客户机上,所谓主或者被是站在服务器的角度,阐述的是数据传输过程。

4、实验一:创建FTP站点

在做iis的web服务的时候,已经默认开启了ftp服务,所以此时我们不需要特意去打开,我们可以在客户机中进行验证。

#yyds干货盘点# web安全day7:IIS之FTP服务器_数据_03


可以看到我们已经可以访问到服务器的ftp了。


那么我们的默认站点在哪里呢?#yyds干货盘点# web安全day7:IIS之FTP服务器_数据传输_04我们可以在iis管理器中找到ftp站点,查看默认站点的属性信息,可以看到其位置存在于C盘下的inetpub文件夹下的ftproot,我们可以实际在这个文件夹中放一些文件,再次尝试在客户机中进行访问。



#yyds干货盘点# web安全day7:IIS之FTP服务器_用户名_05

没有问题,我们可以访问到它。

#yyds干货盘点# web安全day7:IIS之FTP服务器_数据_06



我还可以更改默认位置,比如修改为我们之前所建立的web服务器的目录,便于我们后期远程对网页内容进行修改。


#yyds干货盘点# web安全day7:IIS之FTP服务器_数据_07


此外,我们也可以将默认的ftp站点删除,自己发布新的ftp站点。


#yyds干货盘点# web安全day7:IIS之FTP服务器_服务器_08

其他的内容都默认就行了。


#yyds干货盘点# web安全day7:IIS之FTP服务器_作业文件_09


完成后,还是可以访问我们希望的内容。

#yyds干货盘点# web安全day7:IIS之FTP服务器_服务器_10


我们在服务器中创建两个新用户,分别是admin和user1.


#yyds干货盘点# web安全day7:IIS之FTP服务器_数据_11


我们关闭ftp站点的允许匿名连接功能,后续所有人的访问都需要输入用户名和口令。



#yyds干货盘点# web安全day7:IIS之FTP服务器_服务器_12


我们在我们的ftp站点的文件夹内新建两个子文件夹,它们分别是作业和笔记,我们基于的场景是老师给笔记文件夹内放置笔记内容,学生向作业文件夹内放置作业内容。它们的权限是不同的,其中老师对于两个文件夹都有完全控制权限,而学生对于作业文件夹只有写入和读取文件夹目录的权限,对于笔记文件夹有读取、读取文件夹目录、读取和允许的权限。

我们给作业文件夹配置安全权限,给admin完全控制权限,给user1写入和列出文件夹目录权限。


#yyds干货盘点# web安全day7:IIS之FTP服务器_用户名_13





我们给笔记文件夹配置安全权限,给admin完全控制权限,让user1继承上级文件夹的默认权限(读取和运行、列出文件夹目录、读取)


我们再次从客户端中尝试登录ftp站点的时候,已经需要输入我们的用户名和口令了。我们分别使用user1和admin的角色去登录,发现能够实现我们预期的需求。

在切换用户的时候,可以直接在文件夹中右键登录进行切换。


#yyds干货盘点# web安全day7:IIS之FTP服务器_用户名_14




注意:用户最终权限为FTP权限与NTFS权限取交集,建议FTP权限全部勾选,然后具体的在NTFS里做。