Настройка mikrotik firewall ftp

Обновлено: 05.07.2024

Недавно в статье "Защита WAN-интерфейса в Mikrotik" я рассказывал как защитить наше устройство и минимизировать атаки из-вне. Но почти во всех конфигурациях мы используем пробросы портов для предоставления сервисов нашим клиентам или для личного пользования. Пробросив порт, защиту мы возлагаем на наш внутренний сервис. Но Mikrotik довольно универсально устройство, которое позволяем защитить даже наши внутренние сервисы, к которым мы можем подключиться из-вне. В текущей статье, на примере FTP-сервера, я покажу вариант такой реализации.
Имеем FTP-сервер Serv-U File Server, на который проброшен порт 21 с WAN-интерфейсов (их 2) Mikrotik. Сразу скажу, я никогда не использую дефолтный порт, так как это небезопасно, но для примера подойдет.
Правило проброса порта:

/ip firewall nat
add action=dst-nat chain=dstnat comment=ftp dst-address-list=wan dst-port=21 protocol=tcp to-addresses=10.2.0.7

Где "wan" - адрес лист наших wan-интерфейсов (их два, с обоих сервер доступен), 10.2.0.7 - адрес нашего ftp-сервера.
После этого мы попробуем защитить ftp от перебора паролей. Для этого воспользуемся опцией "content" в правилах /ip firewall. Эта опция позволяет проанализировать пакеты которые входят\проходят\выходят из маршрутизатора и найти текстовые соответствия в этих пакетах - если соответствие найдено - выполняется определенное действие.




После включение запускаем командную строку и подключаемся к нашему серверу.



За красным прямоугольником - домен нашего сервера, за ним порт. Типичное подключение к ftp выглядит так:

После приглашения пытаемся авторизироваться. Вводим логин, после проверки вводим НЕПРАВИЛЬНЫЙ пароль.


Есть два варианта реализации идеи. Через "прыжки" по адрес-листам и через лимиты соединений.

Первый вариант:

Правила имеют очередность. В них используется "/interface list", который введен с версии RouterOS 6.36.

Правило блокирует все соединения на 21 порт с адрес-листа ftp_blacklist с двух WAN интерфейсов.

/ ip firewall filter
add action=drop chain=forward comment="drop ftp brute forcers" dst-port=21 in-interface-list=wan protocol=tcp src-address-list=ftp_blacklist

Правило добавляет злоумышленника в черный список (ftp_blacklist) после четвертой попытки входа в течении одной минуты.

/ ip firewall filter
add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=1w chain=forward comment="auto-firewall ftp - stage 5" content="530 Not logged in." dst-address-list=ftp_stage4

/ ip firewall filter
add action=add-dst-to-address-list address-list=ftp_stage4 address-list-timeout=1m chain=forward comment="auto-firewall ftp - stage 4" content="530 Not logged in." dst-address-list=ftp_stage3

/ ip firewall filter
add action=add-dst-to-address-list address-list=ftp_stage3 address-list-timeout=1m chain=forward comment="auto-firewall ftp - stage 3" content="530 Not logged in." dst-address-list=ftp_stage2

/ ip firewall filter
add action=add-dst-to-address-list address-list=ftp_stage2 address-list-timeout=1m chain=forward comment="auto-firewall ftp - stage 2" content="530 Not logged in." dst-address-list=ftp_stage1

/ ip firewall filter
add action=add-src-to-address-list address-list=ftp_stage1 address-list-timeout=1m chain=forward comment="auto-firewall ftp - stage 1" dst-port=21 in-interface-list=wan protocol=tcp

Объяснение снизу-вверх. Начальная стадия (стадия 1) добавляет IP-адрес в список адресов ftp_stage1 (с таймаутом 1 минута). И после каждой попытки входа, в течении одной минуты, IP будет добавляться в новые списки (stage2 - stage4). В конце достигнет последней стадии, на которой добавляет IP-адрес в ftp_blacklist (таймаут - 1 неделя). Визуально это выглядит так.


/ ip firewall filter
add chain=input in-interface=ether1 protocol=tcp dst-port=21 src-address-list=ftp_blacklist action=drop comment="drop ftp brute forcers" disabled=no
add chain=output content="530 Login incorrect" dst-address-list=ftp_stage4 action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=1w comment="auto-firewall ftp - stage 5" disabled=no
add chain=output content="530 Login incorrect" dst-address-list=ftp_stage3 action=add-dst-to-address-list address-list=ftp_stage4 address-list-timeout=1m comment="auto-firewall ftp - stage 4" disabled=no
add chain=output content="530 Login incorrect" dst-address-list=ftp_stage2 action=add-dst-to-address-list address-list=ftp_stage3 address-list-timeout=1m comment="auto-firewall ftp - stage 3" disabled=no
add chain=output content="530 Login incorrect" dst-address-list=ftp_stage1 action=add-dst-to-address-list address-list=ftp_stage2 address-list-timeout=1m comment="auto-firewall ftp - stage 2" disabled=no
add chain=input in-interface=ether1 protocol=tcp dst-port=21 action=add-src-to-address-list address-list=ftp_stage1 address-list-timeout=1m comment="auto-firewall ftp - stage 1" disabled=no

Второй вариант:

Второй вариант основан на использовании функции в Firewall "dst-limit". Правила имеют очередность.

Первое правило блокирует все соединения на 21 порт с адрес-листа blacklist с двух WAN интерфейсов.

/ ip firewall filter
add action=drop chain=forward dst-port=21 in-interface-list=wan protocol=tcp src-address-list=blacklist

Правило разрешает только 9 неправильных ввода пароля за 1 минуту.

/ ip firewall filter
add chain=forward content="530 Not logged in." dst-limit=1/1m,9,dst-address/1m protocol=tcp src-address=10.2.0.7 src-port=21

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

/ ip firewall filter
add action=add-dst-to-address-list address-list=blacklist address-list-timeout=3h chain=forward content="530 Not logged in." protocol=tcp src-address=10.2.0.7 src-port=21

При использовании Mikrotik в качестве ftp-сервера и wan-порта ether1 это выглядит так:

Аналогично можно защищать и другие сервисы, порты на которые выброшены наружу. В ряде случаев можно даже не пользоваться опцией "content", а использовать только хопы (попытки новых подключений) по аналогии с 9 пунктом моей статьи только для цепочки forward. Не забываете: не используйте стандартные логины (admin, user, ftp), стандартные порты (для ftp - 21 порт). Используйте сложные пароли и создавайте отдельных пользователей для работы с сервисами. Для нашего случае подойдет пользователь, у которого права только ftp.

FTP сервер на MikroTik

Сегодняшний пост будет продолжением начатой темы о подключение USB накопителя к роутеру MikroTik и поднятии на нём файлового сервера SMB. Речь пойдёт о том, как получить доступ к данным, размещённым на флешке или жестком диске удалённо из сети Интернет. Сразу оговорюсь, что я не сторонник подобного решения из соображений безопасности, потому воспринимайте данный материал чисто в академических целях и пользуйтесь облачными хранилищами.

Мне так и не удалось открыть SMB-сервер на MikroTik наружу, хоть и ставил в настройках слушать на всех интерфейсах, пробовал открывать порты 137-139 и 445 в настройках файервола - всё бестолку (если знаете способ заставить микрот принимать SMB соединения снаружи, напишите к комментариях).

Настройка FTP сервера на MikroTik стала самым простым решением проблемы доступа к данными на флешке, подключенной к роутеру из Интернет. Делается это буквально в пару кликов, но понадобится ещё создать правило для файервола.

Активация FTP-сервера и настройка Firewall на MikroTik

Для начала активируем сам FTP сервер на роутере MikroTik, для чего переходим в меню IP -> Services и переводим сервис ftp в активное положение. Как обычно, я показываю все действия в web-интерфейсе.

активация FTP сервера MikroTik

Собственно, ftp-сервер у нас уже работает. Это можно легко проверить набрав в браузере или в проводнике внутренний адрес вашего роутера, например ftp://192.168.88.1 и входим с именем и паролем администратора. Но нам нужен доступ снаружи, а вот тут облом.

соедиение с FTP сервером MikroTik

Чтобы разрешить подключение снаружи, нужно в файерволе разрешить доступ к 21 порту на интерфейсе ether1-gateway и переместить данное правило выше всех запрещающих правил.

Переходим в IP -> Firewall и на вкладке Filter Rules добавляем новое правило:

  • Chain (Цепочка) -> Input
  • Protocol -> tcp
  • Dst. Port -> 21
  • In. Interface -> ваше соединение с провайдером (pрpe, wan, ether1-gateway - в зависимости от версии прошивки или типа соединения с провайдером)
  • Action -> Accept

Подробнее о значении полей при настройке файервола можно узнать из статьи "Проброс портов на MikroTik". То же самое можно сделать из командной строки:

/ip firewall filter add chain=input action=accept protocol=tcp in-interface=ether1-gateway dst-port=21

Не забываем переместить данное правило выше запрещающих. Теперь у нас есть доступ снаружи к нашей флешке по FTP. Остались небольшие штрихи.

Добавление пользователя FTP

Чтобы не лазить на наш ftp-сервер от имени администратора, можно создать другого пользователя с паролем, для чего открываем меню System -> Users и нажимаем Add New.

В поле Name вводим желаемое имя пользователя, например ftp_user, в списке Group выбираем read или write (если нужны права записи) и задаём пароль, желательно сложный из цифр букв в разных регистрах и символов.

И последний штрих, без которого наш пользователь не сможет авторизоваться. На вкладке Groups, откройте параметры выбранной группы write и проверьте, чтобы обязательно стояла галочка напротив ftp.

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

редактирование группы FTP сервера MikroTik

Если статья понравилась, ставь лайк и подписывайся на канал Дзен и паблик вконтакте.

Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Закодированные PDF. Как скопировать закодированный текст. Изменение даты создания файла в *nix Неверная кодировка при распаковке архивов ZIP и RAR Windows XP и терминальный сервер на Server 2008 R2 Как достать потёкшие батарейки из клавиатуры Аpple Как избавиться от фона в колонках

Комментариев: 7

Вроде все доступно. Попробуем. Настраивал микротик на два канала имел много проблем, хотя тоже по описаниям ничего сложного. Надеюсь здесь будет все так же просто как описано. Спасибо.

Из вне НЕ работает, правило не помогает, пароль спрашивает и на этом кино заканчивается. В локалке - без проблем

Всё работает, у парня всё правильно описано, просто руки надо достать и правильно настроить изначально микрот, не для начинающих машинка-то.

Чтоб извне работало, нужен внешник на Up-link'e а не серый IP от провайдера.

Ftp как и smb шару, я бы рекомендовал делать исключительно для локального доступа. А для того чтобы был доступ снаружи, предварительно можно поднять vpn сервер l2tp например, и уже находясь внутри своей сети пользоваться файловым хранилищем.

Чтобы работал из-вне, нужно в Firewall в разделе Service Ports прописать порт FTP и включить его.

Мне так и не удалось открыть SMB-сервер на MikroTik наружу, хоть и ставил в настройках слушать на всех интерфейсах, пробовал открывать порты 137-139 и 445 в настройках файервола

Многие провайдеры в принципе фильтруют эти порты. Даже на внутрисетевых коммутаторах. Ибо некоторые пользователи работают без роутера, виндовой машиной, с выключенным фаерволом. Еще многие провайдеры фильтруют 25-й порт. До отдельной просьбы этого не делать. В силу тех же причин.

Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

1. Постановка задачи.

Задача: Пробросить FTP наружу c локального IP адреса.

2. Исходные данные.

FTP в локальной сети на порту 21 (для пассивного режима диапазон портов 30000-35000). MikroTik в качестве шлюза.

3. Разрешаем порты в Firewall.






4. Проброс портов в NAT.

Делаем проброс с локального IP адреса + 21 порта на внешний IP адрес + произвольный порт.

Делаем проброс с локального IP адреса + диапазон портов пассивного режима на внешний IP адрес + диапазон портов пассивного режима.






5. Оригиналы источников информации.

Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

FTP сервер TP-LINK модема
Здравствуйте. Есть роутер TP-LINK TL-WDR4300, у него есть возможность file-sharing, можно вставить.


TP-Link 1042 ftp сервер
Имеется роутер тп линк 1042 . На нем есть функция фтп сервера с юсб и медиасервер . Мне нужно.

Как создать Сервер ftp .
Здраствуйте . Значит так : надо сделать публичный сервер ФТП (на картинке показан как РС ) От.

Asus DSL-N12U B1 и FTP-сервер
Здравствуйте , подскажите пожалуйста можно ли в данной моделе Asus DSL-N12U B1 ,через USB порт.

IP адрес меняется есть ли какой-нибудь выход на пример dyndns? Ну так какой ip от провайдера: статический, или динамический?
Как минимум, сделать проброс порта. На чем у тебя поднят фтп? Ну тогда либо воспользоваться сервисами dyndns, либо заказывать у провайдера статику.
И да, лучше не FTP, а SFTP, так хоть немного, но секьюрнее. А как мне dyndns это какой сайт где регистрироваться? Потом как мне в микротике это прописать?

У Микротика есть Microtic Cloud, который предоставляет DDNS.

А как с iPhone зайти на ftp?

Добавлено через 27 секунд
Это сделал, могу теперь по ссылке заходить.

Что нужно сделать чтобы зайти по ссылке? Как мне открыть вход?

Поищи в аппл сторе "FTP Client".

В нем уже и вставляй ddns имя, логины пароли.

hattabych, уже нашел, еще что в роутере нужно сделать, но этого я не знаю.

Только если у тебя динамика на внешнем, вместо 'dst-address=10.5.8.200' пиши 'in-interface=ether1' (ну или на каком итерфейсе у тебя провайдер).

hattabych, так у меня ip адрес меняться будет вроде так не получится.

Добавлено через 8 минут
hattabych, не могу я стучаться нужно что сделать в микротике.

Еще раз - провайдер выдает какой адрес?

Если белый, то все норм.

Если серый (192.168.Х.Х, 172.16.Х.Х - 172.31.Х.Х, 10.Х.Х.Х)- то бери белый, либо дополнительно договаривайся с провайдером о пробросе FTP.

Порядок действий:
1. На FTP сервере адрес сделать статичным (в локальной сети), например 192.168.1.100.

hattabych, ладно сделаю потом.
Доброго времени суток!
Вы лучше ответьте как мне через телефон на микротик подключиться? У меня белый IP, но это не важно вроде.
Включил DDNS на микротике, нужно еще что то сделать на микротике то есть как?
Ссылку для подключения скопировал на телефон, но он не подключается необходимо что то еще сделать?

С телефона пропингуй DDNS имя. Если разрешится в нужный адрес адрес, то DDNS в норме.

Далее смотреть настройки файрвола. Скорее всего из вне доступ заблокирован.

Добавь правило и помести его перед запрещающими.

Пример для WinBox.

Добавится правило, но в конец списка. Надо переместить его к разрешающим.

Ну или через графику IP -> Firewall драг-н-дропом перенеси на нужное место.

После можно подцепиться с любого IP. Далее уже возникнут вопросы безопасности. Как минимум пользователя admin смени. Ну или на худой конец пароль ему хороший поставь.

hattabych, не подключается.

Добавлено через 11 секунд
Сделал как вы сказали.

Не подключается телефон к микротику?

Или с телефона на ФТП не получается зайти?

1. Пингуется ли микротик по DNS имени?

2. /ip firewall filter print


Ftp сервер cisco packet tracer
Packet Tracer PC Command Line 1.0 PC>ftp 192.168.0.3 Trying to connect. 192.168.0.3 Connected.

Как перевести обращение к ftp-серверу в Интернете на домашний ftp-сервер?
Сервер LAMP поднимал , но интересует такой вопрос , сделать UPLOAD . Взять сервер на хостинге , а.

Используя системный FTP клиент командной строки загрузите файл на FTP-сервер
Задание: Используя системный FTP клиент командной строки загрузите файл на FTP-сервер. Как это.

FTP сервер vsftpd. Как указать каталог /var/ftp как каталог который нужно открыть при подключении?
CentOS 5.8, FTP сервер: vsftpd При подключении к FTP с клиентской машины сразу же попадаю в.

Ftp сервер
Где можно взять ftp сервер, какой наилучший для обновления информации в сайте.

Читайте также: