Меню
Контакты
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

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

 20 Ноя 2016    MikroTik, О настройках и установке оборудования производителя 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.

©http://lantorg.com/article/kak-my-nastraivali-ftp-server-za-mikrotik