FTP服务器

FTP叫文件传输协议,FTP的作用就是用于文件传输,例如我们通过FTP在网络上下载资源吗,在公司内部通过FTP共享各种工作文件,在网站开放的时候通过FTP把网页或者程序上传到服务器。
FTP采用客户端和服务器的工作模式,FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问FTP服务器上面的资源。
FTP采用双TCP连接的工作方式,包括一个控制连接和一个数据连接。
FTP控制连接用于在FTP客户端和FTP服务器之间传输FTP控制命令以及命令执行信息。默认情况下控制连接在服务端使用21号端口。整个FTP会话期间一直保持打开。
FTP数据连接用于数据传输,包括数据上传、下载、文件列表发送等。数据传输结束之后数据连接将终止。默认情况下数据连接在服务器端使用20号端口

FTP有两种数据传输方式

主动方式是由服务器主动发起连接,叫主动方式
主动方式也叫PORT方式,是FTP协议最初定义的数据传输连接方式
FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令
FTP客户端通过向FTP服务器发送PORT命令。告诉服务器该客户端用于传输数据临时端口号
在传送数据的时候,服务器端通过自己的TCP20端口连接到客户端的临时端口,建立数据传输通过道
双方完成数据传输,发送数据的一方主动关闭连接

被动方式

被动方式叫PASV方式,由于服务器总是被动接收客户端的请求,所以叫被动模式
建立控制通道,和主动方式类似
建立连接后,FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式,FTP服务器收到PASV命令后,随机打开一个端口号大于1024的端口。并且通知客户端在这个端口上传输数据的请求
客户端随机选择一个端口,和FTP服务器上指定的临时端口建立连接
双方完成数据传输,发送数据的一方主动关闭连接

需要注意的是很多位于防火墙后面的FTP服务器不支持被动方式,应为管理员可能只开放了20和21端口,由于随后的连接要使用大于1024后的随机端口,所以客户端无法穿过防火墙打开FTP服务器的临时端口,不过防火墙由不同厂商的解决方案。
很多内网的客户端不能用主动方式登陆FTP服务器,因为从服务器的20号端口无法和内部网络的客户端提供临时端口建立TCP连接。

FTP的文件传输模式

ASCII传输模式
只有文本文件才使用ASCII传输模式。如果在远程机器上运行不懂的操作系统,原封不动的把文件传送过去给对方的话,对方打开是乱码的。不同的操作系统使用的一些字符也不一定相同
使用ASCII传输模式的时候,FTP会自动的调整文件内容,把文件解释成另外那台计算机存储文件文件的格式。
二进制数据传输模式

图像文件、压缩文件、可执行文件使用二进制数据传输模式
二进制模式不会对文件进行更改,效率也高
注意:文本文件可以使用二进制的模式传输,但是可执行文件不能以ASCII传输模式传输。

安装FTP服务器

实验环境:
VM虚拟机网络适配器:修改为VMnet1仅主机模式
虚拟机IP:192.168.3.128
掩码:255.255.255.0
安装FTP在服务器管理器添加觉得中安装,由于FTP是WEB服务器的一部分,所以在服务器角色勾选WEB服务器。

47241-9vdpxaj8myo.png

然后一直下一步,到了角色服务,勾选FTP服务,这里有两个选项,我们勾选第一个就可以了

57841-aa432p87dw.png

27013-do12hf4i6po.png

如果已经安装过WEB服务器的话,只要在服务器觉得中展开WEB服务器选择FTP就可以了。安装完成之后,点IIS之后可以看到多出了FTP服务器,右击网站弹出对话框选择添加FTP站点

24889-tu4r4a47df.png

接着填写FTP服务器的名字和物理路径(我这里为了测试使用WEB服务器的根目录)

81262-uxiracdun9l.png

来到下一步,这里IP地址选择全部未分配,端口使用21不变,如果IP地址指定了IP地址,就需要使用特定的IP地址来访问。如果修改了端口号,在访问的时候就需要填写端口号,SSL选择无。

45549-lz4ko06mh1i.png

来到身份验证和授权信息这一步,把匿名和基本勾选,这里就不需要密码来登陆了。然后权限把读和写都勾选上去。

07550-w5cxpifup2d.png

创建好了之后,在浏览上面输入ftp://127.0.0.1,就可以访问到FTP服务器了。

96886-rlyvebsqp8.png

使用资源管理器打开访问FTP服务。也同样是可以的,由于之前设置了读和写的权限,我们可以上传和下载文件。

FTP服务器的管理

由于我们创建的FTP服务器是没有要求输入凭据的,这样是很不安全,这里就需要为FTP进行配置。我们可以对FTP配置IP地址限制、身份验证、授权规则、请求筛选。
这里开启一台VM虚拟机,设置网卡为仅主机模式,开启之后配置IP地址为192.168.3.129。一开始我们可以访问FTP服务器

61838-6xm042tjlaw.png

在FTP服务器上,进入FTP站点,会看到FTP IP地址和域限制,点击进去之后右边有配置选项,选择添加拒绝条目,把单个地址写入进去,也就是192.168.3.129

23700-m17keiaeig8.png

在回到客户端上面,这里就限制了IP访问FTP服务器了。

72114-mnx08j7sem.png

IP地址限制只是起到一定的作用,现在配置FTP的用户名和密码。点击进入FTP站点,可以看到FTP身份验证,进入之后又基本身份验证和匿名身份验证,并且都是启用状态,我们把匿名身份验证给禁用了!

80030-hmmixx1549v.png

85360-wuj9s8j3bka.png

禁用之后返回客户端,这个时候就需要输入用户名密码了,我们把服务器的密码输入进去,也就是管理员账户,即可登陆进去,但是这个做法十分不恰当。在实际中一般都不会使用管理员的账户和密码。
现在创建FTP账户密码,在计算机管理==>本地用户组里面添加FTP访问的账户

93524-04f7mr2qj0c8.png

创建好了FTP用户之后,要对FTProot文件进行权限限定,把刚刚创建的FTP用户添加进来,并且对他进行访问权限的限定。

71448-vbg818evdo8.png

FTP授权规则
接下里,我们配置匿名用户可以查看和读取FTP服务器上面的资源,如果是使用账户密码登陆的用户可以读取和上次文件。
进入FTP站点,找到FTP授权规则并且打开,这里是默认的规则,我们把它删除

08978-onryk9xz4g.png

接着我们在右边选择添加运行规则,选择匿名用户,并且把权限上的读取给勾选。这样就能够读取内容不能够上传文件了。

11727-9at28cdl1u.png

接下俩配置用户名密码登陆的权限,选择指定用户,这里把刚刚创建的FTP用户填写进去,并且在权限里面勾选读取和写入权限!接着把FTP身份验证中启用匿名身份验证

60669-26079pkediqi.png

25850-7mx0wwv1x33.png

当我们匿名登录到ftp服务器的时候是不允许我们创建项目的
接着右击空白处,选择登陆,输入FTP的账户密码。这样我们就可以上传、修改和创建文件了

27928-new43bfro2g.png

82884-7buh0o53idm.png

FTP请求筛选
假如有时候我们上传一些文件上去不希望特定用户访问,或者不希望上传特定的文件,例如可执行文件。这个时候就需要用到FTP的请求筛选了。进去FTP站点,选择FTP请求筛选。进来之后可以看到有文件扩展名、隐藏段、拒绝的URL序列和命令。这里我们使用第一个文件扩展名
我们上传一个.php文件到FTP服务器,这个时候客户端时可以访问到这个php文件的

56500-90zznhdlmjr.png

接下来我们在文件扩展名这里创建拒绝文件扩展名,填入.php,然后回到客户端再次查看发现php文件没有了

73526-yspav4mhpu.png

92766-ge5q9atnyyd.png


本文由 wulaoban 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论