Незважаючи на те, що протоколу 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 в Windows Сервер 2016/2012 Р2 і налаштувати на ньому ізоляцію користувачів (Інструкція також може бути застосована і до Windows 10 / 8.1).

Установка ролі FTP сервера в Windows Server 2016/2012 R2

Встановити сервіс FTP можна через консоль Server Manager, зазначивши в розділі Веб-сервер (IIS) -> FTP-сервер варіанти Служба FTP і Розширюваність FTP. Установка ftp сервера на windows server 2012 r2

Також можна встановити роль FTP сервера однією командою PowerShell:
Install-WindowsFeature Web-FTP-Server
Install-WindowsFeature Web-FTP-сервер

Щоб встановити консоль управління FTP сервером виконайте команду:

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

Налаштування FTP сайту в Windows Server, надання прав користувачам

Запустіть Server Manager і відкрийте консоль управління IIS (Internet Information Service Manager).

Консоль управління IIS (Internet Information Service Manager)

Створіть новий FTP сайт (Сайти -> Додати FTP Сайт). Додати новий FTP сайт

Ім’я FTP сайту: MyTestSite

Кореневої каталог FTP сайту: C: inetpub ftproot

Задаємо ім'я і шлях до каталогу ftp сайту

Для захисту переданих по мережі ftp-даних можливо налаштувати SSL (в цьому випадку всі передані по мережі дані і паролі / учеткі ftp-користувачів будуть зашифровані), але в нашій демонстрації це не обов’язково. Всі інші настройки залишаємо стандартними.

Ви можете управляти FTP сайтом за допомогою модуля PowerShell WebAdministration. Напрімерм, щоб створити новий FTP сайт досить виконати команди:

Import-Module WebAdministration
#Задаем имя FTP сайта
$FTPSiteName="New FTP Site"
#Каталог FTP сайта
$FTPRoot="E:wwwFTPRoot"
#порт FTP сайта
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort

Виберіть новий FTP сайт і в секції FTP Аутентифікація (Аутентифікація) відключіть анонімну аутентифікацію Анонімна автентифікація. Базова автентифікація повинна бути включена.

Налаштування fpt-аутентифікації

FTP служба на Windows Server 2016/2012 R2 може використовувати два типи облікових записів: доменні або локальні. Залежно від типу облікового запису є відмінності в структурі каталогів FTP і настройках ізоляції користувачів. Ми будемо використовувати локальні облікові записи Windows.

Створіть FTP користувачів, припустимо, це будуть облікові записи ftp_user1, ftp_user2 і ftp_user3. Також створіть групу ftp_users, в яку включимо цих користувачів. Створити користувачів можна в розділі Місцеві Користувачі і Групи консолі Комп’ютер Управління.

Створюємо користувачів ftp

Також можна створити користувачів і групи з командного рядка (або за допомогою PowerShell). Створіть локальну групу:
net localgroup ftp_users /add
Створюємо групу користувачів ftp

Створіть нового локального користувача:

net user ftp_user1 /add *

Створюємо користувача ftp

Додайте користувача до групи:

net localgroup ftp_users ftp_user1 /add
Додаємо користувача в групу

Точно так же створіть ще двох користувачів.

Надайте створеній групі ftp_users права (RW) на каталог C: inetpub ftproot.

NTFS дозволу на каталог ftproot

Усередині каталогу C: inetpub ftproot создадйте каталог з ім’ям LocalUser (Ім’я має повністю відповідати, це важливо!!!). Потім всередині C: inetpub ftproot LocalUser створіть три каталогу з іменами створених вами користувачів: ftp_user1, ftp_user2, ftp_user3.

Примітка. Залежно від типу облікових записів необхідно створити таку структуру каталогів (під% FtpRoot% мається на увазі корінь сайту FTP, в нашому випадку це C: inetpub ftproot ):

Тип облікового запису Синтаксис іменування домашніх каталогів
Анонімні користувачі % FtpRoot% LocalUser Public
Локальна обліковий запис Windows % FtpRoot% LocalUser % UserName%
Доменний обліковий запис Windows % FtpRoot% % UserDomain% % UserName%
Спеціальні учеткі IIS Manager або ASP.NET % FtpRoot% LocalUser % UserName%

Каталог ftproot  LocalUser

Поверніться в консоль IIS і в розділі сайту Правила авторизації FTP створіть нове правило (Додати правило дозволу), В якому вкажіть, що група ftp_users повинна мати права на читання і запис (дозволу Read і Write). Правила авторизації FTP

Налаштування ізоляції FTP користувачів в Windows Server 2016/2012 R2

Перейдемо до налаштування ізоляції користувачів FTP. Ізоляція FTP користувачів налаштовується на рівні сайту FTP, а не всього сервера і дозволяє організувати власний домашній каталог для кожного користувача. В налаштуваннях FTP сайту відкрийте пункт FTP Користувач Ізоляція.

У цьому розділі є кілька налаштувань. Перші дві не передбачають ізоляції користувачів:

  • FTP корінь каталог (Ftp-сесія користувача починається з кореневого каталогу ftp-сайту);
  • Користувач ім’я каталог (Користувач починає роботу з фізичного / віртуального каталогу з ім’ям користувача. Якщо каталог відсутня, сесія починається з кореневого каталогу ftp-сайту).

Наступні 3 опції представляють різні режими роботи ізоляції користувачів:

  • Користувач ім’я каталог (вимкнути глобальний віртуальні каталоги) – передбачає, що ftp-сесія користувача ізольована фізичним або віртуальним каталогом ім’я якого відповідає імені користувача ftp. Користувачі бачать тільки власний каталог (для них він є кореневим) і не можуть вийти за його рамки (до вищестоящого каталог дерева FTP). Будь-які глобальні віртуальні каталоги ігноруються;
  • Користувач ім’я фізичний каталог (увімкнути глобальний віртуальний довідники) – передбачається, що FTP-сесія користувача обмежена (ізольована) фізичним каталогом з ім’ям облікового запису користувача FTP. Користувач не може перейти вище свого каталогу за структурою FTP. Однак користувачеві доступні всі створені глобальні віртуальні каталоги;
  • Домашній каталог FTP, налаштований в Active Directory – FTP-користувач ізолюється в рамках свого домашнього каталогу, заданого в настройках його облікового запису Active Directory (властивості FTPRoot і FTPDir).

важливо. Якщо глобальні віртуальні директорії активні, все користувачі можуть отримати доступ до всіх віртуальним каталогам, налаштованим в корені FTP сайту (при наявності відповідних NTFS прав доступу).

Ізоляція пользоватателей ftp на windows server 2012 r2

Виберіть потрібний режим ізоляції (а використовую другий варіант ізоляції ftp користувачів).

При будь-яких змінах налаштувань FTP сайту в IIS бажано перезапускати службу Microsoft FTP Service (FTPSVC).

Налаштування правил брандмауера Windows для доступу до FTP-сервера

При установці ролі FTP сервера в настройках Windows Firewall автоматично активуються всі необхідні правила, які потрібна для доступу користувачів до FTP.

Для коректної роботи FTP півночі в пасивному режимі FTP користувачам потрібно підключатися до RPC діапазону портів (1025-65535). Щоб не відкривати всі ці порти на зовнішньому файервол, ви можете обмежити діапазон динамічних TCP портів, використовуваних для передачі даних.

  1. Для цього в настройках FTP сайту в IIS відкрийте пункт FTP Брандмауер Підтримка і в поле Дані Канал Порт Діапазон вкажіть діапазон портів, який ви хочете використовувати для FTP підключень. Наприклад – 50000-50100; підтримка брандмауера ftp
  2. Збережіть зміни і запустіть IIS (iisreset);
  3. Відкрийте панель управління і перейдіть в Control Panel System and Security Windows Firewall Allowed apps;
  4. Переконайтеся, що в списку додатку, яким дозволений доступ через брандмауер присутні дозволу для FTP-сервер.ftp server правила в windows firewall

Потім в настройках Windows Firewall with Advanced Security перевірте, що включені наступні правила:

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

вбудовані правила брандмауера • FTP Server (FTP Traffic-In)

Відповідно ці порти потрібно відкрити на шлюзі (межсетевом екрані) для підключення зовнішніх FTP користувачів.

Перевірка підключення до FTP-сервера з Windows клієнта

Ви можете перевірити доступність портів на FTP сервері за допомогою командлета Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

Або за допомогою команди ftp:

ftp yourftpservername

Спробуйте підключитися до свого FTP сайту за допомогою будь-якого клієнта FTP або безпосередньо з Explorer (в адресному рядку вказавши ftp: // ім’я вашого сервера /.

Вкажіть ім’я та пароль користувача.

Підключаємося до ftp сайту з провідника

В результаті у вас відкриється вміст домашнього каталогу з файлами користувача (що є для користувача коренем FTP сайту). Як ви бачите, сесія користувача є ізольованою і користувач бачить на ftp сервера тільки свої файли. Ізольована FTP сесія

Порада. Якщо ви хочете використовувати анонімний доступ (All anonymous Users), підключатися до вашого FTP-сервера зможуть будь-які користувачі, використовуючи в якості імені anonymous або guest, а в якості пароля – email-адреса. При анонімному підключенні до FTP сайту – сесія буде обмежена каталогом LocalUser Public (природно каталог Public повинен бути створений попередньо).

Для перегляду інформації про доступ користувачів до FTP-сервера можна використовувати журнали FTP, які за замовчуванням зберігаються в каталозі c: inetpub logs logfiles в файлах формату u_exYYMMDD.log.

Для перегляду поточних підключень користувачів до вашого сервера можна користуватися значеннями лічильниками користувачів IIS через PowerShell або функцією «Поточні сеанси FTP» в консолі IIS. У цій консолі можна подивитися інформацію про ім’я та IP адресу FTP користувача і відключити сесію при необхідності.перегляд активних ftp підключень в windows server

Отже, ми розглянули, як налаштувати FTP сайт з ізоляцією користувачів на базі Windows Server 2016/2012 R2. У режимі ізоляції користувачі автентифіковані на FTP під своїми локальним або доменним обліковими записами, після чого вони отримують доступ до свого кореневого каталогу, відповідного імені користувача.

Leave a Reply

Your email address will not be published. Required fields are marked *