Обычно по запросу «Настройка FTP в Windows Server 2008 или 2012» выскакивают подробные руководства, как развернуть этот сервер с использованием IIS (Internet Information Services – многофункциональный Web-сервер на базе Windows и встроенный в него). Однако, бывают частные случаи, когда поднимать IIS из-за одной фишки не совсем логично.
В моём случае на сервере уже был установлен apache и подняты определённые фишки, использующие apache и возникла необходимость настройки простенького FTP-сервера для обмена данными. Поднимать ради этой одной фичи IIS, чтобы потом отключать все сервисы и освобождать порты во избежание конфликта с apache – смысла большого не увидел. Поэтому было принято решение поднять FTP, который не грузит систему, и прекрасно знает своё дело – FileZilla Server.
Прошу вас сразу не пугаться его англоязычности. В настройках он довольно прост, а если вы всё будете делать по изложенной ниже инструкции, то тем более никаких проблем у вас не возникнет.
Устанавливаем FileZilla Server
Скачиваем дистрибутив с сайта производителя, либо с нашего сайта. Запускаем и идём по порядку:
Соглашаемся с лицензией, нажимаем I Agree
Здесь можно оставить всё, как есть. Source Code может быть интересен вам только, если вы программист. Если вы программист, то вряд ли вам требуется настоящая статья, так что не мудрствуя лукаво нажимаем Next и переходим к следующему этапу.
Выбираем путь для установки через нажатие кнопки Browse, либо оставляем всё, как есть и идём дальше – Next.
Здесь мы задаём режим работы нашего сервера и порт, по которому мы будем цепляться, чтобы администрировать сервер. Если это сервер, который будет использоваться постоянно, рекомендую здесь оставить всё, как есть. Если изредка, то можно выбрать второй вариант, но тогда придётся службу запускать вручную, а в третьем случае – обязательно заходить консольно, иначе работать не будет.
Нажимаем Next.
Здесь предлагаются следующие варианты:
Запуск административного интерфейса при входе в Windows под любым пользователем
Запуск административного интерфейса при входе только текущим пользователем (из под которого ведётся установка)
Запуск вручную
Можете выбрать по своему усмотрению. Мне его морду при каждом запуске видеть не интересно, поэтому я выбираю третий вариант.
Нажимаем Next.
Пошёл процесс установки.
Нажимаем Close.
Далее запускается окно логина.
Если в процессе установки вы не меняли порт для входа в административный модуль, то всё оставляем, как есть и нажимаем Connect.
Вот он рассказывает, кто он такой и предупреждает красным, что сервер находится за маршрутизатором, поэтому необходимо сконфигурировать Passive Mode и сделать проброс портов на маршрутизаторе.
Ещё он говорит, что зашифрованное соединение невозможно до тех пор, пока мы не активируем FTP over TLS. Это, чтобы никто трафик не мог перехватить. Активировать эту функцию или нет, выбирайте по своему усмотрению. Для домашнего сервера особой нужды не вижу.
Нажимаем на иконку Settings (третья по счёту) и начинаем настройки.
Раздел General settings – здесь можно оставить всё, как есть.
Если интересно, поясню, что здесь что обозначает:
Listen on these ports: 21 – какой порт будет слушать ftp-сервер. По умолчанию, это 21 порт. Можно его таким и оставить, если это единственный ftp-сервер на данном компьютере. Если уже какой-то есть, то лучше поменять порт.
Max. number of users: 0 – количество пользователей, которые одновременно могут подключиться к серверу. 0 – это неограниченное количество пользователей, иначе то количество, которое вы укажете.
Number of threads: 2 – максимальное количество потоков, которое позволено использовать серверу. По умолчанию – это количество ядер/потоков процессора. Если вы по каким-то причинам хотите ограничить использование процессора, вы можете уменьшить эту величину.
Timeout settings – в этом разделе определяем таймауты для соединения, для скачки и сколько времени пользователь будет залогинен. Менять смысла не вижу.
В Passive mode settings оставляем всё, как есть. Можете при необходимости задать внешний IP в разделе Use the following IP, но без проброса портов на маршрутизаторе ничего работать не будет.
Admin Interface settings – здесь вы можете задать белый список IP-адресов, с которых разрешено подключаться к административному интерфейсу, а так же определить, какие IP-адреса слушает сервер для подключения (при наличии нескольких сетевых адаптеров).
Самая важная установка здесь – это флажок Change admin password. Пользователь Admin не является клиентом FTP-сервера, так что если вы оставите его без пароля, под ним никто к FTP не подключится. Но если есть сомнения, лучше задать этот пароль. Это именно тот пароль, который надо будет вводить при входе в административный интерфейс. Пользователей мы настраиваем совсем в другом диалоге.
Здесь вы можете задать возможность ведения Логов – журнала, который отслеживает работу сервера. Это может быть полезно, в работе сервера возникают какие-то сбои.
Если планируется, что сервером будет пользоваться большое количество народу, то есть смысл добавить ограничения скорости на один поток скачивания, чтобы не было такого, что один кто-то займёт весь канал, а остальные будут ждать и надеяться. Это можно сделать в разделе Speed Limits. Верхнее окно – скорость скачивания, нижнее – скорость закачки.
Раздел FTP over TLS settings – это как раз тот раздел, в котором можно включить безопасное подключение к серверу и указать в настройках существующий файл, либо сгенерировать сертификат. Это по желанию.
Autoban – это очень полезный раздел, который оберегает ваш сервер от брутфорсеров.Если установить флажок Enable automatic bans, то через определённое количество попыток (по умолчанию 10), перебирающий пароли пользователь будет заблокирован на определённое количество часов (по умолчанию 1, можно выставить до 999 часов)
Рекомендую включить эту функцию.
Нажимаем ОК и переходим к настройке пользователей, папок и прав доступа.
Нажимаем на четвёртую по счёту иконку.
Здесь мы нажимаем Add и видим следующее окно:
Набираем, например, User и нажимаем OK.
Здесь можно проставить флажки Enable account, чтобы допустить пользователя на сервер и Password, чтобы задать пользователю пароль. Иначе пользователь сможет подключаться, как аноним без пароля.
Здесь задаём перечень папок, к которым этот пользователь может иметь доступ, а так же определяем, что конкретно он с этими папками и файлами, находящимися в них, может делать.
Нажимаем Add и добавляем папки. Затем проставляем флажки, что пользователь может с этими папками сделать.
Для тех, кто в английском совсем не силён, перевожу:
Files (файлы):
Read – чтение
Write – запись
Delete – удаление
Append – изменение
Directories (папки):
Create – создание
Delete – удаление
List – просмотр списка папок
+ Subdirs – имеет право просматривать вложенные папки
Я выбрал папку и поставил полные права на всё для пользователя User.
Лимиты можно задавать для каждого конкретного пользователя. Привилегированным мы не ставим ограничений, всем остальным можем индивидуально ставить разрешения.
Здесь тоже ничего не меняем, но можем задать белый список IP-адресов (верхний текст-бокс), с которых определённый пользователь может зайти. Либо чёрный список адресов (нижний текст-бокс), откуда нельзя пускать этих пользователей.
Нажимаем ОК и приступаем к испытаниям!
Только одна маленькая деталь. Если у вас включен встроенный брандмауэр Windows, то скорей всего порт 21 закрыт в целях безопасности. FileZilla не открывает этот порт автоматически, так что идём в Пуск>Панель управления>Брандмауэр
Нажимаем Создать правило…
Выбираем Настраиваемые и нажимаем Далее
Нажимаем Обзор и выбираем расположение сервера. В моём случае это “C:Program FilesFileZilla ServerFileZilla Server.exe”.
Нажимаем Далее.
Здесь выбираем Тип протокола: TCP, остальное без изменений, нажимаем Далее
Нажимаем Далее
Выбираем Разрешить подключения и нажимаем Далее
Здесь можно ничего не менять, нажимаем Далее
Здесь вписываем в пункт Имя: какое-то имя, например, как у меня – FTP-TCP и нажимаем Готово.
Теперь проделываем всё тоже самое, только в пункте, где нужно выбрать протокол, выбираем UDP.
Имя выбираем любое, например, FTP-UDP.
Всё, нажимаем Готово.
Всё, Брандмауэру мы объяснили, что следует пропускать пакеты, теперь осталось пробросить 21 порт, а на клиенте выставить пассивный режим.