预览模式: 普通 | 列表

如何在IIS上搭建WAP网站

1.创建一个站点文件夹首先你要创建一个独立于你的主站点的新的站点文件夹(若站点是建立在同一个服务器上面的话),这样你下面要做的改动才不会影响别的站点。

2.在IIS平台创建一个新的MIME类型 先选择WAP站点的属性,再加入MIME类型,然后选择HTTP Headers标签。
  在MIME Map部分,点击File Type并且输入以下信息:

Associated Extension MIME Type
wml text/vnd.wap.wml
wmlc application/vnd.wap.wmlc
wbmp image/vnd.wap.wbmp
wmlsc application/vnd.wap.wmlscriptc
wmls text/vnd.wap.wmlscript
wsc application/vnd.wap/wmlscriptc

完成以后,将会显示以下几种类型:

3.现在,你就可以把你的网站内容加到站点文件夹里面了。
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1709

服务器安全设置之--组件安全设置篇

服务器安全设置之--组件安全设置篇 (非常重要!!!)

A、卸载Wscrīpt.Shell 和 Shell.application 组件,将下面的代码保存为一个.BAT文件执行(分2000和2003系统) 

windows2000.bat
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll 

windows2003.bat

 regsvr32/u C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\System32\wshom.ocx
regsvr32/u C:\WINDOWS\system32\shell32.dll
del C:\WINDOWS\system32\shell32.dll 

B、改名不安全组件,需要注意的是组件的名称和Clsid都要改,并且要改彻底了,不要照抄,要自己改 
  
【开始→运行→regedit→回车】打开注册表编辑器

然后【编辑→查找→填写Shell.application→查找下一个】

用这个方法能找到两个注册表项:

{13709620-C279-11CE-A49E-444553540000} 和 Shell.application 。

第一步:为了确保万无一失,把这两个注册表项导出来,保存为xxxx.reg 文件。

第二步:比如我们想做这样的更改

13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001

Shell.application 改名为 Shell.application_nohack

第三步:那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。

其实,只要把对应注册表项导出来备份,然后直接改键名就可以了, 
改好的例子
建议自己改
应该可一次成功  Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]
@="C:\\WINNT\\system32\\shell32.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]
@="Shell.Application_nohack.1"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]
@="1.1"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]
@="Shell.Application_nohack"

[HKEY_CLASSES_ROOT\Shell.Application_nohack]
@="Shell Automation Service"

[HKEY_CLASSES_ROOT\Shell.Application_nohack\CLSID]
@="{13709620-C279-11CE-A49E-444553540001}"

[HKEY_CLASSES_ROOT\Shell.Application_nohack\CurVer]
@="Shell.Application_nohack.1" 
老杜评论: Wscrīpt.Shell 和 Shell.application 组件是 脚本入侵过程中,提升权限的重要环节,这两个组件的卸载和修改对应注册键名,可以很大程度的提高虚拟主机的脚本安全性能,一般来说,ASP和php类脚本提升权限的功能是无法实现了,再加上一些系统服务、硬盘访问权限、端口过滤、本地安全策略的设置,虚拟主机因该说,安全性能有非常大的提高,黑客入侵的可能性是非常低了。注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。下面是另外一种设置,大同小异。 
  一、禁止使用FileSystemObject组件 
  FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\scrīpting.FileSystemObject\

  改名为其它的名字,如:改为 FileSystemObject_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\scrīpting.FileSystemObject\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  2000注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll 

  2003注销此组件命令:RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll 

  如何禁止Guest用户使用scrrun.dll来防止调用此组件?

  使用这个命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests

  二、禁止使用Wscrīpt.Shell组件

  Wscrīpt.Shell可以调用系统内核运行DOS基本命令

  可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\Wscrīpt.Shell\及HKEY_CLASSES_ROOT\Wscrīpt.Shell.1\

  改名为其它的名字,如:改为Wscrīpt.Shell_ChangeName 或 Wscrīpt.Shell.1_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\Wscrīpt.Shell\CLSID\项目的值

  HKEY_CLASSES_ROOT\Wscrīpt.Shell.1\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  三、禁止使用Shell.Application组件

  Shell.Application可以调用系统内核运行DOS基本命令

  可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\Shell.Application\

  及

  HKEY_CLASSES_ROOT\Shell.Application.1\

  改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  禁止Guest用户使用shell32.dll来防止调用此组件。

  2000使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests
  2003使用命令:cacls C:\WINDOWS\system32\shell32.dll /e /d guests

  注:操作均需要重新启动WEB服务后才会生效。

  四、调用Cmd.exe

  禁用Guests组用户调用cmd.exe

  2000使用命令:cacls C:\WINNT\system32\Cmd.exe /e /d guests
  2003使用命令:cacls C:\WINDOWS\system32\Cmd.exe /e /d guests

  通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。 


 
C、防止Serv-U权限提升 (适用于 Serv-U6.0 以前版本,之后可以直接设置密码)  
  先停掉Serv-U服务

用Ultraedit打开ServUDaemon.exe

查找 Ascii:LocalAdministrator 和 #l@$ak#.lk;0@P

修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。

另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1725

服务器安全设置之--IP安全策略

(仅仅列出需要屏蔽或阻止的端口或协议)
协议 IP协议端口 源地址 目标地址 描述 方式 
ICMP -- -- -- ICMP 阻止 
UDP 135 任何IP地址 我的IP地址 135-UDP 阻止 
UDP 136 任何IP地址 我的IP地址 136-UDP 阻止 
UDP 137 任何IP地址 我的IP地址 137-UDP 阻止 
UDP 138 任何IP地址 我的IP地址 138-UDP 阻止 
UDP 139 任何IP地址 我的IP地址 139-UDP 阻止 
TCP 445 任何IP地址-从任意端口 我的IP地址-445 445-TCP 阻止 
UDP 445 任何IP地址-从任意端口 我的IP地址-445 445-UDP 阻止 
UDP 69 任何IP地址-从任意端口 我的IP地址-69 69-入 阻止 
UDP 69 我的IP地址-69 任何IP地址-任意端口 69-出 阻止 
TCP 4444 任何IP地址-从任意端口 我的IP地址-4444 4444-TCP 阻止 
TCP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鸽子-1026 阻止 
TCP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鸽子-1027 阻止 
TCP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鸽子-1028 阻止 
UDP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鸽子-1026 阻止 
UDP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鸽子-1027 阻止 
UDP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鸽子-1028 阻止 
TCP 21 我的IP地址-从任意端口 任何IP地址-到21端口 阻止tftp出站 阻止 
TCP 99 我的IP地址-99 任何IP地址-任意端口 阻止99shell 阻止 
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1920

服务器安全设置之--本地安全策略设置

安全策略自动更新命令:GPUpdate /force (应用组策略自动生效不需重新启动) 


   开始菜单—>管理工具—>本地安全策略

   A、本地策略——>审核策略 

   审核策略更改   成功 失败  
   审核登录事件   成功 失败
   审核对象访问      失败
   审核过程跟踪   无审核
   审核目录服务访问    失败
   审核特权使用      失败
   审核系统事件   成功 失败
   审核账户登录事件 成功 失败
   审核账户管理   成功 失败 
  B、本地策略——>用户权限分配

   关闭系统:只有Administrators组、其它全部删除。
   通过终端服务拒绝登陆:加入Guests、User(远程管理不能添加User)组
   通过终端服务允许登陆:只加入Administrators组(远程管理必须添加Remote Desktop Users),其他全部删除

  C、本地策略——>安全选项

   交互式登陆:不显示上次的用户名       启用
   网络访问:不允许SAM帐户和共享的匿名枚举   启用
   网络访问:不允许为网络身份验证储存凭证   启用
   网络访问:可匿名访问的共享         全部删除
   网络访问:可匿名访问的命          全部删除
   网络访问:可远程访问的注册表路径      全部删除 
   网络访问:可远程访问的注册表路径和子路径  全部删除 
   帐户:重命名来宾帐户            重命名一个帐户 
   帐户:重命名系统管理员帐户         重命名一个帐户
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1727

2003服务器权限详细设置(WEB服务)

WindowsServer2003 + IIS6.0 + ASP + NET + PHP + PERL + MSSQL + MYSQL 最新服务器安全设置技术实例 

硬盘权限篇 系统服务篇 组件安全设置篇 IIS用户设置篇  服务器安全和性能配置 IP安全策略 本地安全策略 
防御PHP木马 MSSQL安全 启用win防火墙 用户安全设置 Winwebmail全攻略 iis+php+mysql 一般故障解决 

1、服务器安全设置之--硬盘权限篇

   这里着重谈需要的权限,也就是最终文件夹或硬盘需要的权限,可以防御各种木马入侵,提权攻击,跨站攻击等。本实例经过多次试验,安全性能很好,服务器基本没有被木马威胁的担忧了。

硬盘或文件夹: C:\ D:\ E:\ F:\ 类推  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
如果安装了其他运行环境,比如PHP等,则根据PHP的环境功能要求来设置硬盘权限,一般是安装目录加上users读取运行权限就足够了,比如c:\php的话,就在根目录权限继承的情况下加上users读取运行权限,需要写入数据的比如tmp文件夹,则把users的写删权限加上,运行权限不要,然后把虚拟主机用户的读权限拒绝即可。如果是mysql的话,用一个独立用户运行MYSQL会更安全,下面会有介绍。

硬盘或文件夹: C:\Inetpub\  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <继承于c:\> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <继承于c:\> 
SYSTEM 完全控制 
 该文件夹,子文件夹及文件 
 <继承于c:\> 
硬盘或文件夹: C:\Documents and Settings  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
SYSTEM 完全控制 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
SYSTEM 完全控制 USERS组的权限仅仅限制于读取和运行,
绝对不能加上写入权限 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\「开始」菜单  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
SYSTEM 完全控制 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 Users 写入 
 只有子文件夹及文件  该文件夹,子文件夹 
 <不是继承的>  <不是继承的> 
SYSTEM 完全控制 两个并列权限同用户组需要分开列权限 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
SYSTEM 完全控制 此文件夹包含 Microsoft 应用程序状态数据 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Everyone 列出文件夹、读取属性、读取扩展属性、创建文件、创建文件夹、写入属性、写入扩展属性、读取权限 
 
 只有该文件夹 Everyone这里只有读写权限,不能加运行和删除权限,仅限该文件夹 只有该文件夹 
  <不是继承的> <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\DSS\MachineKeys  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Everyone 列出文件夹、读取属性、读取扩展属性、创建文件、创建文件夹、写入属性、写入扩展属性、读取权限 
 
 只有该文件夹 Everyone这里只有读写权限,不能加运行和删除权限,仅限该文件夹 只有该文件夹 
  <不是继承的> <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
SYSTEM 完全控制  
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Cm  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Everyone 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
SYSTEM 完全控制 Everyone这里只有读和运行权限 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Downloader  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无  
 该文件夹,子文件夹及文件 
  <不是继承的> 
SYSTEM 完全控制 
 该文件夹,子文件夹及文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Application Data\Microsoft\Media Index  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <继承于上一级文件夹> 
SYSTEM 完全控制 Users 创建文件/写入数据
创建文件夹/附加数据
写入属性
写入扩展属性
读取权限  
 该文件夹,子文件夹及文件  只有该文件夹 
 <不是继承的>  <不是继承的> 
  Users 创建文件/写入数据
创建文件夹/附加数据
写入属性
写入扩展属性 
 只有该子文件夹和文件 
 <不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\DRM  
主要权限部分: 其他权限部分: 
这里需要把GUEST用户组和IIS访问用户组全部禁止
Everyone的权限比较特殊,默认安装后已经带了
主要是要把IIS访问的用户组加上所有权限都禁止 Users 读取和运行 
 该文件夹,子文件夹及文件 
 <不是继承的> 
Guests 拒绝所有 
 该文件夹,子文件夹及文件 
 <不是继承的> 
Guest 拒绝所有 
 该文件夹,子文件夹及文件 
 <不是继承的> 
IUSR_XXX
或某个虚拟主机用户组 拒绝所有 
该文件夹,子文件夹及文件 
<不是继承的> 

硬盘或文件夹: C:\Documents and Settings\All Users\Documents (共享文档)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files  
主要权限部分: 其他权限部分: 
Administrators 完全控制 IIS_WPG 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <不是继承的> <不是继承的> 
SYSTEM 完全控制 IIS虚拟主机用户组禁止列目录,可有效防止FSO类木马
如果安装了aspjepg和aspupload 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Common Files  
主要权限部分: 其他权限部分: 
Administrators 完全控制 IIS_WPG 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <继承于上级目录> 
CREATOR OWNER 完全控制 Users 读取和运行 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <不是继承的> <不是继承的> 
SYSTEM 完全控制 复合权限,为IIS提供快速安全的运行环境 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Common Files\Microsoft Shared\web server extensions  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Microsoft SQL Server\MSSQL (程序部分默认装在C:盘)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: E:\Program Files\Microsoft SQL Server (数据库部分装在E:盘的情况)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: E:\Program Files\Microsoft SQL Server\MSSQL (数据库部分装在E:盘的情况)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1513

2003服务器权限详细设置

硬盘或文件夹: C:\Program Files\Internet Explorer\iexplore.exe  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Outlook Express  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\PowerEasy5 (如果装了动易组件的话)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Radmin (如果装了Radmin远程控制的话)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
对应的c:\windows\system32里面有两个文件
r_server.exe和AdmDll.dll
要把Users读取运行权限去掉
默认权限只要administrators和system全部权限 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Serv-U (如果装了Serv-U服务器的话)  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
这里常是提权入侵的一个比较大的漏洞点
一定要按这个方法设置
目录名字根据Serv-U版本也可能是
C:\Program Files\RhinoSoft.com\Serv-U
 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Windows Media Player  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\Windows NT\Accessories  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\Program Files\WindowsUpdate  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无
 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制     
 只有子文件夹及文件   
 <不是继承的>   
SYSTEM 完全控制  
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS\repair  
主要权限部分: 其他权限部分: 
Administrators 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
  <不是继承的> <不是继承的> 
CREATOR OWNER 完全控制 虚拟主机用户访问组拒绝读取,有助于保护系统数据
这里保护的是系统级数据SAM 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 


硬盘或文件夹: C:\WINDOWS\IIS Temporary Compressed Files  
主要权限部分: 其他权限部分: 
Administrators 完全控制 USERS 读取和写入/删除 
 该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
  <继承于C:\windows> <不是继承的> 
CREATOR OWNER 完全控制 IIS_WPG 读取和写入/删除 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <继承于C:\windows> <不是继承的> 
SYSTEM 完全控制 建议装了MCAFEE或NOD的用户把此文件夹,禁止写入一些文件类型比如*.EXE和*.com等可执行文件或vbs类脚本 
  该文件夹,子文件夹及文件 
  <继承于C:\windows> 
IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
该文件夹,子文件夹及文件 
<不是继承的> 
Guests 列出文件夹/读取数据 :拒绝 
该文件夹,子文件夹及文件 
<不是继承的> 
 

硬盘或文件夹: C:\WINDOWS\Microsoft.NET\Framework\版本\Temporary ASP.NET Files  
主要权限部分: 其他权限部分: 
Administrators 完全控制 ASP.NET 计算机帐户 读取和运行 
 该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
  <继承于C:\windows> <继承于C:\windows> 
CREATOR OWNER 完全控制 ASP.NET 计算机帐户 写入/删除 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <继承于C:\windows> <不是继承的> 
SYSTEM 完全控制 IIS_WPG 读取和运行 
  该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
  <继承于C:\windows> <继承于C:\windows> 
IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 IIS_WPG 写入(原来有删除权限要去掉) 
该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
<不是继承的> <不是继承的> 
Guests 列出文件夹/读取数据 :拒绝 LOCAL SERVICE 读取和运行 
该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
<不是继承的> <继承于C:\windows> 
USERS 读取和运行 LOCAL SERVICE 写入/删除 
该文件夹,子文件夹及文件 该文件夹,子文件夹及文件 
<继承于C:\windows> <不是继承的> 
    NETWORK SERVICE 读取和运行 
    该文件夹,子文件夹及文件 
    <继承于C:\windows> 
建议装了MCAFEE或NOD的用户把此文件夹,禁止写入一些文件类型,比如*.EXE和*.com等可执行文件或vbs类脚本 NETWORK SERVICE 写入/删除 
该文件夹,子文件夹及文件 
<不是继承的> 

硬盘或文件夹: C:\WINDOWS\system32  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <不是继承的> <不是继承的> 
SYSTEM 完全控制 虚拟主机用户访问组拒绝读取,有助于保护系统数据 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS\system32\config  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <不是继承的> <继承于上一级目录> 
SYSTEM 完全控制 虚拟主机用户访问组拒绝读取,有助于保护系统数据 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS\system32\inetsrv\  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 只有子文件夹及文件 只有该文件夹 
 <不是继承的> <继承于上一级目录> 
SYSTEM 完全控制 虚拟主机用户访问组拒绝读取,有助于保护系统数据 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS\system32\inetsrv\ASP Compiled Templates  
主要权限部分: 其他权限部分: 
Administrators 完全控制 IIS_WPG 完全控制 
 该文件夹,子文件夹及文件   该文件夹,子文件夹及文件 
  <不是继承的>   <不是继承的> 
  IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
该文件夹,子文件夹及文件 
<继承于上一级目录> 
虚拟主机用户访问组拒绝读取,有助于保护系统数据 

硬盘或文件夹: C:\WINDOWS\system32\inetsrv\iisadmpwd  
主要权限部分: 其他权限部分: 
Administrators 完全控制 无 
 该文件夹,子文件夹及文件 
  <不是继承的> 
CREATOR OWNER 完全控制 
 只有子文件夹及文件 
 <不是继承的> 
SYSTEM 完全控制 
  该文件夹,子文件夹及文件 
  <不是继承的> 

硬盘或文件夹: C:\WINDOWS\system32\inetsrv\MetaBack  
主要权限部分: 其他权限部分: 
Administrators 完全控制 Users 读取和运行 
 该文件夹,子文件夹及文件  该文件夹,子文件夹及文件 
  <不是继承的>  <不是继承的> 
CREATOR OWNER 完全控制 IUSR_XXX
或某个虚拟主机用户组 列出文件夹/读取数据 :拒绝 
 只有子文件夹及文件 该文件夹,子文件夹及文件 
 <不是继承的> <继承于上一级目录> 
SYSTEM 完全控制 虚拟主机用户访问组拒绝读取,有助于保护系统数据 
  该文件夹,子文件夹及文件 
  <不是继承的> 
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1648

服务器端口对照表

1 传输控制协议端口服务多路开关选择器
2 compressnet 管理实用程序
3 压缩进程
5 远程作业登录
7 回显(Echo)
9 丢弃
11 在线用户
13 时间
15 netstat
17 每日引用
18 消息发送协议
19 字符发生器
20 文件传输协议(默认数据口)
21 文件传输协议(控制)
22 SSH远程登录协议
23 telnet 终端仿真协议
24 预留给个人用邮件系统
25 smtp 简单邮件发送协议
27 NSW 用户系统现场工程师
29 MSG ICP
31 MSG验证
33 显示支持协议
35 预留给个人打印机服务
37 时间
38 路由访问协议
39 资源定位协议
41 图形
42 WINS 主机名服务
43 "绰号" who is服务
44 MPM(消息处理模块)标志协议
45 消息处理模块
46 消息处理模块(默认发送口)
47 NI FTP
48 数码音频后台服务
49 TACACS登录主机协议
50 远程邮件检查协议
51 IMP(接口信息处理机)逻辑地址维护
52 施乐网络服务系统时间协议
53 域名服务器
54 施乐网络服务系统票据交换
55 ISI图形语言
56 施乐网络服务系统验证
57 预留个人用终端访问
58 施乐网络服务系统邮件
59 预留个人文件服务
60 未定义
61 NI邮件?
62 异步通讯适配器服务
63 WHOIS+
64 通讯接口
65 TACACS数据库服务
66 oracle SQL*NET
67 引导程序协议服务端
68 引导程序协议客户端
69 小型文件传输协议
70 信息检索协议
71 远程作业服务
72 远程作业服务
73 远程作业服务
74 远程作业服务
75 预留给个人拨出服务
76 分布式外部对象存储
77 预留给个人远程作业输入服务
78 修正TCP
79 Finger(查询远程主机在线用户等信息)
80 全球信息网超文本传输协议(www)
81 HOST2名称服务
82 传输实用程序
83 模块化智能终端ML设备
84 公用追踪设备
85 模块化智能终端ML设备
86 Micro Focus Cobol编程语言
87 预留给个人终端连接
88 Kerberros安全认证系统
89 SU/MIT终端仿真网关
90 DNSIX 安全属性标记图
91 MIT Dover假脱机
92 网络打印协议
93 设备控制协议
94 Tivoli对象调度
95 SUPDUP
96 DIXIE协议规范
97 快速远程虚拟文件协议
98 TAC(东京大学自动计算机)新闻协议
101 usually from sri-nic
102 iso-tsap
103 ISO Mail
104 x400-snd
105 csnet-ns
109 Post Office
110 Pop3 服务器(邮箱发送服务器)
111 portmap 或 sunrpc
113 身份查询
115 sftp
117 path 或 uucp-path
119 新闻服务器
121 BO jammerkillah
123 network time protocol (exp)
135 DCE endpoint resolutionnetbios-ns
137 NetBios-NS
138 NetBios-DGN
139 win98 共享资源端口(NetBios-SSN)
143 IMAP电子邮件
144 NeWS - news
153 sgmp - sgmp
158 PCMAIL
161 snmp - snmp
162 snmp-trap -snmp
170 network PostScript
175 vmnet
194 Irc
315 load
400 vmnet0
443 安全服务
456 Hackers Paradise
500 sytek
512 exec
513 login
514 shell - cmd
515 printer - spooler
517 talk
518 ntalk
520 efs
526 tempo - newdate
530 courier - rpc
531 conference - chat
532 netnews - readnews
533 netwall
540 uucp - uucpd

543 klogin
544 kshell
550 new-rwho - new-who
555 Stealth Spy(Phase)
556 remotefs - rfs_server
600 garcon
666 Attack FTP
750 kerberos - kdc
751 kerberos_master
754 krb_prop
888 erlogin
1001 Silencer 或 WebEx
1010 Doly trojan v1.35
1011 Doly Trojan
1024 NetSpy.698 (YAI)
1025 NetSpy.698
1033 Netspy
1042 Bla1.1
1047 GateCrasher
1080 Wingate
1109 kpop
1243 SubSeven
1245 Vodoo
1269 Mavericks Matrix
1433 Microsoft SQL Server 数据库服务
1492 FTP99CMP (BackOriffice.FTP)
1509 Streaming Server
1524 ingreslock
1600 Shiv
1807 SpySender
1981 ShockRave
1999 Backdoor
2000 黑洞(木马) 默认端口
2001 黑洞(木马) 默认端口
2023 Pass Ripper
2053 knetd
2140 DeepThroat.10 或 Invasor
2283 Rat
2565 Striker
2583 Wincrash2
2801 Phineas
3129 MastersParadise.92
3150 Deep Throat 1.0
3210 SchoolBus
3389 Win2000 远程登陆端口
4000 OICQ Client
4567 FileNail
4950 IcqTrojan
5000 WindowsXP 默认启动的 UPNP 服务
5190 ICQ Query
5321 Firehotcker
5400 BackConstruction1.2 或 BladeRunner
5550 Xtcp
5555 rmt - rmtd
5556 mtb - mtbd
5569 RoboHack
5714 Wincrash3
5742 Wincrash
6400 The Thing
6669 Vampire
6670 Deep Throat
6711 SubSeven
6713 SubSeven
6767 NT Remote Control
6771 Deep Throat 3
6776 SubSeven
6883 DeltaSource
6939 Indoctrination
6969 Gatecrasher.a
7306 网络精灵(木马)
7307 ProcSpy
7308 X Spy
7626 冰河(木马) 默认端口
7789 ICQKiller
8000 OICQ Server
9400 InCommand
9401 InCommand
9402 InCommand
9535 man
9536 w
9537 mantst
9872 Portal of Doom
9875 Portal of Doom
9989 InIkiller
10000 bnews
10001 queue
10002 poker
10167 Portal Of Doom
10607 Coma
11000 Senna Spy Trojans
11223 ProgenicTrojan
12076 Gjamer 或 MSH.104b
12223 Hack?9 KeyLogger
12345 netbus木马 默认端口
12346 netbus木马 默认端口
12631 WhackJob.NB1.7
16969 Priotrity
17300 Kuang2
20000 Millenium II (GrilFriend)
20001 Millenium II (GrilFriend)
20034 NetBus Pro
20331 Bla
21554 GirlFriend 或 Schwindler 1.82
22222 Prosiak
23456 Evil FTP 或 UglyFtp 或 WhackJob
27374 SubSeven
29891 The Unexplained
30029 AOLTrojan
30100 NetSphere
30303 Socket23
30999 Kuang
31337 BackOriffice
31339 NetSpy
31666 BO Whackmole
31787 Hack a tack
33333 Prosiak
33911 Trojan Spirit 2001 a
34324 TN 或 Tiny Telnet Server
40412 TheSpy
40421 MastersParadise.96
40423 Master Paradise.97
47878 BirdSpy2
50766 Fore 或 Schwindler
53001 Remote Shutdown
54320 Back orifice 2000
54321 SchoolBus 1.6
61466 Telecommando
65000 Devil
分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1503

主动FTP vs. 被动FTP 权威解释

目录
       
  • 开场白
  • 基础
  • 主动FTP
  • 主动FTP的例子
  • 被动FTP
  • 被动FTP的例子
  • 总结
  • 参考资料
  • 附录 1: 配置常见FTP服务器


开场白

处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

本文也许不像题目声称的那样是一个权威解释,但我已经听到了很多好的反馈意见,也看到了本文在许多地方被引用,知道了很多人都认为它很有用。虽然我一直在找寻改进的方法,但如果你发现某个地方讲的不够清楚,需要更多的解释,请告诉我!最近的修改是增加了主动FTP和被动FTP会话中命令的例子。这些会话的例子应该对更好地理解问题有所帮助。例子中还提供了非常棒的图例来解释FTP会话过程的步骤。现在,正题开始了...

基础

FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21-命令端口和20-数据端口。但当我们发现根据(FTP工作)方式的不同数据端口并不总是20时,混乱产生了。

主动FTP

主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>;1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

  • 任何端口到FTP服务器的21端口 (客户端初始化的连接 S<-C)
  • FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口 S->C)
  • FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口 S->C)
  • 大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C)


画出来的话,连接过程大概是下图的样子:


在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。

主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。

主动FTP的例子

下面是一个主动FTP会话的实际例子。当然服务器名、IP地址和用户名都做了改动。在这个例子中,FTP会话从 testbox1.slacksite.com (192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到testbox2.slacksite.com (192.168.150.90),一个运行ProFTPd 1.2.2RC2的Linux工作站。debugging(-d)选项用来在FTP客户端显示连接的详细过程。红色的文字是 debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。

仔细考虑这个对话过程我们会发现一些有趣的事情。我们可以看到当 PORT 命令被提交时,它指定了客户端(192.168.150.80)上的一个端口而不是服务器的。当我们用被动FTP时我们会看到相反的现象。我们再来关注PORT命令的格式。就象你在下面的例子看到的一样,它是一个由六个被逗号隔开的数字组成的序列。前四个表示IP地址,后两个组成了用于数据连接的端口号。用第五个数乘以256再加上第六个数就得到了实际的端口号。下面例子中端口号就是( (14*256) + 178) = 3762。我们可以用netstat来验证这个端口信息。

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178

200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------   3 slacker    users         104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

被动FTP

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。

在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >; 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P >; 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:

  • 从任何端口到服务器的21端口 (客户端初始化的连接 S<-C)
  • 服务器的21端口到任何大于1023的端口 (服务器响应到客户端的控制端口的连接 S->C)
  • 从任何端口到服务器的大于1023端口 (入;客户端初始化数据连接到服务器指定的任意端口 S<-C)
  • 服务器的大于1023端口到远程的大于1023的端口(出;服务器发送ACK响应和数据到客户端的数据端口 S->C)


画出来的话,被动方式的FTP连接过程大概是下图的样子:


在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。然后在第2步中,服务器返回命令"PORT 2024",告诉客户端(服务器)用哪个端口侦听数据连接。在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。最后服务器在第4 步中给客户端的数据端口返回一个"ACK"响应。

被动方式的FTP解决了客户端的许多问题,但同时给服务器端带来了更多的问题。最大的问题是需要允许从任意远程终端到服务器高位端口的连接。幸运的是,许多FTP守护程序,包括流行的WU-FTPD允许管理员指定FTP服务器使用的端口范围。详细内容参看附录1。

第二个问题是客户端有的支持被动模式,有的不支持被动模式,必须考虑如何能支持这些客户端,以及为他们提供解决办法。例如,Solaris提供的FTP命令行工具就不支持被动模式,需要第三方的FTP客户端,比如ncftp。

随着WWW的广泛流行,许多人习惯用web浏览器作为FTP客户端。大多数浏览器只在访问ftp://这样的URL时才支持被动模式。这到底是好还是坏取决于服务器和防火墙的配置。

被动FTP的例子

下面是一个被动FTP会话的实际例子,只是服务器名、IP地址和用户名都做了改动。在这个例子中,FTP会话从 testbox1.slacksite.com (192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到testbox2.slacksite.com (192.168.150.90),一个运行ProFTPd 1.2.2RC2的Linux工作站。debugging(-d)选项用来在FTP客户端显示连接的详细过程。红色的文字是 debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。

注意此例中的PORT命令与主动FTP例子的不同。这里,我们看到是服务器(192.168.150.90)而不是客户端的一个端口被打开了。可以跟上面的主动FTP例子中的PORT命令格式对比一下。

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------   3 slacker    users         104 Jul 27 01:45 public_html
226 Transfer complete.
ftp>; quit
---> QUIT
221 Goodbye.

总结

下面的图表会帮助管理员们记住每种FTP方式是怎样工作的:

主动FTP:
   命令连接:客户端 >1023端口 -> 服务器 21端口
   数据连接:客户端 >1023端口 <- 服务器 20端口

被动FTP:
   命令连接:客户端 >1023端口 -> 服务器 21端口
   数据连接:客户端 >1023端口 -> 服务器 >1023端口

下面是主动与被动FTP优缺点的简要总结:

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。详细信息参看附录1。


参考资料

O'Reilly出版的《组建Internet防火墙》(第二版,Brent Chapman,Elizabeth Zwicky著)是一本很不错的参考资料。里面讲述了各种Internet协议如何工作,以及有关防火墙的例子。

最权威的FTP参考资料是RFC 959,它是FTP协议的官方规范。RFC的资料可以从许多网站上下载,例如:ftp://nic.merit.edu/documents/rfc/rfc0959.txt

Active FTP vs. Passive FTP, Appendix 1

几种常见FTP服务器与被动方式有关的设置

ProFTPD

参考: http://www.castaglia.org/proftpd ... -mini-HOWTO-NAT.txt

MasqueradeAddress
PassivePorts

vsftpd
参考: http://vsftpd.beasts.org/vsftpd_conf.html

pasv_enable
pasv_max_port
pasv_min_port
pasv_address

Pure-FTPd

参考: http://www.pureftpd.org/README

-p  --passiveportrange      <minport:maxport>;
-P  --forcepassiveip        <ip address>;

分类:知识太平洋 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1545