Перейти к содержимому

FTP-сервер на Windows Server: IIS FTP и SFTP

Облачные серверы2 мин чтения

Как настроить передачу файлов на облачный сервер с Windows Server: FTP-сервер IIS с шифрованием FTPS, пользователи и права, пассивный режим и брандмауэр, а также более простой вариант — SFTP через OpenSSH.

Содержание

Передавать файлы на сервер с Windows можно двумя способами: через FTP-сервер, входящий в IIS, или по SFTP — протоколу передачи файлов поверх SSH, который обеспечивает встроенный OpenSSH. SFTP проще в настройке и шифрует данные без отдельного сертификата. FTP нужен, если программа или подрядчик работают только по этому протоколу.

SFTP через OpenSSH

Установите сервер OpenSSH, как описано в разделе «Роли, компоненты и SSH». После этого к серверу можно подключаться программами FileZilla или WinSCP по протоколу SFTP на порт 22 с именем и паролем учётной записи Windows.

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

Команды выполняйте в PowerShell, запущенном от имени администратора:

Install-WindowsFeature Web-Ftp-Server -IncludeManagementTools

Учётная запись для FTP

Создайте для входа по FTP отдельную учётную запись — не используйте для этого Administrator — и дайте ей права на папку сайта:

$p = Read-Host "Пароль" -AsSecureString
New-LocalUser -Name "ftpuser" -Password $p -PasswordNeverExpires
icacls "C:\inetpub\example.ru" /grant "ftpuser:(OI)(CI)M"

FTP-сайт

  1. В IIS Manager в контекстном меню раздела Sites выберите Add FTP Site, укажите имя и папку, например C:\inetpub\example.ru.
  2. На шаге Binding and SSL оставьте IP-адрес All Unassigned и порт 21. Если для сайта уже получен сертификат (например, программой win-acme), выберите его и режим Require SSL. Без сертификата доступен только режим No SSL: имя, пароль и файлы передаются в открытом виде, поэтому используйте его лишь временно.
  3. На шаге Authentication and Authorization включите Basic, в разделе Authorization выберите Specified users, укажите ftpuser и отметьте права Read и Write.

Как получить сертификат для домена, описано в статье Сайт на IIS в Windows Server.

Пассивный режим и брандмауэр

Большинство FTP-клиентов работают в пассивном режиме: для передачи данных сервер выделяет дополнительный порт из заданного диапазона. Задайте диапазон в IIS Manager на уровне сервера: FTP Firewall Support → Data Channel Port Range, например 50000-50100. Затем откройте порты в брандмауэре и перезапустите службу FTP:

New-NetFirewallRule -DisplayName "FTP" -Direction Inbound -Protocol TCP -LocalPort 21 -Action Allow
New-NetFirewallRule -DisplayName "FTP passive" -Direction Inbound -Protocol TCP -LocalPort 50000-50100 -Action Allow
Restart-Service ftpsvc

Если по FTP работают только известные вам адреса, добавьте в оба правила параметр -RemoteAddress со списком этих адресов.

Подключение клиента

В FileZilla укажите хост — домен или IP-адрес сервера, порт 21, шифрование «Требовать явный FTP через TLS», имя ftpuser и пароль. Общие сведения о работе с FTP-клиентами — в статье Загрузка файлов по FTP и SFTP.

Не нашли ответ? Напишите в поддержку — подскажем.