主页 > 知识库 > 服务器 > Apache/IIS >

实战:全面保障FTP服务器的安全

来源: 作者: 发表于:2009-09-29 11:52  点击:
FTP即文件传输协议,是Internet上使用最广泛、信息传输量最大的应用之一。利用它可以从Internet上不同地点的FTP服务器中查询到大

FTP即文件传输协议,是Internet上使用最广泛、信息传输量最大的应用之一。利用它可以从Internet上不同地点的FTP服务器中查询到大量的信息,拷贝到各种各样的文件。

    而且它的一个特点是从一个FTP服务器上下载一个文件通常比从Web服务器上下载相同大小的文件需要的时间更少。如果知道可以从一个Web服务器或者可以从FTP服务器上获得同一个文件,那么就选择FTP服务器以减少下载的时间,特别当文件是一个大文件(大于1MB时)。在Internet上无论是通过FTP客户机软件或是通过WWW浏览器来进行文件传输,最终都要通过FTP协议来实现。

FTP的隐患

    早期FTP并没有涉及安全问题,随着互连网应用的快速增长,人们对安全的要求也不断提高。目前在各种平台上包括UNIX、Linux、Windows NT以及Netware等网络操作系统,都实现了FTP的客户和服务器。

    FTP是为了共享资源、方便用户文件下载而制定的文件传输协议,那么必然有对系统读写的权利,所以它也是整个网络系统的薄弱环节,一些网上的黑客常常利用FTP作为侵入和破坏系统的突破口。他们有时利用FTP将一些监控程序装入系统,以窃取管理口令;有时利用FTP获取系统的passwd文件,从而了解系统的用户信息;有时利用FTP的puts和gets功能,增加系统负担,从而导致硬盘塞满甚至系统崩溃。

FTP主要工作原理
 
    FTP是基于客户端/服务器方式来提供文件传输服务的。一个FTP服务器进程可同时为多个客户进程提供服务,即用户所在的一方是客户方,客户方翻译用户发出的命令,向提供FTP服务的文件服务器传送适当的请求。

    服务器端则一直运行着ftpd守护程序,遵循TCP协议,服务进程ftpd在指定的通信端口监听客户发来的FTP请求,当ftpd确认该用户为合法时,就开始为其客户进程提供文件传输服务了。因此FTP协议在客户和服务器之间通过TCP来建立连接,并利用TCP提供的可靠传输在不同的站点间传输文件。当FTP客户与FTP服务器进行会话时,FTP建立了两个连接,一个是控制连接,一个是数据连接,如图所示。
 

FTP的客户服务器模式
 
    在一个FTP会话中需建立一个控制连接和若干个数据连接。控制连接是执行ftp命令时由客户建立的通向FTP服务器的连接,该连接只能用来传送FTP执行的内部命令以及命令的响应等控制信息而非数据,数据连接是为在服务器与客户端,或两个ftp服务器之间传输文件(即FTP代理传输方式)而建立的连接,该连接是全双工的,允许同时进行双向数据的传输。一旦数据传输结束,就撤消数据连接,再回到交互会话状态,直到客户撤消控制连接,并退出FTP会话为止。

FTP服务器的安全分析

    我们可以通过编辑FTP服务器的配置文件来调整访问权限,在传输文件过程中进行文件加密等措施来达到FTP服务器的安全工作。下面是FTP服务器对用户、目录和文件管理安全问题的分析。

    1)FTP服务器对用户的管理
 
    为了不允许其它用户用匿名ftp访问系统,必须创建一个名为ftp的帐号,给帐号ftp设置一些限制,使得任何远程的ftp用户不能访问系统的其他部分。必须改变此帐号在文件/etc/passwd中的项,使一般的用户不能访问它,这一项是ftp:*:14:50:FTPUser:/home/ftp:。
 
    口令区域中的星号用来保护帐号,它将阻止其他用户以此帐号注册以及控制它的文件或访问系统的其他部分。用户ID为14,是一个独立的ID,注释域是“FTP User”,注册目录是/home/ftp,当ftp用户注册到系统时,它将处于此目录中。

    如果没有设置主目录,需创建一个,并用命令chown为ftp用户改变它的权限。组ID是ftp组的ID,专门为匿名ftp用户设置的。通过为ftp组设置限制来限制匿名的ftp用户。下面是一个在/etc/group文件中找到的关于ftp组的项。对于Linux系统,如果没有此项,应该加上ftp::50。
 
    目录/home/ftp的权限中应该否定写权限。如果不希望ftp用户创建和删除目录,可以用chmod命令设置权限555来禁止写访问,这个命令是chmod555/home/ftp。

    有帮助
    (3)
    50%
    没帮助
    (3)
    50%