搭建FIP服务器的安全隐患跟注意事项是什么
FTP服务器架设详细图解FTP 是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。FTP服务作为Internet最古老的服务之一,无论在过去还是现在都有 着不可替代的作用。在企业中,对于一些大文件的共享,通常采用FTP这种形式来完成,并且由于FTP能消除操作系统之间的差异,对于不同的操作系统之间共享文件的作用就显得尤为突出。
一、FTP服务器的工作方式
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。其中PORT(主动)方式的连接过程是:客户端向服务器的FTP端口 (默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路 来传送数据。而PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
FTP服务器可以以两种方式登录,一种是匿名登录,另一种是使用授权账号与密码登录。其中,一般匿名登录只能下载FTP服务器的文件,且传输速度相对要慢 一些,当然,这需要在FTP服务器上进行设置,对这类用户,FTP需要加以限制,不宜开启过高的权限,在带宽方面也尽可有的小。而需要授权账号与密码登 录,他需要管理员将账号与密码告诉网友,管理员对这些账号进行设置,比如他们能访问到哪些资源,下载与上载速度等,同样管理员需要对此类账号进行限制,并尽可能的把权限调低,如没十分必要,一定不要赋予账号有管理员的权限。
二、利用WINDOWS组件IIS来构件FTP
服务器在架设FTP网站时,对于仅仅作为共享文件这种服务而没有其他特殊要求的,可通过Windows XP/2000/2003操作系统的IIS组件来完成。下面我们来简单进行说明:
1 IIS安装,可按照“开始”——>“设置”——>“控制面板”——>“添加/删除程序”,打开“添加/删除程序”对话框,选中“添加 /删除Windows组件”出现如下图
图1
2 选中“Internet信息服务(IIS)”,查看其详细信息,如图2
图2
3 选中图2中的“文件传输协议(FTP)服务器”项后,单击确定,接下来按照向导至安装完成。
4 打开“开始”——>“程序”——>“管理工具”——>“Internet信息服务”,打开IIS控制台。如图3
图3
5 单击“默认FTP站点”,在右键快捷菜单中选中“属性”,打开“默认FTP站点属性”对话框,如图4
图4
6 在“FTP站点”选项卡中,需要修改“说明”为容易识别的标识,如阿九的FTP站,IP地址修改为当前主机的某个IP地址(在主机具备多IP地址的情况 下)。如本机修改为私有地址“192168112128”,“TCP端口”为默认的FTP端口“21”。如图5
图5
7 在“安全帐号”中选中“允许匿名连接”,如果对于客户端登陆时需要进行身份验证,则可通过“浏览”来选中服务器的Windows用户。如图6、图7
图6
图7
8 在“消息”选项卡中添加FTP服务器的登陆欢迎信息和退出信息,如图8
图8
9 在“主目录”选项卡中选择FTP服务器向外提供服务的主目录,此处可选择“此计算机上的目录”,通过浏览进行选择,或者选择“另一计算机上的共享位置”, 这是FTP服务器向外提供服务的主目录就在其他主机上,格式为“\\{服务器}\{共享名}”,在FTP站点目录下的“读取”、“写入”、“日志访问”对 FTP站点的权限进行配置,如在此处,我们出于安全考虑为匿名anonymous用户通过分配“读取”而不分配“写入”如图9所示
图9
10 在“目录安全性”选项卡中对FTP服务器的访问控制权限进行分配,可通过此处将FTP服务器的访问权限授权给某部分IP用户或者拒绝来自某些IP用户的访 问。注意当选择了“授权访问”后,在下表中的IP地址将被拒绝,如选择“拒绝访问”,下表中的IP地址用户将被授权。如图10
图10
11 至此,FTP服务器架设成功。
三、测试FTP服务器
1 打开“开始”——>“程序”——>“附件”——>“ 命令提示符”,在光标处输入“FTP 192168112128”,如图11
图11
2 输入匿名帐户anonymous,密码为自己的邮件地址,如图12
图12
3 这时可通过FTP的命令对FTP服务器进行操作,如图13
图13
4 通过IE来验证或者获取FTP服务,在IE的地址栏中输入“ ftp://192168112128/”如图14
图15
5 此外还可以通过一些FTP客户端软件来访问,如FLASHFTP、CUTEFTP等。
四、虚拟目录及多站点的配置
1 在FTP的配置过程中,我们经常需要对一个主机提供多个FTP站点来进行FTP共享,此时建立多站点的形式来完成,完成时可通过新建站点的形式,根据新建站点向导一步步完成。如图16
图16
2 这时,可通过一个主机上的不同IP地址来架设,或者通过同一个IP地址,不同的端口号来进行识别。如图17,我们使用端口2121来构建第二个FTP站 点。
图17
3 在FTP的配置过程中,我们经常需要对多个不同路径的目录进行FTP共享,此时可通过虚拟目录来完成,如图16中的新建虚拟目录。通过新建虚拟目录向导完成。虚拟目录是在主目录下通过某一个文件夹链接到其他目录的形式,在主目录中实际不存在此文件夹中的内容,该内容在其他目录下实际存在。如图18 ,图19所示
图18
图19
4 这时,注意需要在提供FTP站点服务的主目录即F:\ 01虚拟仿真下建立一个名为virtual directory的文件夹,否则虚拟目录无法提供FTP共享服务。如图20
图20
图21
五、IIS构建FTP服务器安全性探讨
对于通过IIS构建的FTP服务器,无论是匿名帐户或者是通过授权帐户及密码来访问FTP服务器,由于FTP服务的帐户和密码身份验证的方式均采用明文形 式在网络上传播的,任何主机只要采用数据包截取软件均可截获FTP服务器登陆的帐户及密码。所以其安全性还需要通过其他方式来增强。
六、小结
对于通过IIS来构建FTP服务器,需要注意其硬盘的格式,如该盘为NTFS格式,还需要将其目录设置为共享或者使FTP客户的帐户具备此文件夹的访问权限,如果是FAT32格式,则可通过上述方法来构建。对于其FTP服务器的帐户的安全性,还需要通过SSL加密等形式来加强安全性的验证,以防止帐号被他 人截获。
为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面: 一、 未经授权的用户禁止在服务器上进行FTP操作。 二、 FTP用户不能读取未经系统所有者允许的文件或目录。 三、 未经允许,FTP用户不能在服务器上建立文件或目录。 四、 FTP用户不能删除服务器上的文件或目录。 FTP服务器采取了一些验明用户身份的办法来解决上述第一个问题,主要包括以下几个措施: FTP用户所使用的用户帐号必须在/etc/passwd文件中有所记载(匿名FTP用户除外),并且他的口令不能为空。在没有正确输入用户帐号和口令的情况下,服务器拒绝访问。 FTP守护进程FTPd还使用一个/etc/FTPusers文件,凡在这个文件中出现的用户都将被服务器拒绝提供FTP服务。服务器管理可以建立"不受欢迎"的用户目录,拒绝这些用户访问 只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受匿名FTP连接,匿名FTP用户可用"anonymous"或"FTP"作为用户名,自己的Internet电子邮件地址作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的文件属性进行管理,建议对每个目录及其文件采取以下一些措施: FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。 FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。 FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。 FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。 这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问 作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面: 一、 未经授权的用户禁止在服务器上进行FTP操作。 二、 FTP用户不能读取未经系统所有者允许的文件或目录。 三、 未经允许,FTP用户不能在服务器上建立文件或目录 四、 FTP用户不能删除服务器上的文件或目录。 FTP服务器采取了一些验明用户身份的办法来解决上述第一个问题,主要包括以下几个措施: FTP用户所使用的用户帐号必须在/etc/passwd文件中有所记载(匿名FTP用户除外),并且他的口令不能为空。在没有正确输入用户帐号和口令的情况下,服务器拒绝访问。 FTP守护进程FTPd还使用一个/etc/FTPusers文件,凡在这个文件中出现的用户都将被服务器拒绝提供FTP服务。服务器管理可以建立"不受欢迎"的用户目录,拒绝这些用户访问。 只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受匿名FTP连接,匿名FTP用户可以用"anonymous"或"FTP"作为用户名,自己的Internet电子邮件地址作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的文件属性进行管理,建议对每个目录及其文件采取以下一些措施: FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。 FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。 FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。 FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。 这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。
参考资料:
分类: 电脑/网络
问题描述:
谢谢大家了,当然我也会把我知道的,和大家共享的。
解析:
FTP基础知识
您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章。所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍。否则,很可能折腾几天,最后一事无成。
FTP基础知识
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了端口,你过来连接我”。于是服务器从20端口向客户端的端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了端口,你过来连接我”。于是客户端向服务器的端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。
FTP服务器端的注意事项
一、FTP服务器是公网IP,用公网动态域名;或是内网IP,用内网专业版TrueHost
1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。
2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。
3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。
二、FTP服务器是内网IP,用内网动态域名标准版cmnatproy
这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持PASV方式。
FTP客户端的注意事项
请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。
一、客户端只有内网IP,没有公网IP
从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。
作为FTP站长,有必要掌握FTP的基础知识,然后指导您的朋友如何正确登录您的FTP。
二、客户端有公网IP,但安装了防火墙
如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开 1024以上的高端端口。
三、连接用内网标准版cmnatproy搭建的FTP服务,必须要用PASV方式。连接任何公网FTP服务器、或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。
当然,使用PORT方式的时候,还要满足上面的两个条件。
四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。
在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
IE:
工具 -> Inter选项 -> 高级 -> “使用被动FTP”(需要IE60以上才支持)。
CuteFTP:
Edit -> Setting -> Connection -> Firewall -> “PASV Mode”
或
File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”
FlashGet:
工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”
FlashFTP:
选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”
或
站点管理 -> 对应站点 -> 选项 -> “使用被动模式”
或
快速连接 -> 切换 -> “使用被动模式”
LeechFTP:
Option -> Firewall -> Do not Use
五、请尽量不要用IE作为FTP客户端
IE只是个很粗糙的FTP客户端工具。首先,IE60以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。
FTP建站的详细配置过程
请参考这个网页的说明来配置:
使用Serv-U建立FTP网站
高级话题
一、为什么没有公网IP,也能使用PORT方式登录FTP?
NAT 网关的工作方式是在TCP/IP数据包的包头里找局域网的源地址和源端口,替换成网关的地址和端口。对数据包里的内容,是不会改变的。而使用PORT方式登录FTP的时候,IP地址与端口信息是在数据包里面的,而不是在包头。因此,没有公网IP,使用PORT方式是无法从inter上的ftp服务器下载数据的。
但是,极少数的NAT网关也支持PORT方式。这些NAT网关连数据包里面的内容都扫描,扫描到 PORT指令后会替换PORT方式的IP和端口。在这种NAT网关下面,用PORT方式就没问题了。不过,这些网关也只扫描21端口的数据包,如果FTP 服务器不是用默认的21端口,也无法使用PORT方式。
二、内网可以用PORT访问其他FTP,为什么不能用PORT访问自己的TrueHost FTP?
下面要讨论的问题,只是为了说明一些原理,是不影响实际使用的。如果您没有兴趣深究这些原理,不必花时间看。
内网用户通过支持PORT方式的NAT网关,访问自己本机利用TrueHost建立的FTP服务器,FTP命令链路的建立过程如下:
FTP客户端
101001
端口 <==> ISP NAT网关
6114412
端口 <==> TH服务器
端口21 <==> TH客户端 <==> 用户FTP服务器
101001
端口21
FTP客户端通过ISP的NAT网关、科迈TrueHost服务器、TrueHost客户端,连接用户本机的FTP服务器的21端口。
当需要下载数据的时候,FTP客户端通过这条命令链路,向FTP服务器发送PORT命令。假设命令为:
PORT 10,10,0,1,30,4 (即IP=101001 端口=30256+4=7684)
当命令通过ISP的NAT网关的时候,NAT网关判断目的端口是21,并且是PORT命令,于是,修改命令里的IP和端口,替换为自己的IP和端口,比如:
PORT 61,144,1,2,50,6 (即IP=6114412 端口=50256+6=12806)
用户的FTP服务器最终收到的是上面这个PORT命令。于是,FTP服务器向这个IP和端口发送连接请求,建立数据链路。
用户FTP服务器
101001
端口20 <==> ISP NAT网关
6114412
端口12806 <==> FTP客户端
101001
端口7684
但是,因为NAT网关的公网IP只能接收外来的连接请求。就是说,6114412:12806只能接收其他公网IP的连接请求,对于从NAT内部(101001:20)发起的连接请求,是无法建立连接的。为什么?原因很简单,因为内网IP要访问外网,必须要通过NAT建立映射。于是FTP数据链路无法建立。于是,用户无法在自己的机器上通过21端口访问自己的TrueHost FTP。
我们再来看看,如果FTP端口不是21,比如是22,会发生什么情况呢?在FTP客户端发送PORT命令的时候,NAT网关检测到目标端口是22,因为支持PORT的 NAT网关只监视目的端口是21的数据包,发现目的端口是22的数据包,不做任何处理,完全放行。于是FTP服务器收到的PORT命令依然是PORT 10,10,0,1,30,4。于是FTP服务器向这个IP和端口发送连接请求。
用户FTP服务器
101001
端口20 <==> FTP客户端
101001
端口7684
这种情况下命令链路就可以建立起来了。而且是等于本机连接本机,速度飞快。
综上所述,内网用户无法用PORT方式通过21端口访问自己的TrueHost FTP服务器。如果FTP端口不是21,则可以访问,而且实际上是本机连接本机。
上面的文字,仅仅是为了说明一些原理,不影响实际使用。如果本机访问本机,还要通过FTP的话,就有画蛇添足之嫌了。
0条评论