在 Windows Server 2008 R2 发布后,gOxiA 就开始着手于相关的测试和评估。IIS 是重点测试和评估之一!而今天与大家分享的是如何在  IIS7 上配置 FTP7 使用 IIS管理凭据 方式进行身份验证。提到 MSFTP 服务,恐怕知道的人多,但是真正使用的人少!特别是 IDC 环境下多数会选择 Serv-U FTP Server,gOxiA 从 Windows Server 2008 开始就不再使用 Serv-U,原因很简单!Serv-U 不是免费的,此次 Serv-U 默认存在安全隐患。况且开放 FTP 也是为了方便自己维护网站,下载上传资料用!所以用系统自身的软件不是更好!维护也相对容易很多!但是,使用过 MSFTP 的朋友知道从  FTP7 开始,微软才为 MSFTP 设计提供了对非 Windows 身份验证功能的支持,也就是说如果我们要访问 MSFTP 则不必再在系统里添加用户帐号,而可以使用 IIS 来统一管理单独的凭据!现在我们再也不用担心,使用 MSFTP 会存在用户帐号安全隐患的问题。

这是一篇 Step by Step,所以其中涉及到的相关原理及知识内容不作过多介绍!我们将通过 IIS7 提供的 IisManagerAuth 身份验证模块来实现 IIS管理凭据的 FTP 帐号。具体步骤如下:

在 开始配置之前,我们需要修改相关目录的目录安全权限,这一步骤是必须的,否则在登录 FTP 的时候会出现错误。如下图所示,我们会看到由于权限不足导致无法读取配置文件的错误提示。而无权限读取的文件是位于 inetsrv\config 下的 redirection.config 文件。经过 gOxiA 的测试发现即使为该文件添加了相应的权限但仍提示登录失败,最终要配置 config 目录权限,赋予 Network Service(FTP7 进程的默认帐户)有读取权限后才能正常登录。

为了简单的演示目录权限的设置过程,gOxiA 参考了 IIS.net 中相关文章的命令行,其中涉及到的 cacls 可以直接运行就可以得到参数帮助。要执行的命令行如下:

cacls c:\windows\system32\inetsrv\config /G "Network Service":R /E

配置了 config 目录权限后,请确保 “Network Service”对该目录下的 administration.config 和 redirection.config 文件有读取权限,否则请执行如下命令行:

cacls c:\windows\system32\inetsrv\config\administration.config /G "Network Service":R /E
cacls c:\windows\system32\inetsrv\config\redirection.config /G "Network Service":R /E

之后创建一个 FTP 的默认目录,注意请添加“Network Service”有完全控制的权限。

下面,我们开始配置 IIS7,创建一个 FTP 站点,为其启用 IisManagerAuth,并创建一个 IIS管理凭据的帐户,使其具备 FTP 相应的访问权限。

在开始之前请确认已经安装了 IIS7 的 管理服务组件,否则请进入服务器管理,单击添加角色服务,选中 IIS7 的管理服务组件,进行安装。

默认可以使用 C:\Inetpub\Ftproot 作为 FTP 主目录,当然也可以根据自己的需要创建或选择一个目录,但是需要注意,请赋予“Network Service”有完全控制权限。

下来我们配置 IIS7 启用 IIS管理器凭据,在启用之后才能使用 IisManagerAuth。为此,打开 IIS管理器,双击“管理服务”,选中“Windows 凭据或 IIS 管理器凭据”,最后单击右边操作列表下的“应用”。

之后使用“IIS管理器用户”创建一个 IIS 所管理的用户帐号。为此,双击“IIS 管理器用户”,单击“添加用户”,在弹出的窗体中输入用户名和密码。

上述操作一旦完成,就可以开始创建一个 FTP 站点,首先选中 IIS 管理器左边的导航窗体中的“网站”,之后单击鼠标右键,左键单击“添加 FTP 站点…”。

“站点信息”中输入 FTP 站点名称,如:Default FTP Site。并选择默认的内容目录,本例中 gOxiA 使用的是 C:\inetpub\ftproot,单击“下一步”。

在“绑定和 SSL 设置”中,根据需要启用虚拟主机名,注意:FTP“虚拟主机名”可能不被一些客户端所支持。此外请将 SSL 默认的配置“需要”更改为“允许”,否则如果不配置 SSL 证书并使用 SSL FTP 登录方式将导致客户端连接失败。

在 “身份验证和授权信息”配置中,更具需要选择身份验证方式,并指定一个用户和权限。如果你只允许 IIS管理器用户能够访问该 FTP 站点,那么这一步可以不配置,直接单击“完成”。方便大家的学习,本例中允许系统用户中的 Administrator 对该 FTP 有读取和写入的权限。

现在以 Windows 身份验证方式的 FTP 站点已经创建好了,下面我们可以使用 Administrator 来登录 FTP。

经过测试,创建的 FTP 站点已经正常运行,下面我们将要为该 FTP 站点添加之前创建的 IIS管理器用户 — goxia 有相应的访问权限。

首先,选中“Default FTP Site”,在内容窗体中双击“FTP 身份验证”,进入“FTP 身份验证”设置后单击右边操作中的“自定义提供程序…”,在弹出窗体中勾选“IisManagerAuth”。

启用了 IisMangerAuth 后,打开“FTP 授权规则”,添加指定的用户 — goxia,并赋予有相应的访问权限。

最后我们来使用 goxia 这个 IIS 管理器用户登录 FTP 进行测试。

如 果首次登录失败,提示无法验证用户和密码,则需要打开该 FTP 站点的“IIS 管理器权限”设置,添加 goxia 这个帐号。之后测试登录成功后再将其帐号从中删除即可。查找 IIS.net 的相关指引文档,发现默认是要执行这步配置的,但是 gOxiA 认为这一步是配置用户是否具有该 FTP 的远程管理权限的,一旦配置并启用 IIS 的远程管理服务,那么该帐号具备的权限可能会造成安全隐患。目前 gOxiA 也未完全理解。希望有网友指点一二!

如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证的更多相关文章

  1. 如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证?

    如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证? 在 Windows Server 2008 R2 发布后,gOxiA 就开始着手于相关的测试和评估.IIS 是重点测试和评估之一!而今 ...

  2. 如何在IIS7下配置ASP+ACCESS环境

    如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...

  3. 如何在linux 上配置NTP 时间同步?

    故障现象: 有些应用场景,对时间同步的要求严格,需要用到NTP同步,如何在linux上配置NTP时间同步? 解决方案: 在linux 上配置NTP 时间同步,具休操作步骤,整理如下: 1.安装软件包( ...

  4. 如何在Jenkins上配置一个可以从其它Job取回Artifact的Job

    今天因为工作上的需求,需要在Jenskin上配置一个job, 它应该可以从其它所选择的Job中取回Artifact. 首先,在"构建"步骤中添加 "Copy Artifa ...

  5. 如何在IDEA上配置Maven

    IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一, IDEA是JetBrains公司的产品,现在有逐步取代老牌Java ...

  6. MongoDb进阶实践之二 如何在Windows上配置MongoDB

    一.引言            上一篇文章,我介绍了如何在Linux系统上安装和配置MongoDB,其实都不是很难,不需要安装和编译,省去了Make && Make Install 命 ...

  7. 如何在Ubuntu上配置scala教程

    Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...

  8. 如何在Windows上配置EBS R12.1.3的OAF开发环境

    1.找到想要开发的EBS OAF扩展对应的PATCH,可以参照下面的Note,因为我要做的是R12.1.3的开发,所以要下载p9879989_R12_GENERIC OA Framework - Ho ...

  9. 图解如何在Linux上配置git自动登录验证

    记录一下配置git操作远程仓库时的自动验证,效果如下图: 本文介绍的是Linux下的配置.Windows上默认已经启用凭证存储和自动验证(依靠wincred实现,以后会使用GCM-Core). 准备工 ...

随机推荐

  1. JMeter非GUI界面运行

    JMeter是一款可以用于做接口可以用于作压力性能的应用程序,该程序是纯Java语音开发,所有对环境支持都比较好. JMeter可以运行模式有两种,一种是UI图形,另一种是命令模式运行也就是非GUI模 ...

  2. Python常见数据类型及操作

    基础数据类型 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但计算机并不能,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’ ...

  3. CentOS7安装Code::Blocks

    在CentOS7上安装Codelocks的过程. 1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum instal ...

  4. [c++面试准备]--vector对象是如何增长的

    参考资料:cpp primer 5th 背景: 为了支持快速的访问,vector/string将元素连续存储--每个元素都是紧挨着前一个元素存储. 如果我们向vector/string中添加新的元素, ...

  5. Spring 简单而强大的事务管理功能

    开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...

  6. Python机器学习数据挖掘工具sklearn安装和使用

    python借助pip安装第三方库,所以首先确保电脑上已成功安装了pip. 安装sklearn前需要先安装numpy.scipy和pandas等库.安装的方式有两种: 一.前往python的组件库页( ...

  7. sun.misc.BASE64Encoder()编码有换行符需要手动去除passwordEncode.replace("\n","");

    String passwordEncode = new BASE64Encoder().encodeBuffer(password.getBytes());//sun.misc.BASE64Encod ...

  8. oracle function用法

    函数调用限制1.SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数2.SQL只能调用带有输入参数,不能带有输出,输入输出函数3.SQL不能使用PL/SQL的特有数据类型(boolean, ...

  9. 连接XenServer中VM的Console。

    在XenServer6.2中的虚拟机,连接Guest VM串口的方法: 1. 首先在Guest VM中设置串口: 我的是CentOS6: 修改/etc/grub/grub.conf: 2. 修改完后, ...

  10. 【一个比较bug free的二分写法】

    lower_bound: [l, r)区间内大于等于val的第一个位置 int lower_bound(int l, int r, int val){ while(l < r){ ); if(a ...