在Windows Server 2015/2012 R2上配置具有用户隔离功能的FTP服务器

时间:2020-01-09 10:46:31  来源:igfitidea点击:

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 user1FTP\u user2FTP\u user3。还创建一个组ftp\u users包括这些用户。在 计算机管理控制台 本地用户和组部分中可以创建本地用户

我们还可以从命令提示符(或者使用PowerShell)创建本地用户和组。创建本地组:

net localgroup ftp_users /add

创建新的本地用户:

net user ftp_user1 /add *