В офисе скопились десятки гигабайт рабочих документов, дистрибутивов и резервных копий. Обмениваться файлами через общие папки SMB удобно внутри сети. Но как быть с удалёнными сотрудниками или филиалами? Открывать SMB (порты 445, 139) в интернет смертельный номер. Протокол небезопасен, его постоянно атакуют шифровальщики. Нужен простой, стандартизированный и относительно безопасный способ передачи файлов через интернет или внутри корпоративной сети без риска подхватить вирус.
Многие вспоминают про FTP. Но старый добрый FTP передаёт логин и пароль в открытом виде, что тоже небезопасно. Однако современные версии FTP сервера на Windows поддерживают FTP over SSL (FTPS), который шифрует канал и делает передачу данных защищённой.
В Windows Server встроен компонент FTP сервера как часть роли IIS (Internet Information Services). Он позволяет быстро развернуть FTP сервер с поддержкой виртуальных хостов, изоляции пользователей, SSL/TLS шифрованием и интеграцией с Active Directory. Настроив FTPS, вы получите безопасный доступ к файлам из любой точки мира, используя любой FTP клиент.
Мы пройдём путь от установки роли до создания защищённого FTP сайта с пользователями из AD (или локальными учётками) и настроим брандмауэр, чтобы сервер был доступен извне.
Шаг 1. Установка роли FTP сервера
Откройте Диспетчер серверов (Server Manager). Нажмите «Управление», «Добавить роли и компоненты». Выберите тип установки: «Установка ролей или компонентов». Выберите целевой сервер.
В списке ролей разверните «Веб-сервер (IIS)», затем «FTP-сервер». Отметьте следующие пункты.
«Служба FTP (FTP Service)».
«Расширяемость FTP (FTP Extensibility)» (если планируете использовать нестандартные возможности).
При необходимости мастер предложит добавить компоненты .NET. Соглашайтесь. Нажмите «Далее» и «Установить». После установки перезагрузка не требуется, но лучше перезапустить службы IIS.
Шаг 2. Создание FTP сайта
Откройте Диспетчер служб IIS (inetmgr). В левом дереве выберите узел «Сайты (Sites)». Нажмите правой кнопкой, выберите «Добавить FTP-сайт…».
Укажите «Имя FTP-сайта» (например Corporate FTP) и «Физический путь» к папке, которая будет корнем FTP (например D:\FTPRoot). Папка должна существовать. Нажмите «Далее».
Настройка привязки и SSL.
IP адрес. Выберите конкретный IP или «Все свободные».
Порт. 21 (стандартный).
«Включить виртуальные имена хостов». Можно оставить пустым, если FTP работает по IP.
SSL. Выберите «Разрешить SSL» или «Требовать SSL» (если у вас есть сертификат). Для теста можно выбрать «Без SSL», но для продакшена обязательно используйте SSL. Если сертификата нет, выберите «Разрешить SSL», потом настроите.
Сертификат SSL. Если есть готовый (самоподписанный или от центра сертификации), выберите его. Можно создать самоподписанный позже в IIS.
Нажмите «Далее».
Настройка проверки подлинности и авторизации.
«Анонимная проверка подлинности». Снимите, если не нужен гостевой доступ.
«Обычная проверка подлинности». Включите (это передача логина и пароля в открытом виде, но при SSL шифруется).
«Авторизация». Выберите, кому разрешено. Например, «Указанные роли или группы пользователей» и введите «Администраторы». Или «Все пользователи». Или конкретных пользователей через «Указанные пользователи».
«Разрешения». Чтение и запись.
Нажмите «Готово». FTP сайт создан и запущен.
Шаг 3. Настройка SSL для FTPS
Чтобы шифровать канал, нужен SSL сертификат. Можно использовать самоподписанный (для внутреннего использования) или приобретённый (для внешнего доступа).
Создание самоподписанного сертификата в IIS.
В диспетчере IIS выберите узел сервера (верхний уровень). Дважды щёлкните «Сертификаты сервера (Server Certificates)». В правой панели нажмите «Создать самозаверяющий сертификат…». Задайте понятное имя, например «FTP Self-Signed». Нажмите ОК.
Привязка сертификата к FTP сайту.
Выберите ваш FTP сайт в дереве. В правой панели нажмите «Привязки… (Bindings)». Выберите привязку типа ftp и нажмите «Изменить». В разделе «SSL сертификат» выберите созданный сертификат. Установите «Требовать SSL соединение» (если хотите принудительно). Закройте окно.
Теперь FTP сервер будет работать только по защищённому соединению.
Шаг 4. Настройка брандмауэра
Для доступа из внешней сети нужно открыть порты.
TCP 21 (управляющее соединение).
TCP 1024–65535 для пассивного режима передачи данных (диапазон можно сузить, настроив IIS).
Настройка диапазона пассивных портов в IIS.
Откройте Диспетчер IIS, выберите узел сервера. Дважды щёлкните «FTP поддержка брандмауэра (FTP Firewall Support)». В поле «Диапазон портов для пассивного режима» укажите, например, 30000-30999. В поле «Внешний IP адрес» укажите публичный IP адрес сервера (если за NAT). Нажмите «Применить».
Теперь откройте эти порты в брандмауэре Windows.
Откройте «Брандмауэр Защитника Windows в режиме повышенной безопасности». Создайте входящие правила для портов 21 и 30000-30999 (TCP). Можно разрешить только для профиля «Частный» или «Доменный», если сервер в локальной сети, или «Общественный», если он доступен из интернета.
Если сервер стоит за NAT (роутером), настройте проброс портов на роутере.
Шаг 5. Создание пользователей и папок
Для доступа к FTP можно использовать локальные учётные записи Windows или доменные (если сервер в домене). Каждому пользователю можно назначить собственную корневую папку, чтобы он не видел чужие файлы.
Изоляция пользователей FTP.
В корне FTP (например D:\FTPRoot) создайте папку LocalUser. Внутри создайте папки с именами пользователей. Для локальных учёток просто имена. Для доменных можно использовать имя_домена\имя_пользователя, но проще использовать локальных пользователей.
Для включения изоляции в диспетчере IIS выберите FTP сайт. Дважды щёлкните «FTP изоляция пользователей (FTP User Isolation)». Выберите «Имя каталога пользователя (отключить глобальные виртуальные каталоги)» или «Имя каталога пользователя (включить глобальные виртуальные каталоги)». Укажите путь относительно корня FTP. Примените настройки.
Теперь при входе пользователь автоматически направляется в свою папку.
Если нужно создать общего анонимного пользователя, включите анонимную аутентификацию и укажите учётную запись IUSR.
Шаг 6. Проверка работы
На клиентском компьютере откройте любой FTP клиент (FileZilla, WinSCP, даже проводник Windows). Введите адрес: ftp://сервер или ftps://сервер для защищённого соединения. Укажите порт 21. Введите логин и пароль созданного пользователя. Проверьте, что файлы загружаются и скачиваются.
В проводнике Windows можно подключить сетевой диск по FTP. Но учтите, что проводник плохо поддерживает FTPS. Лучше использовать специализированные клиенты.
Шаг 7. Настройка автоматического запуска и мониторинга
Службы FTP и IIS запускаются автоматически при старте Windows. Проверьте это в оснастке services.msc. Нужные службы: FTP Publishing Service и World Wide Web Publishing Service.
Для мониторинга можно просматривать логи IIS в папке %SystemDrive%\inetpub\logs\LogFiles\FTPSVC. Там записываются все подключения и ошибки.
Возможные проблемы и их решение
ПроблемаПричинаРешениеНе удаётся подключиться снаружиБрандмауэр блокирует порты или NAT не настроенПроверьте правила брандмауэра, проброс портов на роутере, диапазон пассивных портовОшибка 530 «Не удалось войти»Неправильный логин или пароль, недостаточно правПроверьте учётные данные, убедитесь, что пользователь имеет право на локальный вход (в политиках безопасности может быть запрет)Клиент жалуется на незащищённое соединениеSSL настроен не полностьюПроверьте, что сертификат привязан, и в клиенте указан протокол FTPES или FTPSПосле входа пустой каталог или нет прав на записьНеправильные разрешения NTFS или изоляцияПроверьте права на папку для данного пользователя (в свойствах папки, безопасность). FTP сервер использует права файловой системыПассивный режим не работаетНе настроен диапазон портов или брандмауэр блокируетУкажите диапазон в IIS и откройте его в брандмауэре. Проверьте, что в клиенте включён пассивный режим
FTP сервер на базе IIS это быстрое и надёжное решение для организации файлового обмена в корпоративной сети или через интернет. Главное не забыть про SSL шифрование и правильную настройку брандмауэра. В сочетании с изоляцией пользователей вы получаете безопасное хранилище, где каждый видит только свои файлы. При необходимости всегда можно расширить функционал с помощью дополнительных модулей IIS.