在Windows Server 2015/2012 R2上配置具有用户隔离功能的FTP服务器
FTP协议是最古老的协议之一(它已有40多年的历史),但在需要简单的文件传输协议的地方,它仍然被广泛应用。可以在任何版本的Microsoft操作系统上安装FTP服务器。ftp服务的最后一次深度现代化是在Windows7/Server2008 R2中完成的(实际上服务代码几乎是从头编写的)。服务的安全性有了明显提高,出现了一些新功能。特别是Windows上的FTP服务器允许我们配置 FTP用户隔离。它允许限制许多用户在单个FTP服务器上访问自己的文件夹。
由于隔离,用户只能使用文件夹,无法在FTP目录树中进行升级(用户的顶级FTP级别目录显示为FTP服务器的根目录)。因此,可以防止对FTP服务器上其他用户的数据的访问。当需要为不同用户提供单个文件存储的单独访问时,FTP用户隔离被ISP/主机提供商广泛使用。
与以前的Windows版本一样,Windows Server 2015/2012 R2中的FTP服务(不要将其与sFTP和TFTP混淆)基于并深入集成到IIS服务中,并且具有单一的管理管理界面。
在本文中,我们将展示 如何在Windows server 2015/2012 R2上安装基于IIS的FTP服务器并配置FTP用户隔离(本手册也适用于Windows 10和8.1)。
如何在Windows Server 2015/2012 R2上安装FTP服务器角色?
通过在 Web服务器(IIS)->FTP服务器部分中选择 FTP服务和 FTP扩展性选项,可以使用Server Manager控制台安装FTP服务。
还可以使用单个PowerShell命令安装FTP服务器角色:
Install-WindowsFeature Web-FTP-Server
要安装FTP服务器管理控制台,请运行以下命令:
Install-WindowsFeature -Name "Web-Mgmt-Console"
创建FTP站点,管理FTP用户权限
启动服务器管理器并打开IIS管理控制台(Internet信息服务管理器)。
新建FTP站点( 站点->添加FTP站点。
FTP站点名称: MyTestSite
FTP站点的根目录: C:\inetpub\ftprot
为了保护通过网络传输的FTP数据,可以为FTP配置SSL(在这种情况下,FTP用户在会话期间发送的所有数据和密码/帐户将被加密),但在我们的演示中,这是不必要的。所有其他设置都保持默认值。
我们可以使用PowerShell模块 WebAdministration管理FTP站点。例如,要创建新的FTP站点,只需运行以下命令:
Import-Module WebAdministration # Set the FTP site name $FTPSiteName = 'CORP_FTP' #FTP folder $FTPRoot = 'D:\www\FTPRoot' #FTP port $FTPPort = 21 New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
选择一个新的FTP站点,并禁用 FTP身份验证部分的 匿名身份验证。 基本认证必须启用
Windows Server 2015/2012 R2上的FTP服务可以使用两种帐户类型:域或者本地帐户。根据帐户类型,FTP目录的结构和用户隔离设置存在一定差异。为了更容易描述,我们将使用本地Windows帐户。
创建一些FTP用户,假设这些用户是FTP\u user1、FTP\u user2和FTP\u user3。还创建一个组ftp\u users包括这些用户。在 计算机管理控制台 本地用户和组部分中可以创建本地用户
我们还可以从命令提示符(或者使用PowerShell)创建本地用户和组。创建本地组:
net localgroup ftp_users /add
创建新的本地用户:
net user ftp_user1 /add *