Как поднять FTP на Server 2012 R2

Posted by

Сегодня я задокументирую шаги, как поднять сервис на операционной системе Windows Standard. Ранее я уже выкладывал во всеобщее обозрение свою пошаговую заметку по настройке FTP на Server 2008 R2 SP1, да оно работает и по сей день. Сейчас же я хочу сделать все то же самое и под Server 2012 R2, за исключение что выкладывать для всех я не намерен. Я потратил кучу времени чтобы разобраться, как и что, а выложив в публичный доступ, на мне все кому нужна данная задача, просто заработают. А потому я только за платный доступ к собственным реальным наработкам. Ведь опыт приобретается с таким трудом.

Дальнейшие действия выполняю с правами Администратора на серверной операционной системе:

Шаг №1: Нажимаю Win + X → Control Panel — Administrative Tools — Server Manager — Dashboard — Add roles and features — Role-based or feature-based installation — Select a server from the server pool (srv-host: 10.7.8.177) отмечаю роль: Web Server (), затем нажимаю по умолчанию Add Features (Web Server (IIS) — Management Tools — [Tools] IIS Management Console) → Нажимаю Next → Нажимаю Next → а теперь устанавливаю компоненты FTP роли Web Server (IIS):

FTP Server (FTP Service, FTP Extensibility) и нажимаю Next, Install, ожидаю:

Поднимаю роль IIS с компонентами FTP сервисаили все то же самое выше, но через консоль командной строки запущенной с правами администратора:

Win + X — Command Prompt (Admin)

C:\Windows\system32>cd /d %systemroot%\system32\WindowsPowerShell\v1.0\

C:\Windows\System32\WindowsPowerShell\v1.0>powershell.exe

PS C:\Windows\System32\WindowsPowerShell\v1.0> Install-WindowsFeature Web-FTP-Server

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

PS C:\Windows\System32\WindowsPowerShell\v1.0> shutdown /r /t 3

Когда система загрузилась, авторизовываемся (хотя можно настроить AutoLogon для удобства) и продолжаем.

Шаг №2: Далее создаем каталог где будут располагаться файлы будущего FTP сервиса для обмена:

Win + X — Command Prompt (Admin)

C:\Windows\system32>mkdir c:\ftpfolder

Права на каталог должны быть следующими, отключено наследование и:

  • группа SYSTEM — Full Control
  • группа Administrators — Full Control
  • группа Users — Удалена
  • добавлена группа NETWORK SERVICE — права до уровня Modify, не полные (т. е. Не Full Control).

Шаг №3: Далее создаем новый FTP сайт:

Win + X — Control panel — Administrative Tools — Internet Information Services (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — и через правый клик мышью на Sites выбираю: => Add FTP Site…

  • FTP site name: srv-host
  • Physical path: c:\ftpfolder

Далее отмечаю на каком интерфейсе будет работать данный сервис:

Binding:

  • IP Addresses: выбираю текущий IP адрес системы, в моем случае: 10.7.8.177
  • Port: 21
  • Start FTP site automatically: отмечаю галочкой
  • SSL: пока не буду задействовать, это тема отдельной заметки и поэтом отмечаю: No SSL

На заметку: позже можно будет сменить порт если возникнет нужда.

После нажимаю Next, далее определяю как и под кем будет происходит аутентификация на FTP ресурсе:

  • Authentication: Basic
  • Authorization:
  • Allow access to: Specified users

и указываю имена учетных записей: ftpuser1,ftpuser2

  • Permissions: отмечаю галочкой Write

и нажимаю Finish.

Шаг №4: Теперь нужно создать данные выше учетные записи и присвоить им пароли, но вот в чем проблема нужной оснастки у меня нет, значит по аналогии, как в Server 2008 R2 нужно доустановить отсутствующие компоненты IIS:

Нажимаю Win + X → Control Panel — Administrative Tools — Server Manager — Dashboard — Add roles and features — Role-based or feature-based installation — Select a server from the server pool (srv-host:10.7.8.177) — разворачиваю роль Web Server (IIS) (11 of 43 installed) — Management Tools (1 of 7 installed) — и отмечаю галочками:

  • IIS 6 Management Compatibility
  • IIS 6 Metabase Compatibility
  • IIS 6 Management Console
  • IIS 6 Scripting Tools
  • IIS 6 WMI Compatibility
  • IIS Management Scripts and Tools
  • Management Service

В процессе возникнет окно установки зависимостей, не забываем согласиться с установкой тоже.

и нажимаю Next, Next, отмечаю галочкой, что по завершении процесса установки компонентов IIS следует перезагрузить сервер (Restart the destinations server automatically if required) и нажимаю Install.

Шаг №5: А теперь возвращаемся к созданию логина и пароля:

Нажимаю Win + X → Control Panel — Administrative Tools — Internet Information Services (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — IIS Manager Users — Add User…

  • User name: ftpuser1
  • Password: Aa1234567@!
  • Confirm password: Aa1234567@!

И еще одну учетную запись создаю с логином: ftpuser2.

Шаг №6: Далее нужно определить что доступ к FTP ресурсу будет осуществлен с использованием созданных учетных записей IIS, а не учетных записей системы:

Win + X → Control Panel – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST(SRV-HOST\Administrator) – Sites – srv-host – FTP Authentication – через правый клик мышью вызываю мастер: Custom Providers… и регистрирую провайдера IisManagerAuth.

Привожу настройки теперь к виду:

  • Anonymous Authentication: Disabled
  • Basic Authentication: Disables
  • IisManagerAuth: Enable

Шаг №7: После запускаю оснастку управления/назначения прав на FTP (либо чтение, либо запись):

Win + X → Control Panel – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST(SRV-HOST\Administrator) — Sites — srv-host — FTP Authorization Rules и определяю права доступа → Add Allow Rule… —

  • Specified users: ftpuser1,ftpuser2
  • Permissions: Read & Write отмечаю галочками.

Шаг №8: Запираем пользователей FTP ресурса данным каталогом указанным в самом начале:

Win + X → Control Panel – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST(SRV-HOST\Administrator) — Sites — srv-host — FTP User Isolation:

  • Do not isolate users. Start users. In: FTP root directory

Шаг №9: После изменяю, что по дефолту авторизация на FTP будет происходить только с применением специальных пользователей (созданных в оснастке IIS), а не Windows пользователей и Windows пользоваталей:

Win + X → Control Panel – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST(SRV-HOST\Administrator) —

(Management) Management Service:

  • Enable remote connections: отмечаю галочкой
  • Identity Credentials: Windows credentials or IIS Manager credentials

А после не забываем сохранить внесенные изменения нажатием на кнопку Apply.

Шаг №10: Затем следует поправить права на каталог IIS сервера:

C:\Windows\system32>CACLS "%SystemDrive%\Windows\System32\inetsrv\config" /G "Network Service":R /E

processed dir: C:\Windows\System32\inetsrv\config

C:\Windows\system32>CACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /G "Network Service":R /E

processed file: C:\Windows\System32\inetsrv\config\administration.config

C:\Windows\system32>CACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /G "Network Service":R /E

processed file: C:\Windows\System32\inetsrv\config\redirection.config

C:\Windows\system32>iisreset /stop

C:\Windows\system32>iisreset /start

Шаг №11: Затем добавляю, что к моему ресурсу с FTP Root каталогом (c:\ftpfolder) должны иметь доступ созданные пользователи IIS:

Win + X → Control Panel – Administrative Tools – Internet Information Services (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — Sites — srv-host — (Management) IIS Manager Permissons — Allow user…

Select the type of user: отмечаю IIS Manager нажимаю Select и выбираю пользователей: ftpuser1,ftpuser2 и нажимаю OK

После проверяю, что сервис поднялся и ожидает соединения на 21 порт:

Win + X → Command Prompt (Admin) -

C:\Windows\system32>netstat -a | findstr /I ":21"

TCP 0.0.0.0:21 srv-host:0 LISTENING

TCP [::]:21 srv-host:0 LISTENING

Шаг №12: Проверяю, как работает подключение через проводник:

Win + X — File Explorer — и в строке адреса указываем по следующему синтаксису обращение к FTP сервису: ftp://10.7.8.177:21/ и нажимаем клавишу Enter, следом появляется окно аутентификации, указываем:

  • User name: ftpuser1
  • Password: Aa1234567@!

и нажимаем кнопку Log On, после авторизация проходит успешно и я могу создавать файлы, папки, удалять, переименовывать.

Итого работает.

Только после советую проверить подключение с другой станции к этому FTP сервису, если подключение не происходит, то нужно проверить наличие включенных правил брандмауэера или отключить его

Win — X — Command prompt (Admin):

C:\Windows\system32>netsh advfirewall set allprofiles state off

а после с Ubuntu системы проверить, открыт ли 21 порт через который работает FTP сервис по умолчанию:

ekzorchik@srv-mail:~$ sudo nmap -p21 10.7.8.177

Starting Nmap 6.40 ( http://nmap.org ) at 2017-03-29 08:59 MSK

Nmap scan report for 10.7.8.177

Host is up (0.00073s latency).

PORT STATE SERVICE

21/tcp open ftp

MAC Address: 08:00:27:9B:68:4A (Cadmus Computer Systems)

Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds

Видно, что порт открыт, значит и удаленное подключение можно произвести, как с Ubuntu системы так и с рабочей станции через утилиту FileZilla.

Вот собственно и все действия которые необходимо проделать чтобы на серверной системе Windows Server 2012 R2 Standard поднять сервис FTP для передачи файлов. Хочу отметить, что для защиты каталога от возможного заражения поставить на текущую систему FSRM с запретом записи исполняемых файлов и уведомлением по почте если такая попытка происходит. А также настройка квоты на FTP каталог. На этом всё, с уважением автор блога Олло Александр aka ekzorchik.