Windows ftp server how to

Настройка 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 в Windows Server 2016 / 2012 R2 и настроить на нем изоляцию пользователей (инструкция также применима и к Windows 10 / 8.1).

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

Установить сервис FTP можно через консоль Server Manager, отметив в разделе Web Server(IIS) -> FTP Server опции FTP Service и FTP Extensibility.

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

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

Install-WindowsFeature -Name «Web-Mgmt-Console»

Настройка FTP сайта в Windows Server, предоставление прав пользователям

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

Создайте новый FTP сайт (Sites ->Add FTP Site).

Имя FTP сайта: MyTestSite

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

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

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

Выберите новый FTP сайт и в секции FTP Authentication (Аутентификация) отключите анонимную аутентификацию Anonymous Authentication. Basic Authentication должна быть включена.

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

Создайте FTP пользователей, допустим, это будут учетные записи ftp_user1, ftp_user2 и ftp_user3. Также создайте группу ftp_users, в которую включим этих пользователей. Создать пользователей можно в разделе Local Users and Groups консоли Computer Management.

Читайте также:  История развития операционных систем семейства windows

Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу:
net localgroup ftp_users /add

Создайте нового локального пользователя:

net user ftp_user1 /add *

Добавьте пользователя в группу:

net localgroup ftp_users ftp_user1 /add

Точно так же создайте еще двух пользователей.

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

Внутри каталога C:\inetpub\ftproot создадйте каталог с именем LocalUser (имя должно полностью соответствовать, это важно. ). Затем внутри C:\inetpub\ftproot\LocalUser создайте три каталога с именами созданных вами пользователей: ftp_user1, ftp_user2, ftp_user3.

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

Вернитесь в консоль IIS и в разделе сайта FTP Authorization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).

Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2

Перейдем к настройке изоляции пользователей FTP. Изоляция FTP пользователей настраивается на уровне сайта FTP, а не всего сервера и позволяет организовать собственный домашний каталог для каждого пользователя. В настройках FTP сайта откройте пункт FTP User Isolation.

В этом разделе имеются несколько настроек. Первые две не предполагают изоляции пользователей:

  • FTProotdirectory (ftp‑сессия пользователя начинается с корневого каталога ftp-сайта);
  • Usernamedirectory (пользователь начинает работу с физического/виртуального каталога с именем пользователя. Если каталог отсутствует, сессия начинается с корневого каталога ftp-сайта).

Следующие 3 опции представляют различные режимы работы изоляции пользователей:

  • Usernamedirectory(disableglobalvirtualdirectories) – предполагает, что ftp-сессия пользователя изолирована физическим или виртуальным каталогом имя которого соответствует имени пользователя ftp. Пользователи видят только собственный каталог (для них он является корневым) и не могут выйти за его рамки (в вышестоящий каталог дерева FTP). Любые глобальные виртуальные каталоги игнорируются;
  • Usernamephysicaldirectory(enableglobalvirtualdirectories) – предполагается, что FTP-сессия пользователя ограничена (изолирована) физическим каталогом с именем учетной записи пользователя FTP. Пользователь не может перейти выше своего каталога по структуре FTP. Однако пользователю доступны все созданные глобальные виртуальные каталоги;
  • FTP home directory configured in Active Directory – FTP-пользователь изолируется в рамках своего домашнего каталога, заданного в настройках его учетной записи Active Directory (свойства FTPRoot и FTPDir).

Выберите нужный режим изоляции (я использую второй вариант изоляции ftp пользователей).

Настройка правил брандмауэра Windows для доступа к FTP серверу

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

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

  1. Для этого в настройках FTP сайта в IIS откройте пункт FTPFirewallSupport и в поле DataChannelPortRange укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100;
  2. Сохраните изменения и перезапустите IIS (iisreset);
  3. Откройте панель управления и перейдите в Control Panel\System and Security\Windows Firewall\Allowed apps;
  4. Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для FTP Server.

Затем в настройках 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 Server (FTP Traffic-Out) – порт 20;
  • FTP Server Secure (FTP SSL Traffic-Out) – (при использовании FTP с SSL) порт 989.
Читайте также:  Как изменить язык при запуске windows

Соответственно эти порты нужно открыть на шлюзе (межсетевом экране) для подключения внешних FTP пользователей.

Проверка подключения к FTP серверу с Windows клиента

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

Test-NetConnection -ComputerName yourftpservername -Port 21

Или с помощью команды ftp:

Попробуйте подключиться к своему FTP сайту с помощью любого клиента FTP или непосредственно из Explorer (в адресной строке указав ftp://yourservername/ .

Укажите имя и пароль пользователя.

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

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

Для просмотра текущих подключений пользователей к вашему серверу можно пользоваться значениями счетчиками пользователей IIS через PowerShell или функцией «Текущие сеансы FTP» в консоли IIS. В этой консоли можно посмотреть информацию об имени и IP адресе FTP пользователя и отключить сессию при необходимости.

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

Настройка FTP-сервера на Windows Server 2016

В инструкции описан процесс установки и настройки FTP сервера на виртуальных машинах под управлением операционной системы Windows Server 2016, настройки работы брандмауэра и разделением области доступа для разных пользователей.

Что это такое?

Виртуальный сервер на базе Windows

  • Лицензия включена в стоимость
  • Тестирование 3-5 дней
  • Безлимитный трафик

FTP (File Transfer Protocol) — это аббревиатура для протокола передачи файлов. Как следует из названия, FTP используется для передачи файлов между машинами в сети. Вы можете использовать FTP для обмена файлами между локальным ПК и удаленным сервером, доступа к онлайн-архивам программного обеспечения.

В нашей инструкции будет рассмотрен вариант установки FTP сервера как роли web-сервера IIS, в качестве альтернативы можно использовать другое программное обеспечение, например — FileZilla Server, Titan FTP Server, Home Ftp Server, Ocean FTP Server.

Установка FTP-сервера на сервер Windows

Откройте панель управления сервером Windows и найдите Add roles and features (Добавить роли и компоненты).

В качестве типа установки укажите Role-based or feature-based installation (Установка ролей и компонентов).

Выберете ваш сервер из пула серверов.

В следующем окне отметьте веб-сервер IIS.

В открывшемся окне нажмите Add features (Добавить компоненты).

В следующем окне Features (Компоненты) ничего не выбираем.

Далее в окне Role services (Службы ролей) отметьте FTP сервер.

Установите все выбранные компоненты на сервер с помощью кнопки Install (Установка).

Создание FTP сайта на сервере Windows

Откройте диспетчер служб IIS. Правой кнопкой мыши нажмите Sites и в меню выберите Add FTP Site (Добавить FTP сайт).

Введите имя сайта и путь до директории.

Далее выберите ваш IP-адрес в выпадающем списке. В качестве шифрования отметьте No SSL.

В следующем окне в качестве аутентификации выберите Basic (Обычная). Авторизация — Specified roles or groups (Указанный роли или группы пользователей), введите имя группы FTP-пользователей (пример создания далее). Отметьте галочкой нужные разрешения чтения и записи и кликните кнопку Finish (Готово).

Читайте также:  Файлы windows prefetch что это

Ваш сайт появится древовидной структуре веб-сервера Windows.

Создание группы пользователей

Создание группы Windows необходимо для определения пользователей, которые будут иметь доступ к ftp серверу. Откройте Computer Management (Управление компьютером). В меню слева выберите Groups (Группы). С помощью правой кнопки мыши создайте новую группу (New Group).

В открывшемся окне введите имя группы, описание при необходимости. Чтобы добавить пользователя нажмите Add (Добавить).

Введите имя в поле ввода, для проверки нажмите Check Names (Проверить имена). Если пользователи Windows существуют, нажмите Ok.

После того, как все добавлены, создайте группу с помощью клавиши Create (Создать).

Изоляция пользователей

Для того чтобы после подключения к серверу каждый пользователь попадал в свою директорию и не имел доступ к чужим файлам, необходимо настроить изоляцию. Для этого откройте настройки вашего ftp сайта и выберите FTP User Isolation (Изоляция пользователей).

Выберите User name directory (Каталог имени пользователя) и нажмите Apply (Применить).

Далее с помощью правой кнопки мыши откройте меню вашего ftp-сайта и выберите Add Virtual Directory (Добавить виртуальный каталог).

В поле Alias (Псевдоним) введите псевдоним или имя, в поле с путем введите путь до каталога пользователя, для этого создайте поддиректорию в каталоге ftp-сайта на вашем сервере Windows. Кликните Ok.

Для настройки прав доступа в Диспетчере служб IIS разверните иерархическую структуру вашего ftp сервера. С помощью правой кнопки мыши откройте меню виртуального каталога Windows и выберите Edit Permission (Редактировать разрешения).

Откройте вкладку Security (Безопасность) и нажмите кнопку Advanced (Дополнительно).

В открывшемся окне нажмите кнопку Disable inheritance (Отключение наследования), в новом окне выберите первую опцию, затем кликните Apply (Применить)Ok.

Вернитесь во вкладку Security (Безопасность) и нажмите кнопку Edit (Изменить).

Выделите группу Users, в которой находятся все пользователи и нажмите кнопку Remove (Удалить). Это необходимо для того, чтобы только владелец директории имел к ней доступ.

Теперь добавим пользователя Windows, который будет иметь полный доступ к каталогу. Кликните кнопку Add (Добавить).

Введите имя пользователя виртуальной директории в поле ввода, для проверки нажмите Check Names (Проверить имена). Если пользователи существуют, нажмите Ok.

Далее нужно добавить права на полный контроль каталога. Выберите созданного пользователя и отметьте галочкой все поля Allow (Разрешения).

Далее нажмите Apply (Применить)Ok.

Настройка Брандмауэра

Для внешнего подключения к ftp-серверу необходимо настроить firewall. Для этого откройте Windows Firewall with Advanced Security (Брандмауэр Windows в режиме повышенной безопасности). В вертикальном меню слева выберите Inbound rules (Правила для входящих подключений), затем в вертикальном меню справа New Rule (Создать правило).

В открывшемся окне отметьте тип Predefined (Предопределенные) и в выпадающем списке выберите FTP Server (FTP-сервер). Нажмите Next (Далее).

Отметьте галочками все строки и нажмите Next (Далее).

На следующем шаге выберите Allow the connection (Разрешить подключение) и нажмите Finish (Готово). Чтобы данные правила вступили в силу — перезагрузите сервер.

Подключение к FTP-серверу

Подключиться к FTP-серверу можно несколькими способами, например через стандартную утилиту Windows — Проводник, или через программу FileZilla.

Рассмотрим подключение через Проводник. В адресной строке введите:
ftp://ip-адрес

Откроется окно ввода логина и пароля, укажите данные для подключения из панели управления сервером.

Примечание: веб-сервер IIS позволяет гибко настраивать подключение к FTP-серверу, например разделять видимость пространства для разных пользователей, включать анонимный доступ и настраивать права.

В итоге вы увидите содержимое папки FTP сервера:

Примечание: встроенный ftp сервер web-сервера IIS обладает широкими возможностями, например, такими как: изоляция пользователей, поддержка SSL, ограничение попыток входа на сервер, ведения журнала с различными параметрами.

Оцените статью