Windows server 2012 не работает ftp

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

Сегодня я задокументирую шаги, как поднять FTP сервис на операционной системе Windows Server 2012 R2 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 (IIS), затем нажимаю по умолчанию 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, ожидаю:

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

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

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

  • 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.

Читайте также:  Install asp net core linux

Шаг №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
  • B asic 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 сервис по умолчанию:

$ 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

Читайте также:  Linux определить размер папки

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.

Как настроить FTPS сервер на базе Windows Server 2012 R2

Все знают или должны знать что работа через протокол FTP увеличивает риски по перехвату передаваемых аутентификационных данных, т. к. отсутствуют какие-либо средства его защиты, т. е. Имеется реальная возможность перехвата логина и пароля на подключение. Чтобы защитить Ваш FTP сервер я бы порекомендовал настроить работу FTP через SSL или использовать связку FTP через SSH (SFTP). Ладно, ранее я показал и сам использую развернутый FTP сервис, как на Windows серверных системах, таких как Server 2008 R2 & Server 2012 R2 & Ubuntu Server. В самом последней системе я использую защиту, а вот как это сделать до сегодняшней заметки я не знал применительно к Windows системам, но задокумментировав все шаги по этому исправлению текущей ситуации я покажу Вам как это сделать.

В данной заметке все действия будут ориентированы на серверную систему Windows Server 2012 R2

Устанавливаем роль IIS (это будет версия: 8.5.9600.16384) с компонентами FTP см. предыдущую заметку, за исключение что для роли IIS потребуется поставить компоненты — я бы поставил все, дабы потом не искать чего не хватает. Но это мое мнение.

Win + X — Control Panel — Administrative Tools — Internet Information Service (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — Server Certificates, далее запускаю действия по созданию самоподписанного сертификата: Create Self-Signed Certificate

  • Specify a friendly name for the certificate: FTP over SSL
  • Select a certificate store for the new certificate: выбираю Web Hosting

Такими вот простыми действиями создается Ваш первый самоподписанный сертификат сроком на один год, как это проверить, он появился в элементе настройки Server Certificates

Теперь если вспомнить, когда создавали Ваш первый FTP ресурс не важно на базе Windows Server 2008 R2 или Server 2012 R2 в мастере присутствовала настройка выбора, как будет осуществляться защита ресурса, но т. к. у меня не было сертификата (я тогда даже не знал насколько просто создать свой собственный самоподписанный), я выбирал: SSL: No SSL, но теперь я смело указываю, что в роли защиты использовать:

Если FTP ресурс имеется: Sites — srv-host — FTP SSL Settings —

  • SSL Certificate: выбираю FTPoverSSL
  • SSL Policy: Require SSL Connections

и нажимаю Apply

Если FTP ресурса нет, то на этапе настройки безопасности все шаги выше идентичны.

Когда настройки применены должна быть надпись: The changes have been successfully saved.

Теперь проверяю, когда кто-либо подключается к FTP ресурсу, то при обычном вводе параметров подключения: ftp:\\IP&DNS в ответ получает лишь:

C:\Users\Admin>ftp IP&DNS

220 Microsoft FTP Service

Пользователь (IP&DNS:(none)): ftpuser1

534 Policy requires SSL.

или через утилиту telnet пробуем подключиться к FTP сервису с Windows 7 рабочей станции:

C:\Users\Admin>telnet 10.7.8.177 21

220 Microsoft FTP Service

534 Policy requires SSL.

С текущей серверной части где развернут сервис FTP:

C:\Users\Administrator>ftp 10.7.8.177

Connected to 10.7.8.177.

220 Microsoft FTP Service

User (10.7.8.177:(none)): ftpuser1

534-Policy requires SSL.

Win32 error: Access is denied.

Error details: SSL policy requires SSL for control channel.

Если с помощью программы FileZilla (версия: 3.25.1) происходит подключение, параметры нового соединения следующие с рабочей станции под управлением Windows 7 Pro SP1:

Читайте также:  Обновление для mac os intel

Пуск — Все программы — FileZilla FTP Client — FileZilla — Файл — Менеджер сайтов — Новый сайт:

  • Хост: 10.7.8.177
  • Порт: ничего не указываем
  • Протокол: FTP — Протокол передачи файлов
  • Шифрование: Требовать FTP через TLS (явный)
  • Тип входа: нормальный
  • Пользователь: ftpuser1
  • Пароль: Aa1234567@!
  • После нажимаю Соединиться

Но мой клиент FileZilla отказывается подключаться, в ответ пишет:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

А чтобы подключить с Ubuntu Trusty Server через консоль командной строки:

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

331 Password required

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

125 Data connection already open; Transfer starting.

03-24-17 04:44PM dfdf

226 Transfer complete.

ftp> quit

Как видно подключение происходит без проблем, это если в настройках FTP ресурса стоит политика SSL Policy в значении: Allow SSL Connections, а если выставить в Require SSL Connections, то как раз происходит уведомление, что требуется подтверждение использования сертификата:

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

534 Policy requires SSL.

Remote system type is Windows_NT.

Раз так, то значит мне нужен клиент ftp для работы с сертификатами, ставлю его:

$ sudo apt-get install ftp-ssl -y

На заметку: устанавливая пакет ftp-ssl удаляется пакет ftp, т. е. Если это обычный ftp то подключиться уже к нему будет нельзя.

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

234 AUTH command ok. Expecting TLS Negotiation.

[SSL Cipher ECDHE-RSA-AES256-SHA384]

331 Password required

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> mkdir 1

257 «1» directory created.

ftp> quit

Подключение с Ubuntu системы прошло успешно.

Итого делаю вывод, что сервис настроенный на Windows с поддержкой самоподписанного сертификата работает, но вот подключиться к нему можно только с Linux системы, с рабочей станции при использовании пакета FileZilla не представляется возможным, почему-то пишет ошибку:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

Повторил еще раз данную заметку, если отключаю профили брандмауэера на Server 2012 R2 то могу подключиться с Ubuntu системы через утилиту ftp-ssl, а с Windows систем подключиться не могу. Бред. Нет не бред, это косяк клиента FileZilla самой последней версии (3.25.1) по другому я бы не сказал. Если поставить раннюю версию, к примеру: 3.2.7, то при подключении: File — Site Manager — New Site

вкладка: General

  • Host: 10.7.8.177
  • Servertype: FTPES — FTP over explicit TLS/SSL
  • Logontype: Normal
  • User: ftpuser1
  • Password: Aa1234567@!

нажимаю «Connect» и вот то окно которое должно сопровождать подключение свидетельствующее что FTP сервис защищен самоподписанным сертификатом и без него к нему нельзя будет подключиться.

На этой информации по сертификату видна дата окончания (через 1 год) и тип шифрования. Для следующего подключения дабы данное окно о сертификате не показывалось следует отметить галочкой настройку: Always trust certificate in future sessions и нажать кнопку Ok

Вот теперь работает. А все проблемы были из-за клиента под Windows, в частности самого последнего клиента утилиты FileZilla, только почему так. А потому я бы все же развернул FTP сервер на Ubuntu системе проблем бы с подключением было бы на порядок меньше. Но не важно, мне же главное иметь представление, как и что нужно сделать дабы защитить подключение клиента и сервера от перехвата и посягательств. На этом я прощаюсь, заметка выполнена, с уважением автор блога Олло Александр aka ekzorchik.

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