通过FTP站点下载文件是目前最常用的传输文件方法之一,特别是对于企业用户来说,公司建立一个专门的FTP服务器提供给员工,让他们通过这个服务器共享资源是最便利的办法。不过作为网络管理员的你是否真正了解FTP的安全呢?不要以为设置个复杂的管理员帐户密码就可以万事无忧了,也不要以为将系统安装上最新的补丁或者选择最新版SERV-U等FTP搭建工具就可以万无一失了。今天就由笔者带领为大家介绍在默认情况下FTP站点传输数据方面的漏洞,当然在文中还会为读者介绍如何弥补这些漏洞。
一、破解FTP用户名和密码 首先我们要知道默认情况下FTP站点信息是用明文进行传输的,没有进行任何的加密。也就是说当用户登录FTP站点输入用户名和密码时,这些信息是没有加密的。非法用户可以通过sniffer等工具将这些信息还原成本来面目。
实战:通过sniffer将FTP站点的用户名和密码还原成明文
环境描述:
公司网络中AB两台计算机通过交换机相互连接到同一个子网,B是员工计算机,一名员工通过他访问公司的FTP服务器,登录FTP时使用自己的用户名和密码。A是我们安装了sniffer的计算机,通过sniffer我们可以监测出使用B计算机的员工访问FTP服务器的用户名和密码。
实现方法:
第一步:首先在A计算机上安装强大的sniffer工具,并启动该程序。
第二步:在sniffer软件中通过上方的"matrix"按钮启动监测界面。
第三步:打开监测界面后我们就可以开始监测网络中的数据包了,通过菜单栏的"capture->start"启动。
第四步:在检测数据包窗口中我们点左下角的objects标签,然后选择station,这样将把当前网络中所有通信都显示在窗口中。
第五步:这时候如果B计算机的员工使用电脑登录了FTP服务器,那么我们在sniffer中点菜单的"capture->stop and display"。
第六步:这里假设我们FTP服务器的IP地址为211.154.80.30,那么我们从显示的地址列表中找到关于211.154.80.30这个IP的数据包,然后点下方的"DECODE"按钮进行数据包再分析。
第七步:在"DECODE"(反编码)界面中我们就可以对关于211.154.80.30的所有数据包进行分析了。我们一个一个的分析数据包,分析到大概第十二个数据包时出现用户名信息,我们可以从界面中看到用户名为softer。
第八步:继续往下看,到了第十四个数据包的时候就可以看到密码了,密码以明文的形式显示在sniffer中,密码为pacino。
至此我们就通过sniffer工具将员工在FTP服务器上的用户名和密码破解出来,该方法在员工和安装了sniffer的计算机处在同一个子网的情况下有效。
二、加密FTP站点信息的传输 既然知道了FTP服务器是以明文方式传输数据的,特别是用户名和密码传输的安全性极差,信息很容易被盗,虽然FTP提供了SSL加密的功能,不过默认情况下是没有启用的,如大家常用的Serv-U FTP服务器(简称Serv-U)。所以说为了保证传输的数据信息不被随意窃取,有必要启用SSL功能,提高服务器数据传输的安全性。我们以Serv-u为例进行介绍来弥补这个安全缺陷。
小提示:什么是SSL加密协议?SSL协议(Secure Socket Layer,安全套接层)是由网景(Netscape)公司推出的一种安全通信协议,它能够对信用卡和个人信息提供较强的保护。SSL是对计算机之间整个会话进行加密的协议。在SSL中,采用了公开密钥和私有密钥两种加密方法。所以使用SSL协议后我们就可以保证网络中传输的数据不被非法用户窃取到了。
(1)安装Serv-U服务器
由于安装Serv-U的文章比较多,所以本文就不详细介绍了。(如图6)安装完毕后我们要建立一个FTP服务器的域并设置相应的用户名和密码。
(2)创建SSL证书
要想使用Serv-U的SSL功能,需要SSL证书的支持才行。虽然Serv-U在安装之时就已经自动生成了一个SSL证书,但这个默认生成的SSL证书在所有的Serv-U服务器中都是一样的,非常不安全,所以我 们需要手工创建一个自己独特的SSL证书。
第一步:在"Serv-U管理员"窗口中,展开"
本地服务器->设置"选项,然后切换到"SSL证书"标签页。
第二步:创建一个新的SSL证书。首先在"普通名称"栏中输入FTP服务器的IP地址,接着其它栏目的内容,如电子邮件、组织和单位等,根据用户的情况进行填写。
第三步:完成SSL证书标签页中所有内容的填写后,点击下方的"应用"按钮即可,这时Serv-U就会生成一个新的SSL证书。
(3)启用SSL功能
虽然为Serv-U服务器创建了新的SSL证书,但默认情况下,Serv-U是没有启用SSL功能的,要想利用该SSL证书,首先要启用Serv-U的SSL功能才行。
第一步:要启用Serv-U服务器中域名为"softer"的SSL功能。在"Serv-U管理员"窗口中,依次展开"本地服务器->域->softer"选项。
第二步:在右侧的"域"管理框中找到"安全性"下拉列表选项。这里Serv-U提供了3种选项,分别是"仅仅规则FTP,无SSL/TLS进程"、"允许SSL/TLS和规则进程"、"只允许SSL/TLS进程",默认情况下,Serv-U使用的是"仅仅规则FTP,无SSL/TLS进程",因此是没有启用SSL加密功能的。
第三步:在"安全性"下拉选项框种选择"只允许SSL/TLS进程"选项,然后点击"应用"按钮,即可启用softer域的SSL功能。
小提示:启用了SSL功能后,Serv-U服务器使用的默认端口号就不再是"21"了,而是"990"了,这点在登录FTP的时候一定要留意,否则就会无法成功连接FTP服务器。
(4)使用SSL加密连接FTP
启用Serv-U服务器的SSL功能后,就可以利用此功能安全传输数据了,但FTP客户端程序必须支持SSL功能才行。如果我们直接使用IE
浏览器进行登录则会出现图9显示的错误信息,一方面是以为没有修改默认的端口21为990,另外
ie浏览器不支持SSL协议传输。
当然支持SSL的FTP客户端程序现在也比较多,笔者以"
Flash FXP"程序为例,介绍如何成功连接到启用了SSL功能的Serv-U服务器。
第一步:运行"
flashfxp"程序后,点击"会话->快速连接"选项,弹出"快速连接"对话框,在"服务器或URL"栏中输入Serv-U服务器的IP地址,在"端口"栏中一定要输入"990",这是因为Serv-U服务器启用SSL功能后,端口号就从"21"变为"990"。
第二步:输入可以正常登录FTP服务器的"用户名"和"密码"。
第三步:切换到"SSL"标签页,选中"绝对SSL"选项,这一步骤是非常关键的,如果不选中"绝对SSL",就无法成功连接到Serv-U服务器。最后点击"连接"按钮。 根据实际传输情况在绝对SSL下方的四个选项进行选择即可。
第四步:当用户第一次连接到Serv-U服务器时,Flash FXP会弹出一个"证书"对话框,(如图12)这时用户只要点击"接受并保存"按钮,将SSL证书下载到本地后,就能成功连接到Serv-U服务器,以后和Serv-U服务器间的数据传送就会受到SSL功能的保护,不再是以明文形式传送,这样就不用再担心FTP账号被盗,敏感信息被窃取的问题了。在Flash FXP的下方我们也会看到一个小锁的标志了,他代表当前传输是加密安全的传输。
小提示:如果我们仅仅选择接受则每次登录FTP时都会弹出这个证书对话框。
总结:通过设置使用SSL进行加密传输的FTP站点就可以有效的保护自己服务器上的资源不被别人随意偷窥了,只有通过认证的用户才能下载到自己中意的文件资源。而且传输过程中的所有数据都是进行加密的,网络中的其他用户使用类似sniffer的软件是无法将登录信息还原成明文的,即使能够获得传输数据也是经过加密的,一点价值也没有。