Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 26

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

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

Рассмотрим настройку FTP-сервера из набора IIS от компании Microsoft, создание самоподписанного сертификата, а также настройку защищенной передачи файлов.

Операционная система — Windows Server 2012 R2.

Установим Веб-сервер IIS

Запускаем Диспетчер серверов из меню Пуск или кликом по значку на панели задач.

1.png

Выбираем пункт Добавить роли и компоненты.

2.png

В новом окне выбираем, слева, Тип установки, затем Установка ролей или компонентов, кликаем по кнопке Далее.

3.png

Из предложенного пула серверов выбираем необходимый. В нашем случае он один, кликаем Далее.

4.png

В списке ролей находим Веб-сервер (IIS) и ставим галочку напротив этого пункта.

5.png

В новом окне Мастер добавления ролей и компонентов просто кликаем по Добавить компоненты. Данное окно обычно появляется при первой установке Веб-сервера (IIS). Кликаем Далее.

6.png

Слева кликаем по Служба ролей (подпункт Роль Веб-сервера (IIS)). Ставим галку напротив FTP-сервер. При необходимости устанавливаем галку напротив Расширяемость FTP. Кликаем Далее.

7.png

Проверяем компоненты для установки. При первой установке, рекомендуем установить галку в поле Автоматический перезапуск конечного сервера, если потребуется. Кликаем Установить. Важно! При первой установке Веб-сервера (IIS) будут установлены дополнительные компоненты службы.

8.png

Ожидаем завершения процесса установки. По окончании кликаем Закрыть.

9.png

Переходим к настройке сервера.

1. Открываем Администрирование. Можно из меню Пуск, но если там отсутствует этот пункт, то Пуск -> Панель управления -> Система и безопасность — > Администрирование

10.png

2. Запускаем Диспетчер служб IIS

11.png

3. В открывшемся окне, в левой части, разворачиваем ветку под необходимым сервером. Кликаем правой кнопкой мыши по элементу Сайты и выбираем пункт Добавить FTP-сайт…

12.png

4. В новом окне Добавить FTP-сайт указываем имя и путь до каталога где будут расположены файлы. Кликаем Далее.

13.png

5. В обновленном окне указываем на каких IP-адресах будет запущен FTP-сервер (актуально, когда у сервера несколько сетевых интерфейсов либо алиасов), а также указываем порт, который будет прослушивать служба (по умолчанию 21 TCP-порт). Проверяем наличие галочки Запускать сайт FTP автоматически. В настройках SSL указываем Без SSL. Если требуется шифрование, тогда выбираем соответствующий пункт и указываем сертификат. Кликаем Далее.

14.png

6. Следующим этапом настраиваем аутентификацию. В разделе Проверка подлинности выбираем Обычный (если требуется анонимное предоставление доступа следует выбрать Анонимный). В разделе Авторизация можно гибко указать доступ для пользователей. В нашем примере разрешим доступ Всем пользователям, кроме анонимных. Разрешаем чтение и запись. Кликаем Готово.

7. В случае успешности, в окне Диспетчера служб IIS добавится строка с именем добавленного FTP-сервера (сайта). Сворачиваем или закрываем это окно. Оно нам более не понадобится.

Настраиваем брандмауэр.

1. В окне Администрирование открываем Брандмауэр Windows в режиме повышенной безопасности.

2. В открывшемся окне, в левой части, выбираем Правила для входящих подключений. В правой части кликаем по Создать правило…

3. В новом окне выбираем Предопределенные. Из выпадающего списка выбираем FTP-сервер. Кликаем Далее.

4. Отмечаем галочками все пункты, кликаем Далее.

5. Следующим шагом выбираем Разрешить подключение, кликаем Готово.

Выбранные правила будут добавлены в общий список правил входящих подключений. Для применения настроек брандмауэра следует перезагрузить сервер.

Подключиться к серверу можно любым FTP-клиентом указав IP-адрес сервера, имя пользователя и пароль, например FileZilla. Однако, доступность сервера можно проверить и с помощью Internet Explorer. В строке адреса указываем ftp://IP.адрес.нашего.сервера/ (либо доменное имя). Указываем имя пользователя и пароль.

Настройка защищенного (Secure) FTP.

Для защиты трафика рекомендуется использовать SSL-сертификаты. Можно использовать самоподписанные сертификаты либо выданные центром сертификации. Обратите внимание, что при подключении к серверу с самоподписанным сертификатом пользователь будет уведомлен об этом.

Создадим самоподписанный сертификат.

1. Запускаем Диспетчер служб IIS (см. выше Настройку сервера).

2. В открывшемся окне, в левой части, разворачиваем ветку под необходимым сервером. Выбираем Сертификаты сервера.

3. В новом окне, в правой части, выбираем Создать самозаверенный сертификат.

4. В открывшемся окне указываем имя сертификата и его тип — Личный. Кликаем Ок.

Сертификат создан. Теперь перейдем к настройке защищенного FTP.

1. В окне Диспетчер служб IIS, в левой части, разворачиваем ветку под необходимым сервером, выбираем созданный сервер. В основной части окна выбираем Параметры SSL FTP.

2. В обновленном окне, в выпадающем списке, выбираем созданный сертификат, либо выданный центром сертификации, если такой имеется. Выбираем Требовать SSL-соединения. В правой части окна выбираем Применить. Закрываем окно, если необходимо.

Для подключения к защищенному FTP-серверу рекомендуем использовать программу WinSCP.

Файловый протокол — FTP

Шифрование — Явное шифрование TLS/SSL (TLS/SSL Explicit encryption)

Имя узла — IP-адрес или доменное имя.

Порт — 21, либо который был указан.

Имя и пароль пользователя системы.

Кликаем Войти (Login)

Облачные VPS/VDS

Создайте сервер всего за 1 минуту!

от8 руб/месяц

В статье описан процесс установки и настройки FTP-сервера на VPS под управлением операционной системы Windows Server 2012, настройки работы брандмауэра, подключение к серверу, а также дополнительной настройки Secure FTP.

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

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

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

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

Откройте Диспетчер серверов и выберите пункт «Добавить роли и компоненты».

В открывшемся выберите тип установки Установка ролей или компонентов.

Затем выберите нужный сервер из пула. Нажмите Далее.

В списке ролей найдите веб-сервер IIS, и разверните его. Далее нужно отметить галочкой запись «FTP-сервер» и нажать далее.

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

Подтвердите установку FTP-сервера.

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

На дальнейшем шаге укажите название FTP-сайта и введите путь до каталога, в котором будут храниться файлы.

Затем необходимо выбрать IP-адрес сервера (он должен совпадать с адресом, указанным в панели управления сервером), установить галочку напротив «Запускать сайт FTP автоматически» и «Без SSL»:

На последующем шаге выберите обычную аутентификацию и разрешите доступ всем пользователям (с разрешениями на чтение и запись).

В следующем окне в качестве аутентификации выберите Обычная. Авторизация — Все пользователи. Отметьте галочкой нужные разрешения чтения и записи и нажмите кнопку Готово.

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

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

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

   

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

   

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

   

На дальнейшем шаге выберите Разрешить подключение и нажмите Готово. Чтобы данные правила вступили в силу — перезагрузите сервер.

 

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

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

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

   

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

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

   

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

Настройка Secure FTP

Для повышения уровня безопасности вашего файлового сервера можно использовать SSL сертификаты. Существует 2 варианта сертификатов: самоподписанный и заверенный центром сертификации. Наиболее надежным являются файлы центра сертификации, для того чтобы заказать такой SSL-сертификат для веб-сервера IIS воспользуйтесь инструкцией. Процесс установки полученного сертификата на IIS также подробно описан.

При созданном локально самозаверенном сертификате пользователи вашего сервера FTPS будут предупреждены при подключении к серверу.

Для создания самозаверенного сертификата:

  1. В диспетчере IIS откройте IIS> Сертификаты сервера.
  2. Нажмите Создать самозаверенный сертификат в вертикальном меню справа.
  3. Укажите имя сертификата.

Для настройки FTP Secure перейдите на начальную страницу вашего FTP-сайта и двойным щелчком мыши откройте Параметры SSL FTP.

   

В новом окне выберите политику Требовать SSL-соединения, в выпадающем списке выберите ваш сертификат и нажмите действие Применить.

   

Для подключения через защищенный канал используйте программу WinSCP, после запуска:

  • в качестве протокола выберите FTP;
  • шифрование Явное шифрование TLS/SSL;
  • имя хоста — домен или ip-адрес;
  • порт — 21, если не настраивался другой;
  • имя и пароль пользователя системы;

Нажмите Войти.

   

Перед вами откроется содержимое ftp-каталога.

Несмотря на то, что протоколу 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. 1-install-ftp-server-windows2012r2.jpg

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

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

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

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

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

3-iismanager.jpg

Создайте новый FTP сайт (Sites ->AddFTPSite). 4-add-ftp-site.jpg

Имя FTP сайта: MyTestSite

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

5-ftp-site-name.jpg

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

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

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

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

6-ftp-authentification.jpg

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

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

7-ftp-users.jpg

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

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

net user ftp_user1 /add *

9-create-ftp-user.jpg

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

net localgroup ftp_users ftp_user1 /add10-add-user-to-group.jpg

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

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

11-ftp-permissions.jpg

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

Примечание. В зависимости от типа учетных записей необходимо создать следующую структуру каталогов (под %FtpRoot% подразумевается корень сайта FTP, в нашем случае это C:inetpubftproot):

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

12-ftproot-localuser-folder.jpg

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

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

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

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

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

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

  • User name directory (disable global virtualdirectories) – предполагает, что ftp-сессия пользователя изолирована физическим или виртуальным каталогом имя которого соответствует имени пользователя ftp. Пользователи видят только собственный каталог (для них он является корневым) и не могут выйти за его рамки (в вышестоящий каталог дерева FTP). Любые глобальные виртуальные каталоги игнорируются;
  • User name physical directory (enable global virtual directories) – предполагается, что FTP-сессия пользователя ограничена (изолирована) физическим каталогом с именем учетной записи пользователя FTP. Пользователь не может перейти выше своего каталога по структуре FTP. Однако пользователю доступны все созданные глобальные виртуальные каталоги;
  • FTP home directory configured in Active Directory – FTP-пользователь изолируется в рамках своего домашнего каталога, заданного в настройках его учетной записи Active Directory (свойства FTPRoot и FTPDir).

Важно. Если глобальные виртуальные директории активны, все пользователи могут получить доступ ко всем виртуальным каталогам, настроенным в корне FTP сайта (при наличии соответствующих NTFS прав доступа).

14-ftp-user-isolation.jpg

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

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

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

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

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

</ul></ul>

  1. Для этого в настройках FTP сайта в IIS откройте пункт FTP Firewall Support и в поле Data Channel Port Range укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100; FTP-Firewall-Support-768x318.jpg
  2. Сохраните изменения и перезапустите IIS (iisreset);
  3. Откройте панель управления и перейдите в Control PanelSystem and SecurityWindows FirewallAllowed apps;
  4. Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для FTP Server.ftp-server-firewall-pravila.jpg

Затем в настройках 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.

FTP-Server-FTP-Traffic-In.jpg

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

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

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

Test-NetConnection -ComputerName yourftpservername -Port 21

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

ftp yourftpservername

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

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

15-logon-ftp-server.jpg

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

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

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

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

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

Используемые источники:

  • https://serverspace.by/support/help/ftp-server-na-windows-servere-2012/
  • https://1cloud.ru/help/windows/nastroika-ftp-servera-v-windows-server-2012
  • https://winitpro.ru/index.php/2014/10/31/ftp-sajt-s-izolyaciej-polzovatelej-na-windows-server-2012-r2/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации