FTP的传输原理

FTP的传输原理

FTP(Flie Transfer Protocol)是相当古老的传输协议之一,主要功能是在服务器与客户端之间进行文件的传输。(明文传输)

1.1FTP功能介绍

FTP服务器的功能除了单纯的进行文件传输管理之外,依据服务器软件的配置架构,它还可以提供以下几个主要功能:

1.不同等级的用户身份登录:

  1. 实体用户(real user);
  2. 访客(guest);
  3. 匿名用户(anonymous);

2.命令记录与日志文件记录

FTP可以利用系统的syslogd来进行数据的记录,包括(使用过的命令与用户传输数据<传输时间、文件大小等>的记录);

3.限制用户活动的目录:(change root,简称chroot)

登录FTP后,显示的根目录就是自己用户主目录的内容,这种环境称之为(change root),即改变根目录的意思。
当一个恶意的用户以FTP登录你的系统中,如果没有chroot,他可以到/etc,/usr/local,/home等其他重要目录下面查看文件数据,尤其是很重要的/etc/下面的配置文件,如/etc/passwd等。

1.2FTP的工作流程与使用到的端口

FTP服务器使用了两个连接,分别是命令通道与数据流通道(ftp-data)
数据传输通道是在有数据传输的行为时才会建立的通道,并不是一开始连接到FTP服务器就立刻建立的通道;

1.3FTP服务器的主动式连接:

在这里插入图片描述1)建立命令通道的连接;
2)通知FTP服务器端使用Active且告知连接的端口号;
3)FTP服务器主动向客户端连接。

在主动连接的FTP服务器与客户端之间具有防火墙的

在这里插入图片描述1)用户与服务器间命令通道的建立;
2)用户与服务器间数据通道建立时的通知;
3)服务器主动连到NAT等待传递至客户端的连接问题。

由于通过NAT转换后,FTP服务器只能得知NAT的IP而不是客户端的IP,因此FTP服务器会以port 20主动向NAT的port BB发送主动连接的请求。但NAT并没有启动port BB来监听FTP服务器的连接。
有时候连接上了FTP服务器(命令通道已建立),但是无法取得文件名的列表,而是超过一段时间后显示“Can’t build data connection:Connection refused,无法进行数据传输”之类的信息,肯定就是这个原因。

目前有两个简易方法可以克服这个问题:
1.使用iptables所提供的FTP检测模块:

使用modprobe这个命令来加载ip_conntrack_ftp及ip_nat_ftp等模块,这几个模块会主动地分析目标是port 21 的连接信息。

2.客户端选择被动式(Passive)连接模式

1.4客户端选择被动式连接模式:

在这里插入图片描述1)用户与服务器间命令通道的建立;
2)客户端发出PASV的连接要求;
3)FTP服务器启动数据端口,并通知客户端连接;
4)客户端随机取用大于1024的端口进行连接。

被动式FTP数据通道的连接方向是由客户端向服务器端连接的。

1.5FTP的安全性问题与替代方案

因为SSH技术的产生,目前我们已经有较为安全的FTP了,那就是SSH提供的sftp这个server,这个sftp-server最大的优点就是:在上面传输的数据是经过加密的

如果真的要架设FTP网站,应该注意以下几个事项:

1}随时更新到最新版本的FTP软件,并随时注意漏洞信息;
2}善用iptables来规定可以使用的FTP网络;
3}善用TCP_Wrappers来规划可以登录的网络;
4}善用FTP软件的设置来限制使用你的FTP服务器的用户的不同的权限;
5}使用Supper daemon(超级守护程序)来管理你的FTP服务器;
6}随时注意用户的用户主目录以及匿名用户登录的目录的文件权限;
7}若不对外公开的话,或许也可以修改FTP的port;
8}也可以使用FTPs这种加密的FTP功能。

1.6开放什么身份的用户登录

1.开放实体用户的情况(Real user)
1)使用替代的FTP方案较好
由于实体用户可以通过网路连接到主机来进行工作(例如SSH),因此没有必要开启。
2)限制用户能力,如chroot与/sbin/nologin等
2.访客身份(Guest)
1)仅提供需要登录的账号即可,不需要提供系统上所有人均可登录的环境;
2)在服务器的设置当中,我们需要针对不同的访客给他们不同的用户主目录
3)针对这样的用户身份,需要设置较多的限制,包括:上传(下载)文件数目与硬盘内容的限制、连接登录的时间限制、许可使用的命令限制,例如:不允许使用chmod等
3.匿名登录用户(anonymous)
提供匿名登录是一件相当危险的事情
果真要开放匿名用户登录时,很多限制都要进行,这包括:
1)允许的工作命令要减少很多,几乎就不许匿名用户使用命令;
2)限制文件传输的数量,尽量不要允许上传数据的设置;
3)限制匿名用户同时登陆的最大的连接的数量,可以控制盗连。

1.7常见错误分析

1.当出现“426 data connection closed,transfer aborted”提示时,表示你采用了主动模式的话,而防火墙禁止了来自FTP服务器的主动连接。

2.如果出现“550 Passive mode notallowed on this server”的信息地,则表明FTP服务器被设置成了不支持被动模式的连接。

3.除此之外,“数据Socket错误,连接已超时”的错误也非常多见,这同样是由传输模式设置不正确引起的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值