поставки оборудования
ICQ: 238-612
Skype: lantorg1
+38 (057) 780 - 40 - 63
+38 (095) 762 - 44 - 96
+38 (063) 638 - 79 - 24
+38 (067) 961 - 56 - 02
г. Харьков, Московский проспект, 122
ГлавнаяСтатьиНастройка → Как мы настраивали FTP сервер за MikroTik

Как мы настраивали FTP сервер за MikroTik

Как мы настраивали FTP сервер за MikroTik

Недавно для корпоративных нужд нам потребовалось поднять FTP-сервер, причем чтобы доступ к нему был как из интернета, так и из локальной сети. Мы воспользовались своими же рекомендациями из статей нашего блога и еще раз протестировали способы настройки MikroTik для этих целей.

Схема нашей сети:

  • Роутер MikroTik RB951G-2HnD с внешним статическим IP, скажем, 1.1.1.28 и локальной сеткой за ним.
  • Компьютер, на котором подняли FileZilla Server, с локальным адресом 192.168.88.10.
  • В настройках FileZilla: управляющий порт FTP-сервера - 21пассивный режим FTP (мы решили использовать его как более простой в настройке и безопасный) с диапазоном портов для передачи данных - 50000-50050

Настройка сервера FileZilla Server

На установке программы FileZilla Server подробно останавливаться не будем - в сети довольно много пошаговых инструкций. Установка никаких проблем не вызвала.

1. Заходим в раздел настроек (Setting). В общих настройках (General Settings) нужно прописать основной (управляющий) порт FTP, мы оставили тот, что по умолчанию - 21. Увеличили таймаут соединения до 600 сек, остальные настройки не меняли.

Настройка управляющего порта на FileZilla Server

2. На вкладке Passive Mode Settings (настройки пассивного режима FTP-сервера) указали диапазон портов для передачи данных. Он может быть произвольным, с учетом, конечно, тех портов, что вы уже используете в работе. В документации FileZilla Server не рекомендовалось использовать порты ниже 1024.

Остальные настройки оставили по умолчанию.

Настройка пассивного режима FileZilla Server

3. Переходим в меню Users. В разделе общих настроек (General) указали логин и пароль для будущих подключений.

4. В разделе Shared folders указали пути к папкам, которые будут расшариваться на FTP. Проставили галки разрешений для папок и файлов - можно ли удалять, добавлять, читать, изменять и т. д.

Сразу отметим, что разрешения действий с папками и файлами могут оказаться важнымиК примеру, нам понадобилось сохранять данные на FTP-сервер из программы колл-трекинга ACR. Однако программа постоянно сбрасывала соединение, как оказалось впоследствии - по причине отсутствия разрешения на создание папки в каталоге сервера.

Настройка доступа к папкам и файлам

5. Добавили FileZilla Server в исключения брандмауера на компьютере, на котором он установлен.

6. Антивирус также может блокировать запросы на FTP-сервер, но у нас с этим все было в порядке.

Включили FTP в IP - Service

На роутере MikroTik заходим в IP - Service и включаем FTP.

Включаем FTP в IP - Service Mikrotik

Вообще, по идее, должно было работать и с отключенным FTP, даже более того - в некоторых случаях, по отзывам, этот параметр препятствует корректной работе сервера за MikroTik. Но у нас не работало, поэтому мы включили.

Настройка проброса портов для FTP сервера

Настройка проброса портов детально описана в этой статье, здесь мы на теоретической части подробно останавливаться не будем.

Напомним, что FTP-сервер для работы требует двух типов портов: управляющего, по которому передаются служебные данные, и отдельного диапазона портов для передачи файлов. Поэтому мы создали два правила NAT:

  • для управляющего 21-го порта;
  • для диапазона портов 50000-50050.

Мы изначально настроили и включили оба правила, но экспериментальным путем выяснили, что все работает и передается и с одним правилом для 21 порта. По крайней мере, в нашей конфигурации.

 1-е правило - для управляющего порта

На первой вкладке General - прописываем признаки пакетов, которые должны обрабатываться правилом проброса порта.

  • Chain = dstnat (т. е. для пакетов, направленных во внутреннюю сеть).
  • Dst. Address = 1.1.1.28 (адрес назначения, который прописан в пакете, у нас пакеты будут адресованы на внешний адрес роутера, поэтому пишем здесь его).
  • Protocol = 6 (tcp).
  • Dst. Port = 21.
  • In. Interface = ether1.

Проброс портов для FTP Mikrotik

На вкладке Action - действие, которые выполняется, если пакет им соответствует. В данном случае мы прописываем замену адреса назначения в пакете (dst-nat) и указываем, на какой адрес и порт его заменить  - на внутренний адрес компьютера с FTP-сервером (192.168.88.10), порт 21.

Проброс портов для FTP Mikrotik вкладка Action

 2-е правило - проброс диапазона портов для данных

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

Проброс диапазона портов для FTP Mikrotik

Проброс диапазона портов для FTP Mikrotik вкладка Action

 Поднимаем эти правила выше дефолтного правила маскарадинга.

Так как роутер обрабатывает пакеты, обращаясь к правилам по порядку их расположения на вкладке NAT роутера, нам нужно поднять наши правила выше тех, под которые могут попасть наши пакеты, в том числе выше правила маскарадинга, заданного по умолчанию. Просто перетаскиваем их мышью вверх.

Проверили: доступ к FTP серверу работает и с удаленного компьютера, расположенного в сети другого провайдера, и со смартфонов, использующих 3G.

Теперь нам нужно настроить, чтобы к FTP можно было подключиться и из нашей локальной сети, используя те же данные для подключения, то есть, внешний IP-адрес роутера. 

Настройка Hairpin NAT MikroTik

По умолчанию зайти из локальной сети по внешнему адресу на роутер нельзя - вот в этой статье подробно объясняется, почему. Поэтому нам нужно настроить отдельные правила NAT, которые бы создавали исключения из общих правил и правильно обрабатывали такие пакеты.

Мы протестировали 3 способа настройки, все они отлично работали в нашей конфигурации.

 1-й способ

В общей сложности он содержит 3 правила, работающих в связке.

1.1 - уже созданное нами правило проброса портов, описанное выше. Мы его не изменяем.

Здесь ничего не меняем

1.2. -  Правило, которое можно обозначить, как: "Во всех пакетах, у которых адресом источника стоит этот диапазон IP-адресов, а адресом назначения - внешний IP-адрес роутера, поменять адрес назначения на адрес компьютера с FTP-сервером".

  • chain = dstnat;
  • Src. Address = 192.168.88.0/24 - пул локальных IP-адресов, с которых могут поступать обращения на FTP-сервер;
  • Dst. Address = 1.1.1.28;
  • Protocol = 6 (tcp);
  • Action = dst-nat;
  • To Addresses = 192.168.88.10.

Hairpin NAT Mikrotik - меняем адрес назначения

Hairpin NAT Mikrotik Action - меняем адрес назначения

1.3. Далее нам нужно позаботиться об ответных пакетах, отправленных FTP-сервером с адреса 192.168.88.10. Ведь он будет адресовать их на то устройство локальной сети, чей адрес был вписан в пакете данных как адрес источника. А так как устройство отправляло пакет на 1.1.1.28, то и ответ оно ждет оттуда, а не с локального 192.168.88.10, соответственно, этот ответный пакет оно отбросит. 

Поэтому мы "ловим" этот пакет и обрабатываем следующим правилом: "Для всех пакетов, у которых адресом источника стоит этот локальный диапазон адресов, а адресом назначения - локальный адрес компьютера с сервером, применяем маскарадинг". Маскарадинг - это замена локального IP-адреса устройства, отправившего пакет, на IP-адрес сервера. После применения этого правила в адресе источника в пакете будет вписан 1.1.1.28, а не 192.168.88.10.

Hairpin NAT Mikrotik - меняем адрес источника

Hairpin NAT Mikrotik Action - маскарадинг

 2-й способ

Здесь только 2 правила.

2.1 - созданное нами первое правило проброса портов, но немного измененное.

Из правила убираем In. Interface ether1: так как в этом случае пакеты будут "стучаться" не только через внешний интерфейс, но и через внутренние.

Соответственно, нам не понадобится правило 1.2 из 1-го способа, поскольку измененному правилу проброса портов и без него будут соответствовать пакеты и из внешней, и из локальной сети.

Изменяем правило проброса портов для FTP

Правило проброса диапазона портов мы не меняли, но как мы уже написали выше - у нас доступ к FTP-серверу прекрасно функционировал и тогда, когда мы отключили это правило вообще.

2.2. А вот правило srcnat (1.3 из 1-го способа) нам понадобится, так как по-прежнему нужно заменить адрес источника:

Добавляем правило NAT по замене адреса источника (srcnat)

Добавляем правило NAT по замене адреса источника srcnat, маскарадинг

 3-й способ

Предложен в комментарии к статье про настройку доступа из локальной сети пользователем Stealth.

Также состоит из двух правил: измененного проброса портов и srcnat.

В первоначальном правиле проброса портов мы не указываем в качестве критерия обработки пакетов адрес назначения, а указываем на вкладке Extra его тип: local - принадлежащий одному из интерфейсов маршрутизатора. То есть под правило проброса портов будут попадать все пакеты, отправленные на адрес любого интерфейса маршрутизатора и на порт 21.

Проброс портов для FTP с использованием Dst. Address Type = local

Проброс портов для FTP с использованием Dst. Address Type = local, вкладка Extra

Проброс портов для FTP с использованием Dst. Address Type = local, вкладка Action

На вкладке Action в поле To Ports можно указать 21 порт. У нас работало и с указанием порта, и без него.

Второе правило - srcnat - точно такое же, как в остальных примерах.

Во всех случаях правила настройки NAT мы также поднимали выше общего правила маскарадинга.

Итоги

Повторим, что мы проверили все эти способы настройки на своей конфигурации и они рабочие. Файлы закачиваются и скачиваются:

  • с компьютеров за NAT (из внешней сети),
  • с локальных компьютеров внутри сети,
  • с мобильных устройств, подключенных к FTP-серверу по Wi-Fi к роутерам в локальной сети,
  • с мобильных устройств, подключенных к FTP-серверу по 3G.

Оцените, пожалуйста, полезность/интересность статьи. Нам важно ваше мнение!

Оценка:   5.0 (голосов 9)
Дата публикации: 14.11.2016
Поделиться с друзьями:                                                                            

Также советуем почитать:


Связанные товары:


Комментарии

  • lokkii 13.05.2017, 08:34
    Думаю тотальная ошибка в протоколе, FTP = UDP.
  • Автоматон 30.03.2017, 21:14
    Хороший мануал, спасибо.
    Использую glftpd и есть следующая проблема: пользователь фтп сервера, используя скрипт проверки связи на внешний адрес 1.1.1.28, получает ответ, что коннект есть (то есть система работает), НО он получает его от 192.168.88.1 (маршрутизатора). Как сделать другой ответ?

Написать комментарий

Ссылки на другие сайты из комментариев удаляются. Спасибо за понимание.


Подписаться на получение новостей
* обязательные поля
Не чаще 1 письма в неделю. Только полезная информация. Убедитесь сами – посмотрите наш архив рассылок.