将Xlight FTP服务器与微软的活动目录(Active Directory)整合使用
Xlight FTP服务器可以和微软的活动目录(Active Directory)整合,用来鉴权用户. 用户可以用相同的用户名,密码访问FTP服务器,电子邮件服务器等等. 注意: 30-天试用期后, 只有专业版本的Xlight FTP服务器支持这个功能.
如果使用活动目录(Active Directory)为外部用户鉴权, 你需要到 [虚拟服务器设置]->[通用]->[虚拟服务器], 选择选项"启用外部用户鉴权" . 单击"设置..."键, 在虚拟服务器的"鉴权类型"中活动目录必须被选择,如下图所示:
当你在服务器上打开活动目录设置对话框时, 如果你的服务器已经加入活动目录域, Xlight FTP服务器将会自动检测你的登录域和搜索用户的起始DN. 如果你没有看到这些信息, 你必须手工配置登录域和搜索用户的起始DN.
如果你想只用活动目录检查用户名和密码, 你可以选择选项"只检查用户名和密码". 如果你不选择这个选项, 活动目录里的user object class的另一个属性 homeDirectory 也会被检查和使用.
设置默认的用户设置
如果你不想使用AD的属性homeDirectory作为用户的FTP主目录, 或者有太多AD用户,你不想为他们每个单独设置主目录. 你可以使用默认的用户设置来设置用户主目录. 这个链接有关于设置用户默认设置的详细说明.
文件包含禁止使用外部鉴权的用户
当服务器连接到公共互联网, 可能有登录机器人尝试用常见的用户名登录你的服务器. 如果服务器使用活动目录用户鉴权, 登录机器人的尝试可能对活动目录产生不必要的负担. 你可以使用这个选项禁止某些用户使用活动目录. 你创建并选择一个文本文件,这个文件每一行包含一个用户名. 在这个文件里的用户,将不会使用活动目录鉴权.
在活动目录中设置用户的主目录
你可以使用微软的Active Directory用户和计算机控制台界面来设置用户的主目录, 如下图所示. 活动目录属性homeDirectory 将会被用做FTP用户的主目录.
注意: 如果用户的主目录在登录时不存在, 用户第一次登录时, Xlight FTP将自动创建这个目录.
在用户主目录使用NTFS权限
当选项"在用户主目录使用NTFS权限"被选中后, Xlight FTP服务器将模拟登录FTP用户的活动目录账户. 他的主目录访问将受到这个用户NTFS权限的限制. 如果这个选项没有被选中,Xlight FTP服务器的系统账户或当前登录账户将被用来访问所有用户的主目录.
当选项"在用户主目录使用NTFS权限"被选中, 但是用户不能访问他的主目录, 关于NTFS权限你需要检查两件事情:
1. 如果用户能够成功通过活动目录认证, 但在FTP日志, 你看到日志如 "450 不能改变目录到 /.". 这非常可能是NTFS权限的问题. 你需要检查帐户是否有访问这个目录的权限. 如果主目录是位于另一台机器上的UNC路径, 从这台机器的主控桌面, 你应该能够通过按"Alt+Ctl+Del"键用这个帐户登录. 从主控桌面, 检查是否他有足够的权限访问设置的主目录.
2. 你不应该将用户的主目录放在域控制器. 微软的域安全策略不允许普通用户访问在域服务器上的资源. 尽管这个用户能够成功登录到AD域, 他将不能访问位于域服务器上的主目录. 只有具有系统管理员权限的只有帐户才能访问域控制器上的主目录.
兼容IIS FTP活动目录用户隔离模式
Xlight FTP服务器提供了一个和IIS FTP服务器 6.0引入的活动目录用户隔离模式兼容的方式. 你可以选择选项"兼容IIS FTP活动目录用户隔离模式". 当这个选项被选中后, Xlight FTP服务器将会读取并使用IIS FTP 活动目录的属性 msIIS-FTPRoot和msIIS-FTPDir, 用它作为用户的主目录. 如果这两个IIS FTP的属性在活动目录里没有被设置或不存在, 活动目录属性homeDirectory 将会自动被用做主目录.
设置虚拟服务器的公共目录
你可以设置虚拟服务器的公共目录. 用户鉴权后, 所有用户都能够看到并从公共目录下载, 如下图所示:
因为用户在AD里的主目录隐含使用"/"作为用户的虚拟目录, 你不应该使用"/"作为公共虚拟目录. 否则因为"/"是重复的, 当AD用户登录后, 他只能看到公共目录里的内容, 而不是他的主目录. 在上面的图里, 我们使用"/public"作为公共虚拟目录.
在公共目录使用NTFS权限
当选项"在公共目录使用NTFS权限"被选中, Xlight FTP服务器将模拟用户的AD(活动目录)账户. 公共目录访问将检查每个AD用户的NTFS权限. 基于NTFS权限给予公共目录更多的权限控制灵活性,它将取代公共目录的本地FTP权限. 然而模拟用户的AD(活动目录)账户在某些罕见的情况下可能会失败. 如果模拟用户失败, 公共目录的本地FTP权限将被使用. 因此如果你使用NTFS权限控制公共目录的访问, 你依然需要为公共目录设置恰当的(最少的)本地FTP权限用于模拟AD用户失败的情况.
在用户组使用NTFS权限
当选项"在组目录使用NTFS权限"被选中, Xlight FTP服务器将模拟用户的AD(活动目录)账户. 本地FTP组目录的访问将使用AD用户的NTFS权限. 在本地Xlight FTP服务器, 用户组被创建后, 你可以设置组目录.
映射用户的活动目录组到本地FTP组
当用户登录到活动目录, 列在这个用户memberOf属性里(memberOf属性列出用户是成员的组)的和本地FTP组相匹配的第一个组将成为这个用户的FTP组. 从Xlight版本3.8.6开始, 当匹配本地FTP组名时, 用户的Primary Group将会首先被匹配. 因此当一个用户有多个AD组和本地FTP组重名时,你可以设置用户的Primary Group为你想要使用的,和本地FTP组同名的AD组.
- AD用户的Primary Group的默认组是"Domain Users",Primary Group只是为通过Macintosh或者UNIX下POSIX兼容应用程序登录AD域的用户使用的一个选项,通常情况下Primary Group没有被使用.
设置LDAP Filter限制用户搜索的范围
你可以创建额外的LDAP filter以限制用户搜索的范围, filter 必须是用户的LDAP属性. 例如, 如果你想限制属于Users组的用户登录, 你可以使用AD里面的memberOf属性并设置LDAP搜索filter为memberOf=CN=Users,CN=Builtin,DC=ad-test-domain,DC=com
创建并允许匿名用户访问FTP服务器
当用户使用活动目录鉴权时, 你可能希望允许使用任意密码的匿名用户访问FTP服务器. 因为在活动目录内的用户必须使用密码, 匿名用户不能创建在活动目录内.
不过你可以在本地创建一个用户名是"anonymous"的匿名用户,并在他的设置([用户设置]->[账号]->[外部鉴权选项])中选择选项"忽略外部用户鉴权", 如下图所示. 这个本地的FTP用户将会忽略外部用户鉴权,而使用本地FTP鉴权. 他的设置也将来自本地FTP服务器.
查找活动目录的问题
如果你在Xlight FTP服务器与微软的活动目录整合时遇到问题, 你可以选择外部用户认证的选项"在错误日志显示调试跟踪信息". 这个选项被选中后, Xlight FTP服务器的活动目录信息将会被写到错误日志.
这里有两个和活动目录相关的常见设置错误.
1. 普通用户的主目录被设置到位于域控制器的机器上的目录. 因为微软的域安全策略不允许普通用户登录域控制器并访问在域控制器上的资源. 尽管这个用户能够成功登录AD, 登录后他不能访问他的主目录. 如果你想在域控制器上访问用户目录, 链接http://technet.microsoft.com/zh-cn/library/cc785165(WS.10).aspx 提供了步骤更改微软默认的域安全策略.
2. 当在较旧的Windows系统上运行Xlight FTP服务器, 例如Windows 2000, 运行Xlight程序的账户必须有"Act As Part Of The Operating System" (SE_TCB_NAME) 权限. 否则活动目录的用户将不能访问他的主目录. (SE_TCB_NAME) 权限能够在Local Security Policy的mmc snap-in界面在LocalPolicies/User Righs Assignments下设置. 这个问题是Windows XP之前的操作系统限制导致的. 因此对于和包括Windows XP之后的操作系统, 不需要为运行Xlight FTP服务器的账户分配这个权限.
如何在活动目录内安装扩展模版xlightFTPdUser
这里还有另外一个选项"使用扩展Schema "xlightFTPdUser"". 它通过扩展schema xlightFTPdUser, 提供了很多和Xlight FTP服务器相关的FTP用户控制参数.
当这个选项被选择后, 活动目录里user object class的属性 homeDirectory将不再被使用. 相应的来自扩展模版xlightFTPdUser的属性ftpHomeDirectory将被用来设置这个用户的主目录.
在使用这个选项之前, 扩展模版xlightFTPdUser必须在活动目录内被安装. 这个安装步骤在下面.
安装扩展模版xlightFTPdUser, 你首先需要打开文件AD-xlightFTPdUser.ldif替换用你的域替换所有DC=X如下图所示. 文件AD-xlightFTPdUser.ldif可以在Xlight FTP服务器安装目录下的ldap目录内找到.
保存文件AD-xlightFTPdUser.ldif. 你可以使用工具ldifde.exe导入模版xlightFTPdUser到活动目录,如下图所示. 你必需作为域管理员登录才能有权限执行下面命令.
如果上面的导入命令执行成功, 你可以用MMC来检查模版xlightFTPdUser是否被成功导入如下图所示:
在MMC Snap-in, 选择Active Directory Schema,点击"Add"键后再点击"Close"键,如下图所示:
在下面的窗口如果你能够看到类型是Auxiliary的object class xlightFTPdUser, 模版xlightFTPdUser 就已经被成功导入.
你可以使用ADSI Edit在活动目录内修改和Xlight FTP服务器相关的用户属性. ADSI Edit可以在Windows Support Tools 的产品CD中找到,也可以从微软的网站下载. 从 MMC Snap-in 窗口, 添加 ADSI Edit 如下图所示:
用ADSI Edit连接到你的活动目录. 选择CN=Users, 你可以在右面的窗口发现你的用户. 选择你准备设置Xlight FTP 服务器相关参数的用户,如下图所示:
按鼠标右键; 点击右键菜单选项"Properties". 从对话框里, 选择并编辑Xlight FTP 服务器相关属性如下图所示. 这些属性以"ftp"开头. 你只需要修改你需要使用的属性. 然而如果你使用属性ftpHomeDirectory, 当"在用户主目录使用NTFS权限的选项"没有被选择时, 你需要同时修改属性ftpHomePerm用来控制ftpHomeDirectory的用户权限.
到这一步你应该能够使用扩展模版xlightFTPdUser来为用户设置Xlight FTP服务器相关的选项.
设置FTP用户的虚拟目录
从Xlight FTP服务器版本3.5开始, 你可以通过使用扩展模版xlightFTPdUser的属性ftpVirtualPaths来为用户设置多个虚拟目录. ftpVirtualPaths字符串是"|"分割的虚拟目录,实际目录和权限的结合. 它的格式是: "虚拟目录 | 实际目录 | 权限". 例如,一个虚拟目录可以是 "/files/ | C:\Downloads\ | RLS----", 其中 "/files/" 是虚拟目录, "C:\Downloads\" 是映射到"/files/"的实际目录, "R--L--S"是"/files/"的权限标记. 虚拟目录, 实际目录和权限用"|"符号分割. 对于权限标记的含义,你可以参考"ftpHomePerm"的描述. 注意: 虚拟目录必须是UNIX形式的目录,实际目录必须是Windows形式的目录.
参数%username%可以用于real path. %username%将会被替换成实际登录的用户名. 如果用户登录时real path不存在, Xlight FTP服务器将会自动创建目录.