首页 > 网站 > 建站经验 > 正文

安全的FTP服务器 vsftpd简介

2019-11-02 16:13:54
字体:
来源:转载
供稿:网友

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如:

非常高的安全性需求

带宽限制

良好的可伸缩性

创建虚拟用户的可能性

IPv6支持

中等偏上的性能

分配虚拟 IP 的可能性

高速

vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd 了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的 FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。

由于有了如此多的特性,其中 FTP 服务的安全性应该是最重要的,vsftpd 比其他 FTP 服务器更加优越。WU-FTPD http://www.wu-ftpd.org/ 在这里可以被视作一个反面的例子,因为它在过去的几年中出现了太多的安全缺陷。

附录1:什么是FTP

FTP Transfer Protocol 件传输协议的缩写,在RFC 959中具体说明。

FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。

控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。

数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。

FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式

PORT模式(主动方式)

FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

PASV模式(被动方式)

在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。

如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。

附录2:FTP用户管理解说

FTP服务器对用户的管理,在默认的情况下是根据 /etc/passwd及/etc/group 来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重要的;

推荐文章: 《Linux 用户(user)和用户组(group)管理概述》

匿名ftp 用户的理解

当我们访问各大FTP上访问时,可能我们不去想我们以什么身份登录的,如果他的FTP允许匿名登录的话;比如我们在浏览器上打入;

ftp://mirrors.kernel.org

ftp://ftp:ftp@mirrors.kernel.org

我们会发现上面的两行最终都能访问,而且显示的结果也完全一样,最终都跳到 ftp://mirrors.kernel.org 地址;那我们访问这个FTP时,是不是有用户和密码呢?是的,也是需要在的,只是在服务器端允许匿名访问,而匿名访问的用户名和密码都是ftp,只是我们因为匿名访问,没有感觉到他有用户名和密码罢了。第二个地址就是以ftp用户,密码也是ftp来访问 ftp://mirrors.kernel.org;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表