Как известно, для обмена файлами в сети используется протокол FTP прикладного уровня модели OSI. Этот протокол позволяет осуществлять передачу файлов между клиентом и сервером. Он прекрасно работает как в локальной сети организации, так и в сети Интернет, для размещения файлов на каком-либо хостинге. Если по-простому, FTP-сервер и FTP-клиент, это программное обеспечение, которое предоставляет доступ к организованной структуры файлов и каталогов, доступ для их передачи и хранения на стороне сервера. А на стороне клиента, возможность доступа к этой структуре. В этой статье рассмотрим как установить и настроить FTP-сервер на базе ОС Windows Server 2016.
Установка сервера
Рассмотрим процедуру штатного развертывания сервера FTP, с помощью визарда Windows Server 2016. Этот инструмент позволит быстро развернуть сервер и полноценно насладиться его работоспособностью на основных настройках.
Откроем «Диспетчер серверов»:
Добавим роль серверу. Для этого последовательно перейдем в меню «Управление», и выберем «Добавить роли и компоненты»:
Открылось окно мастера, который позволит установить роли, определенные службы и компоненты на основании наших потребностей:
В разделе «Тип установки» выбираем опцию «Установка ролей и компонентов»:
Далее, в следующем окне выбираем необходимый нам сервер, для которого добавляются роли:
В окне ролей необходимо поставить галочку в строке «Веб-сервер (IIS)» и согласиться с добавлением компонентов, необходимых для работы Веб-сервера (IIS):
Следующее окно пропустим, т.к. больше никаких компонентов для нашей задачи добавлять не нужно. По нажатию кнопки «Далее» перейдем к настройке «Службы ролей»:
В этом окне необходимо активировать только «Службу FTP» и «Консоль управления службами IIS», нажать клавишу «Далее»:
На следующем шаге соглашаемся с выбранными компонентами и нажимаем «Установить»:
Процесс установки занимает не много по времени. По окончании процесса необходимо перезагрузить сервер:
Добавление пользователей
Для организации подключений к нашему FTP-серверу необходимо создать пользователя и наделить его соответствующими правами, которые в последствии определят его уровень доступа к файлам и каталогам.
Перейдем к настройкам и выберем в «Диспетчер сервером» раздел «Средства» оснастку «Управление компьютером»:
Далее, добавим нового пользователя как показано ниже:
После добавления роли, на локальном диске С: появился каталог C:inetpubftproot
. Этот каталог создается по умолчанию для FTP сервиса и является корневым. Для следующих этапов организации работы сервера FTP, необходимо создать иерархию каталогов, а также для изоляции пользователей. Архитектура будет следующей:
«имя сайта» -> «users» -> «ftp-client»
В итоге получилось следующая структура: C:inetpubftprootFTPUsersFTPUser
.
Перейдем к настройке сайта.
Настройка сайта
Теперь нужно будет добавить сайт. Переходим в «Диспетчер серверов», выбирает раздел «Средства» и запускаем оснастку «Диспетчер служб IIS»:
Добавляем FTP-сайт правой клавишей мыши как показано на рисунке ниже:
В разделе «Сведения о сайте» даем название FTP-сайту, указываем путь до корневого каталога и нажимаем «Далее»:
Далее, в окне «Параметры привязки и SSL» оставляем без изменений, нажимаем «Далее»:
Следующий шаг: в окне «Сведения о проверке подлинности и авторизация» выберем нашего пользователя FTPUser в разделе «Авторизация». Выберем обычную проверка подлинности и назначим права на «чтение и запись». Там нажмите кнопку «Далее»:
Для того, чтобы каждый FTP-пользователь мог иметь доступ только к своему каталогу на сервере, и не имел возможности просматривать каталоги других пользователей, необходимо настроить параметр «Изоляция пользователей».
В разделе «Изоляция пользователей FTP» отметить «Каталог имени пользователя …» и нажать «Применить» как показано на рисунке ниже:
Настройка брандмауэра для FTP-сервера
После того, как мы произвели соответствующие работы по созданию и настройке FTP-сервера, в Firewall добавились и активировались необходимые правила, для полноценного «хождения» трафика. Но для более успешной работы пользователей с сервером, важно поддерживать подключение в пассивном режиме. Произведем некоторые настройки.
Перейдем в раздел «Поддержка брандмауэра FTP»:
В окне «Диапазон портов канала данных» укажем, к примеру, порты 50000-50100 и нажмем «Применить»:
Перейдем к настройкам Windows Firewall и выберем в «Диспетчер серверов» раздел «Средства». Далее, найдите оснастку «Брандмауэр Windows в режиме повышенной безопасности»:
В окне «Правила для входящих подключений» создадим новое правило:
В открывшемся окне нужно будет выбрать тип «Предопределенные» -> «FTP-сервер» и нажать «Далее»:
Отметим все правила, поставив галочки и нажмем «Далее»:
На следующем шаге необходимо выбрать опцию «Разрешить подключение», после чего, нажать «Далее»:
После окончания настроек Windows Firewall важно перезагрузить сервер.
На этом настройка FTP-сервера на платформе Windows Server 2016 закончена.
Сегодня материал будет посвящен рассмотрению процесса установки и настройки FTP сервера в операционной системе Windows Server 2016, а также мы поговорим о том, что вообще такое FTP и FTP сервер.
Содержание
- Что такое FTP, FTP сервер и для чего это нужно?
- Установка FTP сервера на Windows Server 2016
- Установка FTP сервера с помощью мастера
- Шаг 1
- Шаг 2
- Шаг 3
- Шаг 4
- Шаг 5
- Шаг 6
- Шаг 7
- Шаг 8
- Шаг 9
- Шаг 10
- Установка FTP сервера с помощью Windows PowerShell
- Настройка FTP сервера на Windows Server 2016 с изоляцией пользователей
- Настройка пользователей для FTP сервера
- Настройка структуры каталогов FTP сервера
- Создание и настройка FTP сайта
- Настройка параметров изоляции пользователей FTP сервера
- Удаление FTP сервера в Windows Server 2016
FTP (File Transfer Protocol) – это протокол передачи данных. Разработан он достаточно давно и на текущий момент широко используется в сети Интернет для передачи файлов. Данный протокол достаточно часто используют администраторы сайтов, для того чтобы скачивать или закачивать файлы на свой хостинг в Интернете.
Протокол FTP реализован по схеме «клиент-сервер», т.е. существует FTP-клиенты и соответственно FTP-сервер.
FTP сервер – это сервер, на котором развернуто программное обеспечение, позволяющее принимать файлы с удаленных компьютеров по протоколу FTP и отдавать их. FTP сервер предоставляет пользователю информацию в виде файловой структуры.
FTP клиент – это программное обеспечение, предназначенное для получения доступа к FTP серверу. С помощью FTP клиента пользователи могут скачивать и закачивать файлы на FTP сервер.
Программ позволяющих реализовать FTP сервер на самом деле много (FTP клиентов еще больше), сегодня, как Вы уже поняли, мы поговорим о реализации FTP сервера в операционной системе Windows Server 2016 с помощью стандартных служб ролей.
Установка FTP сервера на Windows Server 2016
Сейчас мы с Вами рассмотрим процесс минимальной установки для FTP сервера, т.е. мы установим только то, что необходимо для FTP сервера, а именно это «Служба FTP» и «Консоль управления службами IIS». Другими словами давайте представим, что у Вас на сервере нет ничего, и у Вас встала задача развернуть FTP сервер, например, для того чтобы какие-нибудь удаленные пользователи, которые не являются сотрудниками Вашей компании, могли скачивать и закачивать файлы.
Примечание! Если у Вас уже установлены какие-нибудь службы роли «Веб-сервер IIS» и в частности «Консоль управления службами IIS», то Вам, конечно же, не нужно их устанавливать, Вам достаточно проверить установлена ли «Служба FTP» и если установлена, то переходить к настройке FTP сервера.
В данном материале я покажу два варианта установки FTP сервера: первый с помощью мастера и второй с помощью Windows PowerShell.
Установка FTP сервера с помощью мастера
Шаг 1
Открываем «Диспетчер серверов», например из меню пуск.
Далее запускаем «Мастер добавления ролей и компонентов», меню «Управление ->Добавить роли и компоненты».
Шаг 2
На этом шаге мастера можем сразу нажать «Далее».
Шаг 3
Затем выбираем тип установки «Установка ролей или компонентов», жмем «Далее».
Шаг 4
На следующем шаге выбираем целевой сервер, у меня он один, поэтому я сразу жму «Далее».
Шаг 5
На этапе выбора ролей отмечаем роль «Веб-сервер (IIS)».
Нам сразу предложат установить и «Консоль управления службами IIS», жмем «Добавить компоненты», так как нам эти средства управления нужны, для того чтобы администрировать FTP сервер, жмем «Далее».
Шаг 6
На этапе выбора компонентов ничего не выбираем, так как никакие компоненты нам больше не нужны. Жмем «Далее».
Шаг 7
На следующем шаге также жмем «Далее».
Шаг 8
И вот мы дошли до выбора служб роли «Веб-сервер (IIS)», где нам нужно снять все ненужные галочки (в случае если нам нужен только FTP сервер), и отметить лишь «Служба FTP» и «Консоль управления службами IIS», жмем «Далее».
Шаг 9
Проверяем параметры установки и жмем «Установить».
Шаг 10
После того как установка будет завершена, об этом нам просигнализирует мастер, жмем «Закрыть» и перезагружаем сервер.
Установка FTP сервера с помощью Windows PowerShell
Для установки ролей и компонентов в Windows PowerShell есть специальный командлет Install-WindowsFeature. Чтобы установить FTP сервер с помощью PowerShell выполните следующие команды.
Для установки службы «Служба FTP»
Install-WindowsFeature -Name "Web-Ftp-Service"
Для установки средства «Консоль управления службами IIS»
Install-WindowsFeature -Name "Web-Mgmt-Console"
После установки лучше перезагрузить сервер.
Настройка FTP сервера на Windows Server 2016 с изоляцией пользователей
После установки службы FTP и консоли управления службами IIS, перезагрузки сервера можно переходить к настройке FTP сервера.
Настройка пользователей для FTP сервера
Первое что нам необходимо сделать, это создать пользователей или группу и добавлять в нее пользователей, которым мы хотим дать право подключаться к FTP серверу.
Для примера я создам пользователя UserFTP. Это можно сделать в оснастке «Управление компьютером». Для того чтобы запустить данную оснастку зайдите в «Диспетчер серверов- > Средства -> Управление компьютером».
Затем открываем пункт «Локальные пользователи и группы», щелкаем правой кнопкой мыши по пункту пользователи и выбираем «Новый пользователь». Заполняем необходимые поля и жмем «Создать». В итоге у нас появится новый пользователь.
Настройка структуры каталогов FTP сервера
Потом нам необходимо настроить каталоги. На диске C по умолчанию создался каталог «C:inetpubftproot» — это корневой каталог FTP сервера. В данном каталоге мы создадим отдельный каталог для нашего FTP сайта, например я его назвал TestFTP. В нем создадим каталог LocalUser (регистр важен) — это для того чтобы работала изоляция пользователей, а уже в данном каталоге создаем папки с названием, которое будет соответствовать имени пользователя в моем случае — это UserFTP. В итоге полный путь к каталогу пользователя будет выглядеть следующим образом — «C:inetpubftprootTestFTPLocalUserUserFTP», и для того чтобы в дальнейшем проверить работу FTP сервера, давайте создадим в этом каталоге тестовый файл, например Test.txt.
Создание и настройка FTP сайта
Открываем «Диспетчер служб IIS».
Затем в окне «Подключения» щелкаем правой кнопки мыши по пункту «Сайты» и выбираем «Добавить FTP-сайт».
Потом вводим название нашего FTP-сайта, я назвал его «TestFTPSite» и указываем каталог, который будет являться корнем нашего FTP-сайта (мы его чуть ранее создали). Жмем «Далее».
На данном шаге указываем привязку к IP адресу, я указал «Все свободные», Вы можете выбрать конкретный IP из выпадающего списка. Также здесь указываем настройки SSL, я указал «Без SSL», но лучше использовать SSL сертификат для шифрования.
Осталось только настроить проверку подлинности и пользователей, которые могут подключаться к нашему FTP серверу. Я выбираю «Обычную» проверку подлинности, т.е. анонимные подключения мне не нужны, и указываю конкретного пользователя UserFTP, я его создал чуть ранее. Он у меня будет иметь права и на чтение и на запись. В «боевой» среде как я уже говорил лучше создать группу и в нее добавлять пользователей FTP, и в данном случае здесь мы бы выбрали пункт «Указанные роли или группы пользователей» и указали созданную нами группу. Жмем «Готово».
Настройка параметров изоляции пользователей FTP сервера
Для того чтобы настроить изоляцию пользователей, т.е. чтобы у каждого пользователя был свой каталог и другие он не мог видеть, выбираем на начальной странице FTP сайта пункт «Изоляция пользователей».
Отмечаем пункт «Каталог имени пользователя (отключить глобальные виртуальные каталоги)» и жмем «Применить».
На этом настройка закончено, проверяем работу FTP сервера, т.е. пробуем подключиться любым FTP клиентом, желательно с другого компьютера. У меня подключился.
Удаление FTP сервера в Windows Server 2016
Для удаления FTP сервера, т.е. тех ролей, которые мы установили выше, можно использовать мастер, т.е. «Мастер удаления ролей и компонентов» или все тот же Windows PowerShell. Для того чтобы запустить мастер, мы также открываем диспетчер серверов и в меню «Управление» выбираем «Удалить роли и компоненты». После того как мастер запустится, мы делаем то же самое что и при установке, только мы не ставим галочки, а наоборот убираем их.
Для того чтобы удалить FTP сервер с помощью Windows PowerShell, можно использовать командлет Uninstall-WindowsFeature. Команды удаления будут выглядеть следующим образом (после удаления необходимо перезагрузить сервер).
Для удаления компонента «Консоль управления службами IIS»
Uninstall-WindowsFeature -Name "Web-Mgmt-Console"
Для удаления службы «Служба FTP»
Uninstall-WindowsFeature -Name "Web-Ftp-Service"
На этом у меня все, надеюсь, материал был Вам полезен, пока!
FTP — протокол прикладного уровня модели OSI, позволяющий осуществлять передачу файлов между клиентом и сервером. Передача файлов при помощи данного протокола возможна как в локальной сети, так и в сети Интернет. Проще говоря, FTP-сервер и FTP-клиент — это программное обеспечение, с помощью которого можно предоставить доступ к организованной структуре файлов и каталогов для их передачи и хранения на стороне сервера. А на стороне клиента, протокол FTP предоставляет возможность доступа к этой структуре. В этой статье рассмотрим как установить и настроить FTP-сервер на VPS, работающем под управлением ОС Windows Server 2016.
Установка сервера
Процедура штатного развертывания сервера FTP возможна с помощью визарда Windows Server 2016. Данный инструмент позволит быстро установить FTP-сервер и организовать его работоспособность на основных настройках.
Для начала откройте «Диспетчер серверов»:
Далее, перейдите в «Добавить роли и компоненты»:
В открывшемся окне мастера нажмите «Далее»:
Здесь в разделе «Тип установки» нужно выбрать опцию «Установка ролей и компонентов»:
В следующем окне необходимо выбрать сервер, для которого добавляются роли и нажать «Далее»:
Поставьте галочку в строке «Веб-сервер (IIS)»:
В открывшемся окне согласитесь с добавлением компонентов, необходимых для работы Веб-сервера (IIS) при помощи кнопки «Добавить компоненты»:
Ещё раз нажмите «Далее»:
Следующее окно можно пропустить потому, что больше никаких компонентов для нашей задачи добавлять не нужно. Нажмите кнопку «Далее» для перехода к настройке «Службы ролей»:
В окне выбора ролей нажмите «Далее»:
На следующем шаге необходимо активировать только «Службу FTP» и «Консоль управления службами IIS». После чего нажать клавишу «Далее»:
В следующем окне следует согласится с набором выбранных компонентов и нажать «Установить»:
После этого должен запуститься процесс установки компонентов. По окончании необходимо перезагрузить сервер.
Добавление пользователей
Для организации подключений к вашему FTP-серверу необходимо создать специального пользователя. В нашем примере такая учётная запись будет называться ftpuser
.
Для этого перейдите в «Диспетчер серверов», откройте раздел «Средства» и оснастку «Управление компьютером»:
Чтобы добавить нового пользователя, на строке «Пользователи» нажмите правую кнопку мыши и перейдите в «Новый пользователь»:
В строку «Пользователь» введите имя создаваемой учётной записи. В строках «Пароль» и «Подтверждение» укажите пароль, с помощью которого данный пользователь будет авторизоваться в системе.
При добавлении роли в предыдущем разделе, на локальном диске С: был создан каталог C:inetpubftproot
. Этот каталог создается по умолчанию для сервиса FTP и является корневым. Для следующих этапов организации работы FTP-сервера, а также для изоляции пользователей, необходимо будет создать иерархию директорий. Архитектура каталогов должна выглядеть следующим образом:
«имя сайта» -> «LocalUser» -> «ftp-client»
Поэтому в нашем примере структура директорий будет C:inetpubftprootFTPLocalUserftpuser
(регистр в названиях каталогов важен).
Настройка сайта
Теперь нужно будет добавить сайт. Для этого перейдите в «Диспетчер серверов», далее, в раздел «Средства», и запустите оснастку «Диспетчер служб IIS»:
Добавьте FTP-сайт при помощи правой клавиши мыши:
Теперь в разделе «Сведения о сайте» укажите название FTP-сайта и путь до корневого каталога. После чего нажмите «Далее»:
В окне «Параметры привязки и SSL» установите опцию «Без SSL», нажмите «Далее»:
Теперь, в окне «Сведения о проверке подлинности и авторизации» следует указать опцию «Обычная» для раздела «Проверка подлинности», ввести имя нашего пользователя ftpuser
в разделе «Авторизация», и там же, необходимо установить разрешения для пользователя. После чего нажмите кнопку «Далее»:
Чтобы каждая учётная запись FTP могла иметь доступ исключительно к своей директории на сервере, при этом не имея возможности просматривать каталоги других пользователей, необходимо настроить параметр «Изоляция пользователей»:
В разделе «Изоляция пользователей FTP» необходимо отметить «Каталог имени пользователя (отключить глобальные виртуальные каталоги)». После чего нажмите «Применить»:
Настройка брандмауэра
Итак, мы создали и настроили FTP-сервер. Теперь необходимо будет произвести настройки брандмауэра, разрешающие доступ к созданному ресурсу.
В «Диспетчере серверов» перейдите в «Средства» и далее в «Брандмауэр Windows в режиме повышенной безопасности»:
Затем перейдите на «Правила для входящих подключений» и там нажмите на «Создать правило…»:
Установите опцию «Предопределенные» и из списка выберите «FTP-сервер». После чего нажмите «Далее»:
Отметьте галочками все три правила и снова нажмите «Далее»:
В следующем окне активируйте «Разрешить подключение» и нажмите «Готово»:
В результате список правил для входящих подключений пополнится тремя только что созданными правилами:
После изменения настроек брандмауэра Windows виртуальный сервер необходимо перезагрузить.
Несмотря на то, что протоколу 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 сайта в Windows Server, предоставление прав пользователям
- Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2
- Настройка правил брандмауэра Windows для доступа к FTP серверу
- Проверка подключения к FTP серверу с Windows клиента
Установка роли 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:inetpubftproot
Для защиты передаваемых по сети 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 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.
Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу:
net localgroup ftp_users /add
Создайте нового локального пользователя:
net user ftp_user1 /add *
Добавьте пользователя в группу:
net localgroup ftp_users ftp_user1 /add
Точно так же создайте еще двух пользователей.
Предоставьте созданной группе ftp_users права (RW) на каталог C:inetpubftproot.
Внутри каталога 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% |
Вернитесь в консоль IIS и в разделе сайта FTP Authorization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).
Настройка изоляции 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 прав доступа).
Выберите нужный режим изоляции (я использую второй вариант изоляции ftp пользователей).
При любых изменениях настроек FTP сайта в IIS желательно перезапускать службу Microsoft FTP Service (FTPSVC).
Настройка правил брандмауэра Windows для доступа к FTP серверу
При установке роли FTP сервера в настройках Windows Firewall автоматически активируются все необходимые правила, которые нужна для доступа пользователей к FTP.
Для корректной работы FTP севера в пассивном режиме FTP пользователям нужно подключаться к RPC диапазону портов (1025-65535). Чтобы не открывать все эти порты на внешнем файерволе, вы можете ограничить диапазон динамических TCP портов, используемых для передачи данных.
- Для этого в настройках FTP сайта в IIS откройте пункт FTP Firewall Support и в поле Data Channel Port Range укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100;
- Сохраните изменения и перезапустите IIS (iisreset);
- Откройте панель управления и перейдите в Control PanelSystem and SecurityWindows FirewallAllowed apps;
- Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для 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.
Соответственно эти порты нужно открыть на шлюзе (межсетевом экране) для подключения внешних FTP пользователей.
Проверка подключения к FTP серверу с Windows клиента
Вы можете проверить доступность портов на FTP сервере с помощью командлета Test-NetConnection:
Test-NetConnection -ComputerName yourftpservername -Port 21
Или с помощью команды ftp:
ftp yourftpservername
Попробуйте подключиться к своему FTP сайту с помощью любого клиента FTP или непосредственно из Explorer (в адресной строке указав ftp://yourservername/.
Укажите имя и пароль пользователя.
В результате у вас откроется содержимое домашнего каталога с файлами пользователя (являющимся для пользователя корнем FTP сайта). Как вы видите, сессия пользователя является изолированной и пользователь видит на ftp сервера только свои файлы.
Совет. Если вы хотите использовать анонимный доступ (All anonymous Users), подключаться к вашему FTP серверу смогут любые пользователи, используя в качестве имени anonymous или guest, а в качестве пароля — email-адрес. При анонимном подключении к FTP сайту – сессия будет ограничена каталогом LocalUserPublic (естественно каталог Public должен быть создан предварительно).
Для просмотра информации о доступе пользователей к FTP серверу можно использовать журналы FTP, которые по умолчанию хранятся в каталоге c:inetpublogslogfiles в файлах формата u_exYYMMDD.log.
Для просмотра текущих подключений пользователей к вашему серверу можно пользоваться значениями счетчиками пользователей IIS через PowerShell или функцией «Текущие сеансы FTP» в консоли IIS. В этой консоли можно посмотреть информацию об имени и IP адресе FTP пользователя и отключить сессию при необходимости.
Итак, мы рассмотрели, как настроить FTP сайт с изоляцией пользователей на базе Windows Server 2016 / 2012 R2. В режиме изоляции пользователи аутентифицируются на FTP под своими локальным или доменным учетными записями, после чего они получают доступ к своему корневому каталогу, соответствующему имени пользователя.
Шаг 1. Установка FTP в Windows Server 2016
1. На начальном экране щелкните плитку Диспетчер сервера
2. В панели мониторинга диспетчера сервера выберите Добавить роли и компоненты
3. На странице Перед началом работы нажмите кнопку Далее
4. На странице Выбор типа установки выберите Установка ролей или компонентов и нажмите кнопку Далее
5. На странице Выбор целевого сервера нажмите пункт Выберите сервер из пула серверов, выберите сервер в списке Пул серверов, а затем нажмите кнопку Далее
6. На странице Выбор ролей сервера выберите Веб-сервер (IIS), в появившемся меню нажмите Добавить компоненты
7. На странице Выбор компонентов нажмите кнопку Далее
8. На странице Роль веб-сервера (IIS) нажмите кнопку Далее
9. На странице Выбор служб ролей разверните пункт FTP-сервер и выберите Служба FTP. Дополнительно разверните пункт Средства управления и выберите Консоль управления службами IIS установки Диспетчера служб IIS
10. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить
11. После завершения установки нажимаем Закрыть
Шаг 2. Добавление FTP-сайта
После установки службы FTP на веб-сервере IIS можно добавлять FTP-сайты. Добавляйте FTP-сайт, когда требуется разрешить клиентам передавать файлы на сайт и с сайта с помощью протокола FTP.
Добавление FTP-сайта
1. В диспетчере серверов откройте Диспетчер служб IIS
2. В области Подключения разверните узел сервера и щелкните узел Сайты
В области Действия выберите команду Добавить FTP-сайт, чтобы открыть мастер добавления FTP-сайта
3. На странице сведений о сайте в поле Имя FTP-сайта введите уникальное понятное имя для FTP-сайта. В поле Физический путь введите физический путь или нажмите кнопку обзора (…), чтобы найти физический путь к каталогу содержимого. Пользователь должен обладать соответствующими правами для выполнения действий с выбранным каталогом. Нажмите кнопку Далее, чтобы открыть страницу Параметры привязки и SSL
4. В разделе Привязка в списке IP-адрес выберите или введите IP-адрес, если не требуется оставить значение Все неназначенные.
В поле Порт введите номер порта. Дополнительно можно ввести имя узла в поле Виртуальный узел, если планируется разместить несколько FTP-сайтов на одном IP-адресе.
Если планируется запускать сайт вручную, снимите флажок Запускать FTP-сайт автоматически
В разделе SSL в списке Сертификат SSL можно выбрать сертификат. Дополнительно можно нажать Обзор, чтобы открыть диалоговое окно Сертификаты и проверить сведения об избранном сертификате.
Существуют следующие варианты:
o Без SSL
o Разрешить SSL: разрешает FTP-серверу поддерживать как SSL-соединения, так и другие соединения с клиентом.
o Требовать SSL: требует SSL-шифрование для обмена данными между FTP-сервером и клиентом.
Нажмите кнопку Далее, чтобы открыть страницу сведений о проверке подлинности и авторизации.
5. В разделе Проверка подлинности выберите способы проверки подлинности, которые планируется использовать:
o Анонимный доступ: для доступа к контенту пользователю достаточно предоставить только имя пользователя anonymousили ftp. (Большинство FTP-клиентов (но не все) автоматически вводит имя пользователя.)
o Основная: для доступа к контенту пользователь должен предоставить правильное имя пользователя и пароль. Поскольку обычная проверка подлинности передает по сети нешифрованные пароли, используйте эту проверку подлинности только в том случае, если известно, что соединение между клиентом и FTP-сервером является защищенным, например, с помощью SSL.
В разделе Авторизация выберите в списке Разрешить доступ один из следующих вариантов:
o Всем пользователям: доступ к контенту разрешен всем пользователям, и анонимным, и идентифицированным.
o Анонимным пользователям: анонимные пользователи имеют доступ к контенту.
o Указанным ролям или группам пользователей: доступ к контенту разрешен только членам определенных ролей или групп пользователей. Укажите в соответствующем поле роль или группу пользователей.
o Указанным пользователям: доступ к контенту разрешен только указанным пользователям. Введите имя пользователя в соответствующем поле.
Если из списка Разрешить доступ выбирается именно этот параметр, выберите также выбрать одно или оба следующих разрешения:
o Чтение: авторизованным пользователям разрешается чтение содержимого каталога.
o Запись: авторизованным пользователям разрешается запись в этот каталог.
После завершения всех настроек нажмите кнопку Готово.
Шаг 3. Проверка работоспособности FTP-сайта
1. Откройте браузер и введите строку ftp://<ip-адрес>. Появится окно аутентификации. Имя пользователя должно состоять из латинских символов (например, userpc)
2. После прохождения аутентификации в окне браузера вы увидите следующую страницу. Для открытия FTP-сайта в проводнике необходимо выполнить указанные на ней действия, после чего откроется содержимое папки FTP-сервера
3. После этого необходимо произвести настройки брандмауэра с помощью команд, которые нужно выполнить в командной строке:
1. netsh advfirewall firewall add rule name=”FTP” action =allow protocol=TCP dir=in localport=21
2. netsh advfirewall firewall add rule name=”sFTP” action =allow protocol=TCP dir=in localport=900
3. netsh advfirewall firewall add rule name=”FTPpassive” action =allow protocol=TCP dir=in localport=1024-65535
4. Подключение к созданному FTP-сайту можно проверить с клиентского компьютера через браузер, набрав в адресной строке ftp://<ip-адрес>.
Содержание
- Настройка FTP-сервера в Windows Server 2016
- Установка
- Настройка
- Изоляция пользователей
- Как настроить FTP на Windows Server 2016
- Установка сервера
- Добавление пользователей
- Настройка сайта
- Настройка брандмауэра
Настройка FTP-сервера в Windows Server 2016
Протокол FTP (File Transfer Protocol) используется для передачи файлов. Установив соответствующее программное обеспечение, можно превратить в практически любой компьютер. В этой статье показана настройка в Windows Server 2016.
Установка
В данной статье рассмотрен классический вариант установки в Windows Server 2016 — как роли . Но вы можете установить только , установив стороннее программное обеспечение, например, Home Ftp Server, FileZilla Server и др.
Откройте Диспетчер серверов (рис. 1) и выберите команду Добавить роли и компоненты.
Рис. 1. Диспетчер серверов
В появившемся окне дважды нажмите кнопку Далее. Выберите сервер из пула серверов, на который будет произведена установка (рис. 2).
Рис. 2. Выбор сервера
Выберите роль (IIS) и нажмите кнопку Добавить компоненты (рис. 3).
Рис. 3. Нажмите кнопку Добавить компоненты
В следующем окне, Компоненты, ничего выбирать не нужно. Просто нажмите кнопку Далее дважды. В окне Выбор служб ролей добавьте службу ролей (рис. 4).
Рис. 4. Выбор служб ролей
Нажмите кнопку Далее, а затем кнопку Установить для установки выбранных компонентов (рис. 5).
Рис. 5. Нажмите кнопку Установить
Настройка
После установки программного обеспечения необходимо добавить . Откройте диспетчер служб IIS (его можно выбрать из меню Средства Диспетчера серверов).
Рис. 6. Добавление
Введите название и путь к каталогу сайта (рис. 7).
Рис. 7. Задаем путь к корневому каталогу
Далее выберите из списка , который будет использован , выберите порт (можно выбрать нестандартный), включите параметр Запускать сайт FTP автоматически и выберите опцию Без SSL дабы упростить настройку.
Рис. 8. Параметры
Далее нужно установить способы проверки подлинности. Если выбрать Анонимный, то пользователи могут входить, используя в качестве имени пользователя anonymous или guest, а в качестве пароля — . Режим по понятным причинам использовать не рекомендуется без крайней на то необходимости. При выборе обычной авторизации можно указать, кто сможет войти:
- Все пользователи — все зарегистрированные пользователи.
- Анонимные пользователи — только анонимные пользователи.
- Указанные роли или группы пользователей — только указанные роли/группы пользователей.
- Указанные пользователи — можно будет указать, каким именно пользователям разрешен вход на .
Рис. 9. Параметры проверки подлинности
Также нужно выбрать поддерживаемые операции — чтение и запись. Поскольку я разрешаю доступ анонимным пользователям, то выбираю только чтение. Такой режим полезен для организации архива общедоступных документов. Любой желающий может подключиться к архиву и скачать необходимые ему документы.
Нажмите кнопку Готово. Собственно, на этом сервер будет создан и настроен. Попробуем подключиться к нему. Откройте любой и попробуйте подключиться к серверу, используя выбранный ранее . В качестве имени юзера и пароля используйте либо anonymous/email, либо данные реальной учетной записи. На рис. 10 показано успешное подключение. После подключения была введена команда dir для вывода содержимого корневого каталога сервера.
Рис. 10. Подключение к прошло успешно
Собственно, если ставится задача создания анонимного FTP, то она уже решена. Но на практике часто нужно разграничить юзеров — чтобы каждый из них мог работать со своими файлами.
Изоляция пользователей
Чтобы после подключения к серверному компьютеру каждый юзер попадал в свой каталог и не имел доступа к другим каталогам, настраивается изоляция пользователей (рис. 11).
Рис. 11. Начальная страница диспетчера служб IIS
Откройте изоляцию пользователей FTP, выберите Каталог имени пользователя и нажмите Применить (рис. 12).
Рис. 12. Настройка изоляции пользователей
Далее щелкните правой кнопкой мыши на вашем и выберите команду Добавить виртуальный каталог (рис. 13). В появившемся (рис. 14) окне в поле Псевдоним введите имя пользователя, далее укажите путь до каталога. Можно создать в каталоге каталог с именем юзера. Нажмите кнопку OK.
Рис. 13. Выберите команду Добавить виртуальный каталог
Рис. 14. Параметры виртуального каталога
Далее разверните иерархию вашего серверного компьютера и щелкните по только что созданной виртуальной папке правой кнопкой мыши. Выберите команду Редактировать разрешения. На вкладке Безопасность (рис. 15) нажмите кнопку Дополнительно.
Рис. 15. Безопасность
Далее нажмите кнопку Отключение наследования (рис. 16). Выберите вариант Преобразовать унаследованные разрешения в явные разрешения этого объекта (рис. 17).
Рис. 16. Нажмите кнопку Отключение наследования
Рис. 17. Выберите первый вариант
Вернитесь на вкладку Безопасность и нажмите кнопку Изменить. В появившемся окне выберите группу Пользователи и нажмите кнопку Удалить. Это необходимо для того, чтобы только владелец директории имел к ней доступ (рис. 18).
Рис. 18. Настройка разрешений
Теперь нажмите кнопку Добавить (рис. 18), чтобы добавить юзера, который будет обладать правами доступа к этому виртуальному каталогу. Введите имя пользователя виртуальной папки и нажмите кнопку Проверить имена (рис. 19). Нажмите OK.
Рис. 19. Выбираем пользователя
Теперь нужно задать разрешения. Выберите пользователя, разрешите ему все — как показано на рис. 20.
Рис. 20. Настройка разрешений для пользователя
Нажмите кнопку OK. Собственно, на этом все. Возможно, вам нужно будет настроить брандмауэр, разрешив входящие подключения к . Брандмауэр Windows Server 2016 уже содержит предопределенные правила для файловых серверных компьютеров. При создании правила для входящих соединений просто выберите Предопределенные, а затем — (рис. 21). Далее отметьте все переключатели (рис. 22) и выберите действие — Разрешить подключение (рис. 23).
Рис. 21. Выбор предопределенного правила брандмауэра
Рис. 22. Отметьте все
Рис. 23. Разрешить подключение
Надеемся, данная статья облегчила настройку вашего . Напоминаем, что кроме традиционного способа, можно установить и стороннее программное обеспечение — специально для тех, кто не хочет устанавливать ради FTP.
Источник
Как настроить FTP на Windows Server 2016
FTP — протокол прикладного уровня модели OSI, позволяющий осуществлять передачу файлов между клиентом и сервером. Передача файлов при помощи данного протокола возможна как в локальной сети, так и в сети Интернет. Проще говоря, FTP-сервер и FTP-клиент — это программное обеспечение, с помощью которого можно предоставить доступ к организованной структуре файлов и каталогов для их передачи и хранения на стороне сервера. А на стороне клиента, протокол FTP предоставляет возможность доступа к этой структуре. В этой статье рассмотрим как установить и настроить FTP-сервер на VPS, работающем под управлением ОС Windows Server 2016.
Установка сервера
Процедура штатного развертывания сервера FTP возможна с помощью визарда Windows Server 2016. Данный инструмент позволит быстро установить FTP-сервер и организовать его работоспособность на основных настройках.
Для начала откройте «Диспетчер серверов»:
Далее, перейдите в «Добавить роли и компоненты»:
В открывшемся окне мастера нажмите «Далее»:
Здесь в разделе «Тип установки» нужно выбрать опцию «Установка ролей и компонентов»:
В следующем окне необходимо выбрать сервер, для которого добавляются роли и нажать «Далее»:
Поставьте галочку в строке «Веб-сервер (IIS)»:
В открывшемся окне согласитесь с добавлением компонентов, необходимых для работы Веб-сервера (IIS) при помощи кнопки «Добавить компоненты»:
Ещё раз нажмите «Далее»:
Следующее окно можно пропустить потому, что больше никаких компонентов для нашей задачи добавлять не нужно. Нажмите кнопку «Далее» для перехода к настройке «Службы ролей»:
В окне выбора ролей нажмите «Далее»:
На следующем шаге необходимо активировать только «Службу FTP» и «Консоль управления службами IIS». После чего нажать клавишу «Далее»:
В следующем окне следует согласится с набором выбранных компонентов и нажать «Установить»:
После этого должен запуститься процесс установки компонентов. По окончании необходимо перезагрузить сервер.
Добавление пользователей
Для организации подключений к вашему FTP-серверу необходимо создать специального пользователя. В нашем примере такая учётная запись будет называться ftpuser .
Для этого перейдите в «Диспетчер серверов», откройте раздел «Средства» и оснастку «Управление компьютером»:
Чтобы добавить нового пользователя, на строке «Пользователи» нажмите правую кнопку мыши и перейдите в «Новый пользователь»:
В строку «Пользователь» введите имя создаваемой учётной записи. В строках «Пароль» и «Подтверждение» укажите пароль, с помощью которого данный пользователь будет авторизоваться в системе.
При добавлении роли в предыдущем разделе, на локальном диске С: был создан каталог C:inetpubftproot . Этот каталог создается по умолчанию для сервиса FTP и является корневым. Для следующих этапов организации работы FTP-сервера, а также для изоляции пользователей, необходимо будет создать иерархию директорий. Архитектура каталогов должна выглядеть следующим образом:
Поэтому в нашем примере структура директорий будет C:inetpubftprootFTPLocalUserftpuser (регистр в названиях каталогов важен).
Настройка сайта
Теперь нужно будет добавить сайт. Для этого перейдите в «Диспетчер серверов», далее, в раздел «Средства», и запустите оснастку «Диспетчер служб IIS»:
Добавьте FTP-сайт при помощи правой клавиши мыши:
Теперь в разделе «Сведения о сайте» укажите название FTP-сайта и путь до корневого каталога. После чего нажмите «Далее»:
В окне «Параметры привязки и SSL» установите опцию «Без SSL», нажмите «Далее»:
Теперь, в окне «Сведения о проверке подлинности и авторизации» следует указать опцию «Обычная» для раздела «Проверка подлинности», ввести имя нашего пользователя ftpuser в разделе «Авторизация», и там же, необходимо установить разрешения для пользователя. После чего нажмите кнопку «Далее»:
Чтобы каждая учётная запись FTP могла иметь доступ исключительно к своей директории на сервере, при этом не имея возможности просматривать каталоги других пользователей, необходимо настроить параметр «Изоляция пользователей»:
В разделе «Изоляция пользователей FTP» необходимо отметить «Каталог имени пользователя (отключить глобальные виртуальные каталоги)». После чего нажмите «Применить»:
Настройка брандмауэра
Итак, мы создали и настроили FTP-сервер. Теперь необходимо будет произвести настройки брандмауэра, разрешающие доступ к созданному ресурсу.
В «Диспетчере серверов» перейдите в «Средства» и далее в «Брандмауэр Windows в режиме повышенной безопасности»:
Затем перейдите на «Правила для входящих подключений» и там нажмите на «Создать правило…»:
Установите опцию «Предопределенные» и из списка выберите «FTP-сервер». После чего нажмите «Далее»:
Отметьте галочками все три правила и снова нажмите «Далее»:
В следующем окне активируйте «Разрешить подключение» и нажмите «Готово»:
В результате список правил для входящих подключений пополнится тремя только что созданными правилами:
После изменения настроек брандмауэра Windows виртуальный сервер необходимо перезагрузить.
Источник
In this article, We want to teach you How To Set up an FTP server on Windows Server 2016.
FTP stands for File Transfer Protocol and is used primarily to transfer files between different computers via the internet.
For example, if you have a bunch of files you want to upload to a website, you can use FTP to transfer files to the website hosting server directly.
As a basic explanation, FTP uses two connections: a control channel and a data channel. The control channel creates a connection between the two computers and establishes any credentials. The data channel is responsible for the transfer of data between the two computers.
Set up an FTP server on Windows Server 2016
To install FTP on your Windows server 2016, you need to set up IIS on your Windows server.
If you don’t have enabled IIS on your Windows server, you can follow our article How To Set up IIS on Windows Server 2016.
Now follow the steps below to install FTP on your Windows Server.
Install FTP on Windows Server 2016
After you installed IIS on your Windows server, from your start menu search for the Server Manager and click on it to open it.
You will see the Server Manager dashboard. Then, click on Add roles and Features.
You need to pass the three windows by clicking on the Next button to see the Select Roles Services window.
In the Select Roles Services window, under the Web Server section, check the box next to the FTP Server and click on the Next button.
Note: If you don’t set up IIS before, check the box next to the Web server too.
In the Confirmation installation section window, a report of what will be installed on your Windows server is displayed. You need to click on the Install button to install the roles.
When your installation is completed, click on the Close button.
Now you have an FTP server installed on your system.
Conclusion
At this point, you learn to set up an FTP server on Windows Server 2016.
In future articles, we will show you how to create an FTP site on Windows Server 2016.
Hope you enjoy it.
Also, you may be like these articles:
Add Multiple IP Addresses on Windows Server 2016
Set up Multiple RDP sessions on Windows Server 2016
The FTP protocol is one of the oldest protocols (it is more than 40 years old), but it is still widely used where a simple file transfer protocol is required. It is possible to install an FTP server on any version of Microsoft operation system. Last deep modernization of the ftp service was made in Windows 7 / Server 2008 R2 (actually the service code has almost been written from scratch). The security of the service has significantly improved and a number of new features have appeared. In particular, FTP server on Windows allows you to configure FTP user isolation. It allows to restrict access of many users to their own folders on a single FTP server.
Due to the isolation, users can work only with their folders and can’t go up in the FTP directory tree (the user’s top ftp level directory is displayed as the root of the FTP server). Thus, the access to the data of other users on the FTP server can be prevented. FTP user isolation is widely used by ISP/hosting providers when it is necessary to provide individual access to a single file storage for different users.
Like in previous Windows versions, the FTP service in Windows Server 2016 / 2012 R2 (do not confuse it with sFTP and TFTP) is based and deeply integrated into the IIS service and has a single administrative management interface.
In this article we’ll show how to install an IIS-based FTP server on Windows Server 2016/2012 R2 and configure the FTP user isolation (this manual also applies to Windows 10 and 8.1).
Contents:
- How to Install the FTP Server Role on Windows Server 2016/ 2012 R2?
- Creating an FTP Site, Managing FTP User Permissions
- How to Configure FTP User Isolation on Windows Server 2016/2012 R2?
- Configuring Windows Firewall Rules to Access the FTP Server
- Testing an FTP Server Connection from Windows
How to Install the FTP Server Role on Windows Server 2016/ 2012 R2?
You can install the FTP service using the Server Manager console by checking the option FTP Service and FTP Extensibility in the section Web Server (IIS) -> FTP Server.
Also you can install the FTP server role with a single PowerShell command:
Install-WindowsFeature Web-FTP-Server
To install the FTP server management console, run the following command:
Install-WindowsFeature -Name "Web-Mgmt-Console"
Creating an FTP Site, Managing FTP User Permissions
Start the Server Manager and open the IIS management console (Internet Information Service Manager).
Create a new FTP site (Sites -> Add FTP Site).
The name of the FTP site: MyTestSite
The root directory of the FTP site: C:inetpubftproot
To protect the FTP data transmitted over the network, it is possible to configure SSL for FTP (in this case, all the data and passwords/accounts sent by ftp users during session will be encrypted), but in our demonstration this is not necessary. All other settings are left default.
You can manage your FTP site using the PowerShell module WebAdministration. For example, to create a new FTP site, just run the commands:
Import-Module WebAdministration
# Set the FTP site name
$FTPSiteName = 'CORP_FTP'
#FTP folder
$FTPRoot = 'D:wwwFTPRoot'
#FTP port
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
Select a new FTP site and disable the Anonymous Authentication in the FTP Authentication section. Basic Authentication must be enabled.
The FTP service on Windows Server 2016/2012 R2 can use two account types: domain or local. Depending on the account type, there are some differences in the structure of FTP directories and user isolation settings. To make it easier to describe, we will use local Windows accounts.
Create some FTP users, suppose, these are ftp_user1, ftp_user2 and ftp_user3. Also create a group ftp_users which includes these users. You can create local users in the Local Users and Groups section of the Computer Management console.
You can also create local users and groups from the command prompt (or using PowerShell). Create a local group:
net localgroup ftp_users /add
Create a new local user:
net user ftp_user1 /add *
Add user to group:
net localgroup ftp_users ftp_user1 /add
Create the two other users in the same way.
Assign the Read&Write permissions on the directory C:inetpubftproot for the ftp_users group.
Create a directory with the name LocalUser (the name must be the same, it’s important!!!) in the folder C:inetpubftproot. Then make three directories under with the names ftp_user1, ftp_user2, ftp_user3 in the folder C:inetpubftprootLocalUser.
Note. Depending on the account type, you have to create the following directory structures (under %FtpRoot% we mean the root of the FTP site; in our case it is C:inetpubftproot):
Account Type | Syntax of Home Directory Naming |
Anonymous users | %FtpRoot%LocalUserPublic |
Local Windows account | %FtpRoot%LocalUser%UserName% |
Domain Windows account | %FtpRoot%%UserDomain%%UserName% |
Special IIS Manager or ASP.NET accounts | %FtpRoot%LocalUser%UserName% |
Return to the IIS console and create a new rule (Add AllowRules) in FTP Authorization Rules section of the site. Specify that ftp_users group must have the read and write permisions.
How to Configure FTP User Isolation on Windows Server 2016/2012 R2?
Let’s move to configuring FTP user isolation. The isolation of FTP users is configured on the FTP site level, not the entire server. FTP user isolation allows you to organize your ftp-home folder for each user.
Open FTP User Isolation in the settings of the FTP site.
This section contains several settings. The first two of them don’t suggest user isolation:
- FTP root directory (an FTP session of a user starts in the root directory of the FTP site);
- User name directory (the user starts with physical/virtual directory with the username. If the directory is missing, a session starts in the root FTP directory of the site).
The next three options are different modes of user isolation:
- User name directory (disable global virtual directories) suggests that the ftp session of a user is isolated in a physical/virtual directory that has the same name as the ftp user. Users see only their own directory (it is their root ftp-directory) and cannot go beyond it (to the upper directory of the FTP tree). Any global virtual directories are ignored;
- User name physical directory (enable global virtual directories) suggests that the ftp session of a user is isolated in a physical directory that has the same name as the name of the ftp user account. A user cannot go above its directory. However, all created global virtual directories are available to the user;
- FTP home directory configured in Active Directory – an FTP user is isolated within his home directory specified in the settings of his Active Directory account (FTPRoot and FTPDir properties).
Important. If the global virtual directories are active, all users can access all virtual directories set in the root of the FTP site (if they have the appropriate NTFS permissions).
Select the required isolation mode (I use the second option to isolate ftp users).
It is advisable to restart the Microsoft FTP service (FTPSVC) with any changes to the FTP site settings.
Configuring Windows Firewall Rules to Access the FTP Server
When you install the FTP server role, all necessary rules that are needed for users to access FTP are automatically activated in the Windows Firewall settings.
For FTP to work correctly in passive FTP mode, users need to connect to the RPC port range (1025-65535). In order not to open all these ports on an external firewall, you can limit the range of dynamic TCP ports used for FTP data transmission.
- Open the FTP Firewall Support section in FTP site settings and in the Data Channel Port Range field specify the port range that you want to use for FTP connections. For example – 50000-50100;
- Save the changes and restart IIS (
iisreset
); - Open the Windows Control Panel and go to the Control PanelSystem and SecurityWindows FirewallAllowed apps;
- Make sure that the list of applications that are allowed access through the firewall contains permissions for the FTP Server role.
Then check that the following rules are enabled in the settings of Windows Firewall with Advanced Security:
- FTP Server (FTP Traffic-In) – TCP protocol, port 21;
- FTP Server Passive (FTP Passive Traffic-In) – local port address 1024-65535 (50000-50100 in our case);
- FTP Server Secure (FTP SSL Traffic-In) –port 990 (when using FTP with SSL);
- FTP Server (FTP Traffic-Out) – port 20;
- FTP Server Secure (FTP SSL Traffic-Out) –port 989 (when using FTP with SSL).
Accordingly, these ports need to be opened on your router (gateway, firewall) so that external FTP users can connect to your site.
Testing an FTP Server Connection from Windows
You can check the availability of ports on an FTP server using the Test-NetConnection cmdlet:
Test-NetConnection -ComputerName yourftpservername -Port 21
Or using the ftp command:
ftp yourftpservername
Try to connect to your FTP site with any FTP client or directly from File Explorer (specify ftp://yourservername/ in the address bar).
Enter the user name and password.
And now you have access to the home directory with the user’s files (which is the root of the FTP site for the user). As we can see, the user session is isolated and the user sees only his files on the ftp server.
Tip. If you want to use anonymous access (All anonymous Users), any users will be able to connect to your FTP server using the credentials: anonymous or guest as the username and email address as password. If you connect to an FTP site anonymously, the session will be limited to the LocalUserPublic directory (it’s obvious, the Public directory must be created in advance).
You can use FTP logs to view information about user access to the FTP server. The log files are stored by default in the c:inetpublogslogfiles folder in the u_exYYMMDD.log files.
To view the active user connections to your FTP server, you can use the values of the IIS performance counters through PowerShell or the “Current FTP Sessions” section in the IIS console. In this console, you can view the names and the IP address of the FTP user’s and disconnect the ftp-session if necessary.
So, we have looked at how to configure an FTP site with the user isolation based on Windows Server 2016 / 2012 R2. In the isolation mode the users are authenticated on FTP using their local or domain credentials to access their root directory corresponding to the username.