Конфигуриране на FTP сървър с потребителска изолация в Windows Server 2016/2012 R2

Въпреки че протоколът FTP, един от най-старите протоколи, той вече е навършил 40 години и продължава да се използва навсякъде, където се изисква обикновен протокол за прехвърляне на файлове. FTP сървърът може да бъде инсталиран във всички операционни системи на Microsoft. Последната дълбока модернизация на тази услуга беше направена в Windows 7 / Server 2008 R2 (всъщност сервизният код беше пренаписан отново). Сигурността на услугата бе значително подобрена и се появиха редица нови функции. По-специално, в FTP сървъра на Windows стана възможно конфигурирането изолация FTP на потребителите, което позволява да се разграничи достъпът на множество потребители до техните собствени папки на един FTP сървър.

Поради функцията за изолиране, потребителите могат да работят само с техните ftp директории и не могат да се изкачат по-високо в дървото на директория, тъй като Потребителската директория на най-високо ниво му се явява като корен на FTP услугата. По този начин можете да попречите на потребителите да имат достъп до файлове на други хора на FTP сървъра. Изолирането на FTP потребителите се използва широко от хостинг доставчиците, когато е необходимо да се осигури индивидуален достъп на различни потребители до едно хранилище на файлове.

Както в предишните версии на Windows, FTP услугата (не се бъркайте с sFTP и TFTP) в Windows Server 2016/2012 R2 е базирана и дълбоко интегрирана в услугата IIS и има единен административен интерфейс за управление. В тази статия ще покажем как инсталирате сървър FTP въз основа на IIS в прозорци Сървър 2016/2012 R2 и конфигурирайте изолацията на потребителя върху него (Инструкциите се отнасят и за Windows 10 / 8.1).

Съдържание:

  • Инсталиране на ролята на FTP сървър в Windows Server 2016/2012 R2
  • Настройване на FTP сайт в Windows Server, предоставяне на права на потребителите
  • Конфигурирайте FTP изолация на потребителя в Windows Server 2016/2012 R2
  • Конфигурирайте правилата на защитната стена на Windows за достъп до FTP сървъра
  • Проверка на връзката към FTP сървъра от клиент на Windows

Инсталиране на ролята на FTP сървър в Windows Server 2016/2012 R2

Можете да инсталирате FTP услугата през конзолата на Server Manager, като се отбележи в секцията Уеб сървър (IIS) -> FTP сървър опции FTP услуга и Разширяемост на FTP.

Можете също да инсталирате ролята на FTP сървъра с една команда PowerShell:
Инсталиране на WindowsFeature Web-FTP-сървър

За да инсталирате конзолата за управление на FTP сървъра, изпълнете командата:

Install-WindowsFeature -Name "Web-Mgmt-Console"

Настройване на FTP сайт в Windows Server, предоставяне на права на потребителите

Стартирайте Server Manager и отворете конзолата за управление на Internet Information Manager (IIS).

Създайте нов FTP сайт (Сайтове -> Добавяне FTP място).

Име на сайта на FTP: MyTestSite

Основната директория на FTP сайта: C: \ inetpub \ ftproot

За да защитите ftp данни, предавани по мрежата, е възможно да конфигурирате SSL (в този случай всички данни, предавани по мрежата и пароли / акаунти на ftp потребители ще бъдат криптирани), но това не е необходимо в нашата демонстрация. Всички други настройки са оставени по подразбиране..

Можете да управлявате вашия FTP сайт с помощта на модула PowerShell WebAdministration. Например, за да създадете нов FTP сайт, просто изпълнете следните команди:

Импорт-модул WebAdministration
# Задаване на име на FTP сайт
$ FTPSiteName = 'Нов FTP сайт'
# FTP директория на сайта
$ FTPRoot = 'E: \ www \ FTPRoot'
# FTP порта на сайта
$ FTPPort = 21
New-WebFtpSite -Name $ FTPSiteName -PhysicalPath $ FTPRoot -Port $ FTPPort

Изберете нов FTP сайт и в секцията FTP заверка (Удостоверяване) деактивирайте анонимното удостоверяване Анонимно удостоверяване. Основно удостоверяване трябва да бъде активиран.

FTP услуга на Windows Server 2016/2012 R2 може да използва два типа акаунти: домейна или локална. В зависимост от типа на акаунта има разлики в структурата на директория FTP и настройките за изолиране на потребителите. Ще използваме локални акаунти на Windows.

Създайте FTP потребители, например, това ще бъдат ftp_user1, ftp_user2 и ftp_user3 акаунти. Също така създайте ftp_users група, за да включите тези потребители в. Можете да създадете потребители в секцията местен Потребители и Групи конзолата компютър управление.

Можете също да създадете потребители и групи от командния ред (или с помощта на PowerShell). Създайте местна група:
нетната локална група ftp_users / добавяне

Създайте нов местен потребител:

нетен потребител ftp_user1 / добави *

Добавяне на потребителя към групата:

нетната локална група ftp_users ftp_user1 / добавяне

Създайте още двама потребители по същия начин..

Предоставете създадените права на групата ftp_users (RW) в директорията C: \ inetpub \ ftproot.

Вътре в директорията C: \ inetpub \ ftproot създайте директория с името LocalUser (името трябва да е напълно съвместимо, това е важно!!!). След това вътре в C: \ inetpub \ ftproot \ LocalUser създайте три директории с имената на потребителите, които сте създали: ftp_user1, ftp_user2, ftp_user3.

забележка. В зависимост от типа акаунти, трябва да създадете следната структура на директория (под% FtpRoot% \ имаме предвид корен на FTP сайта, в нашия случай това е C: \ inetpub \ ftproot \):

Тип сметкаСинтаксис за домашна директория
Анонимни потребители% FtpRoot% \ LocalUser \ Public
Windows Local Account% FtpRoot% \ LocalUser \% UserName%
Профил в домейна на Windows% FtpRoot% \% UserDomain% \% UserName%
Специални IIS Manager или ASP.NET акаунти% FtpRoot% \ LocalUser \% UserName%


Върнете се към конзолата на IIS и в секцията на сайта Правила за разрешаване на FTP създайте ново правило (Добавете разрешаване на правило), в които се посочва, че групата ftp_users трябва да има разрешения за четене и запис (разрешения за четене и запис).

Конфигурирайте FTP изолация на потребителя в Windows Server 2016/2012 R2

Нека да преминем към настройка на FTP изолация на потребителя. Изолирането на FTP потребителите се конфигурира на ниво FTP сайт, а не на целия сървър и ви позволява да организирате своя собствена домашна директория за всеки потребител. В настройките на FTP сайта отворете елемента FTP потребител изолация.

В този раздел има няколко настройки. Първите две не предполагат изолация на потребителя:

  • FTP корен указател (ftp - потребителската сесия започва с главната директория на ftp сайта);
  • потребител име указател (потребителят започва с физическа / виртуална директория с потребителското име. Ако директорията липсва, сесията започва от главната директория на ftp сайта).

Следните 3 опции представляват различните режими на работа с изолация на потребителя:

  • потребител име указател (деактивиране в световен мащаб virtualdirectories) - приема, че ftp сесията на потребителя е изолирана от физическа или виртуална директория, чието име съответства на ftp потребителското име. Потребителите виждат само собствената си директория (за тях това е коренната директория) и не могат да я надхвърлят (в по-горната директория на FTP дървото). Всички глобални виртуални директории се игнорират;
  • потребител име физически указател (активиране в световен мащаб действителен директории) - се приема, че FTP сесията на потребителя е ограничена (изолирана) от физическата директория с името на FTP потребителския акаунт. Потребителят не може да надхвърли директорията си в структурата на FTP. Потребителят обаче има достъп до всички създадени глобални виртуални директории;
  • FTP домашна директория, конфигурирана в Active Directory - Потребителят на FTP е изолиран в неговата домашна директория, посочена в настройките на акаунта му в Active Directory (свойства FTPRoot и FTPDir).
Важно е. Ако глобалните виртуални директории са активни, всички потребители имат достъп до всички виртуални директории, конфигурирани в корена на FTP сайта (със съответните разрешения за NTFS).

Изберете желания режим на изолиране (използвам втората опция за ftp изолация на потребителя).

С всички промени в настройките на FTP сайта в IIS, препоръчително е да рестартирате услугата на Microsoft FTP (FTPSVC).

Конфигурирайте правилата на защитната стена на Windows за достъп до FTP сървъра

Когато инсталирате ролята на FTP сървъра в настройките на защитната стена на Windows, всички необходими правила, необходими за достъп на потребителя до FTP, се активират автоматично.

За да работи FTP North правилно в пасивен FTP режим, потребителите трябва да се свържат към обхвата на RPC порта (1025-65535). За да не отваряте всички тези портове на външна защитна стена, можете да ограничите обхвата от динамични TCP портове, използвани за трансфер на данни.

  1. За да направите това, отворете елемента в настройките на FTP сайта в IIS FTP Firewall подкрепа и на полето данни канал порт диапазон посочете обхвата на порта, който искате да използвате за FTP връзки. Например - 50000-50100;
  2. Запазете промените и рестартирайте IIS (iisreset);
  3. Отворете контролния панел и отидете на Контролен панел \ Система и сигурност \ Защитна стена на Windows \ Разрешени приложения;
  4. Уверете се, че списъкът с приложения, на които е разрешен достъп през защитната стена, има разрешения за FTP сървър.

След това в защитната стена на Windows с настройки за разширена защита проверете дали са активирани следните правила:

  • FTP сървър (FTP Traffic-In) - TCP, порт 21;
  • FTP Server Pasive (FTP Passive Traffic-In) - адрес на локален порт 1024-65535 (или 50000-50100, както в нашия пример);
  • FTP Server Secure (FTP SSL Traffic-In) - порт 990 (когато използвате FTP със SSL);
  • FTP сървър (FTP Traffic-Out) - порт 20;
  • FTP Server Secure (FTP SSL Traffic-Out) - порт 989 (когато използвате FTP със SSL).

Съответно, тези портове трябва да бъдат отворени на шлюза (защитната стена) за свързване на външни потребители на FTP.

Проверка на връзката към FTP сървъра от клиент на Windows

Можете да проверите наличието на портове на FTP сървъра с помощта на командлета Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

Или използвайки командата ftp:

ftp yourftpservername

Опитайте да се свържете към вашия FTP сайт с помощта на всеки FTP клиент или директно от Explorer (в адресната лента посочете ftp: // yourservername /.

Въведете потребителско име и парола.

В резултат на това ще видите съдържанието на домашната директория с файловете на потребителя (което е коренът на FTP сайта за потребителя). Както можете да видите, потребителската сесия е изолирана и потребителят вижда само своите файлове на ftp сървъра.

съвет. Ако искате да използвате анонимен достъп (Всички анонимни потребители), всеки потребител може да се свърже към вашия FTP сървър, използвайки анонимен или гост като име и имейл адрес като парола. С анонимна връзка с FTP сайта, сесията ще бъде ограничена до директорията LocalUser \ Public (естествено, публичната директория трябва да бъде създадена предварително).

За да видите информация за достъпа на потребителя до FTP сървъра, можете да използвате FTP регистрационни файлове, които се съхраняват в директорията по подразбиране c: \ inetpub \ logs \ logfiles във форматни файлове u_exYYMMDD.log.

За да видите текущите потребителски връзки към вашия сървър, можете да използвате IIS потребителски броячи чрез PowerShell или функцията Current FTP Sessions в конзолата IIS. В тази конзола можете да видите информация за името и IP адреса на FTP потребителя и да изключите сесията, ако е необходимо.

И така, разгледахме как да конфигурирате FTP сайт с изолация на потребителя въз основа на Windows Server 2016/2012 R2. В режим на изолация потребителите се удостоверяват с FTP под своите локални или домейн акаунти, след което получават достъп до своята корен директория, съответстваща на потребителското име.