下面小编给大家带来ISA下FTP的解决办法(2)服务器教程(共含5篇),希望能帮助到大家!同时,但愿您也能像本文投稿人“飞行血块”一样,积极向本站投稿分享好文章。
SERVER:ISASP1,IIS
CLIENT:WindowsandXP,CuteFTP
本文主要讨论ISA和FTP在同一台机器上的处理办法。
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(controlconnection)
这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。
几个数据连接(dataconnection)
这些连接用于传输文件和其它数据,例如:目录列表等,
这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。
在FTP协议中,控制连接使用周知端口21,因此使用ISA的IPPACKETFILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。
除此之外,还有另外一种FTP模式,叫做被动模式(passivemod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。
前面我们讲过,FTP协议的数据传输存在两种模式:主动模式和被动模式,这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被动模式是客户端向服务器端发起连接。
我们回到ISA的情况,如果采用被动模式,由于IIS是完全随机的选择一个端口,并告知客户,然后客户进行主动连接,这就意味着在ISA上,你要让所有的端口都允许动态入站连接才行,这样肯定不行,因为太危险了,等于打开了所有的端口连接。
如果采用主动模式(PORTMode),IIS选择好端口后,主动与客户进行连接,这时候不需要像PASV模式那样打开所有的动态入站连接,而且正好相反,我们需要打开所有的动态出站连接即可,安全性增加很多。而且由ISA的IPPACKETFILTER只对ISA本机起作用,不会造成局域网内的客户“放了羊”。
所以,我个人这样做的:
(1)由于IIS和ISA都在一台机器上,所以它俩都在侦听21号端口(IIS默认情况下会侦听所有地址的21端口),所以我们首先要让IIS只侦听内网地址的PORT21,在DOS下,你可以通过NETSTAT-NA>abc.txt,然后打开这个文件,你会看到0.0.0.021LISTENING字样。
输入如下命令:
netstopmsftpsvc(停止FTP服务)
进入\Inetpub\adminscripts\目录
cscriptadsutil.vbssetmsftpsvc/disablesocketpoolingtrue(停止侦听)
netstartmsftpsvc(启动FTP服务)
(2)在IIS控制台里面,ftp->Property->FTPSite->IPAddress改为内网地址,
现在,FTP服务只侦听内网IP的21号端口了。
(3)大家可能这时候有疑问,如果是IIS主动连接客户端,那客户端的防火墙是不是会阻止这个连接(PASV模式不存在这个问题)。为了防止这种情况,我们可以强制IIS不能与客户端的任意端口进行连接,而只有客户端连接IIS的端口进行数据传输。这样就可以解决PORTMODE与客户端防火墙的冲突。方法:修改注册表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,将EnablePortAttack的值由0改为1,然后重新启动FTP服务。
(4)在ISA里面,使用SERVERPUBLISH的方法发布FTP服务,其中:IPaddressofinternalserver填写ISA的内部网卡的IP,IPaddressofexternalserver填写ISA的外部网卡的IP,Mappedserverprotocol选择FTPServer。
(5)然后在IPPacketFilter建立一条新RULES,Protocol->TCP,Direction->Outbound,LocalPort->Dymanic,RemotePort->All。
这是我的解决办法,但是并不完美,主要是:
(1)客户不能使用PASV方法进行连接,原因上面已经讲了。
(2)由于第五条,所以ISA服务器随着保证了对外部访问的限制,却无法限制ISA本机对外部的访问。
FTP是传统的网络服务程序,在本质上是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据,
Linux下搭建FTP服务器教程
,
而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到中间人(man-in-the-middle)这种方式的攻击。所谓
win7iis怎么搭建ftp服务器?win7自带的iis搭建简单的FTP服务器,系统版本需是win7旗舰版,其它版本貌似不带iis,下文小乐哥给大家分享win7iis搭建ftp服务器教程,一起来学学吧!
win7iis搭建ftp服务器教程
第一步:依次进入控制面板–程序和功能–打开或关闭windows功能,如图:
接下来就选择要添加的功能,如图 点击确定,保存之后,再次依次进入 控制面板–系统和安全–管理工具。。。 然后打开Internet信息服务(IIS)管理器,建议发一个快捷方式到桌面上,打开管理器后,请右键单击 网站 然后选择添加FTP站点 然后就填写站点资料吧。物理路径就填你要让别人访问的文件夹,比如我在E盘建立了名为FTP的文件夹 然后就要填IP地址了,对于校园网之类的局域网记得选内网地址。。。外网是访问不了的。。。端口默认21吧 SSL选无 是否自动启动FTP,自己选,如图 IIS的ftp是不能添加密码的,要密码也是用你电脑的账户。。。所以还是选择所有用户吧 然后选择你的站点,到右边找到查看虚拟目录,然后添加虚拟目录 名称随便 然后右键单击你的站点-FTP管理-启动 然后到浏览器中输入。访问一下你的站点吧同Web站点一样,用户也可以使用多种方法来管理FTP站点服务器,例如:设置FTP站点服务器的虚拟目录的访问权限、设置匿名访问、创建用户账户等。
10.2.1 为FTP的虚拟目录设置写权限
在FTP的虚拟根目录中,必须设置写权限才能发布信息。为了提高安全性,可以在准备向服务器发布信息时设置该权限,并在发布结束后立即消除权限。
为FTP的虚拟目录设置写权限的操作步骤如下:
(1) 打开“Internet信息服务”管理器窗口,展开服务器站点。
(2) 在“默认FTP站点”中,右击PBSData,从弹出的快捷菜单中选择“属性”命令,打开“PBSData属性”对话框,如图10-10所示。
图10-10 “PBSData属性”对话框
(3) 在“虚拟目录”选项卡的“FTP站点目录”选项组中,启用“写入”复选框,添加写权限。
(4) 单击“确定”按钮,保存设置。
10.2.2 为已知FTP用户建立账户
如果用户未被授权访问某台Internet主机,则无法在该主机登录,因此,为了保证FTP用户能够顺利登录,应为他们建立账户。
为已知FTP用户建立账户的操作步骤如下:
(1) 打开“Internet信息服务”管理器窗口,并展开服务器节点,
右击“默认FTP站点”,从弹出的快捷菜单中选择“属性”命令,打开“默认FTP站点属性”对话框。切换到“安全账号”选项卡,如图10-11所示。
图10-10 “PBSData属性”对话框
(3) 在“虚拟目录”选项卡的“FTP站点目录”选项组中,启用“写入”复选框,添加写权限。
(4) 单击“确定”按钮,保存设置。
10.2.2 为已知FTP用户建立账户
如果用户未被授权访问某台Internet主机,则无法在该主机登录,因此,为了保证FTP用户能够顺利登录,应为他们建立账户。
为已知FTP用户建立账户的操作步骤如下:
(1) 打开“Internet信息服务”管理器窗口,并展开服务器节点。右击“默认FTP站点”,从弹出的快捷菜单中选择“属性”命令,打开“默认FTP站点属性”对话框。切换到“安全账号”选项卡,如图10-11所示。
图10-11 “安全账号”选项卡
(2) 禁用“只允许匿名连接”复选框,此时将弹出一个消息对话框,表明可能通过网络传输未加的密码,单击“是”按钮即可。
(3) 在“FTP站点操作员”选项组中单击“添加”按钮,打开“选择用户或组”对话框。如图10-12所示。在“名称”列表中选择一个或多个用户名,然后单击“添加”按钮。
图10-12 “选择用户或组”对话框
(4) 单击“确定”按钮,将用户添加到“操作员”列表中。