Меню

Mikrotik настройка firewall rules



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

Firewall на микротик состоит из следующих составляющих, это цепочки (chain) и действия в этих цепочках (Action), а также различные фильтры к трафику который обрабатывается в цепочках.

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Firewall Chain

В Mikrotik существуют следующие цепочки

Input – цепочка для обработки пакетов поступающих на маршрутизатор, имеющих в качестве адреса назначение ip самого маршрутизатора.

Forward – в этой цепочки обрабатываются пакеты проходящие через маршрутизатор

Output – цепочка для обработки пакетов созданных маршрутизатором, например когда мы с маршрутизатора пингуем или подключаемся по telnet

Из описания понятно, что для защиты маршрутизатора нужно использовать цепочку input. А для обработки трафика от пользователей и к пользователям использовать chain forward. Использование Output мне не приходилось.

Firewall Action

В цепочках можно осуществлять следующие действия

Параметр Действие
Accept Разрешить
add-dst-to-address-list Добавить ip назначение в список адресов указанный в Address List
add-src-to-address-list Добавить ip источника в список адресов указанный в Address List
Drop запретить
fasttrack-connection Обрабатывать пакеты включив FastTrack т.е пакеты будут проходить по самому быстрому маршруту, минуя остальные правила firewall и обработку в очередях
Jump Прыжок, переход на другую цепочку заданную в Jump target
log Запись в лог
passthrough Перейти к следующему правилу не делая никаких действий(полезно для сбора статистики)
Reject Отбить пакет с причиной указанной в Reject with
Return Вернуть пакет в цепочку из который он пришел
tarpit захватывает и поддерживает TCP-соединения (отвечает с SYN / ACK на входящий пакет TCP SYN)

Фильтрация в firewall

Фильтрация пакетов которые могут попасть в цепочки может осуществляться по

Src.Address – адрес источника

Dst.Address – адрес назначения

Protocol – Протокол(TCP, UDP и т.д)

Src.Port – порт источника

Dst.Port –порт назначения

In.Interface –входящий интерфейс

Out.Interface – исходящий интерфейс

Packet.Mark – метка пакета

Connection.Mark –метка соединения

Routing Mark – метка маршрута

Roting table — адрес получателя которых разрешен в конкретной таблице маршрутизации

Connection Type – тип соединения

Connection State — состояние соединения (установлено, новое и т.д)

Connection NAT State – цепочка NAT (srcnat, dstnat)

Примеры настройки firewall

Рассмотрим некоторые примеры по настройки firewall на маршрутизаторе микротик.

Настройка безопасности Микротик

Для начала настроим безопасность на наше маршрутизаторе, Для этого сделаем следующие

1.Запретим пинговать наше устройство

2.Запретим доступ к микротику всем кроме локальной сети и разрешенных ip адресов

Для настройки подключаемся к роутеру с помощью утилиты winbox и идем в меню IP-Firewall. Вкладка Filter Rules и нажимаем добавить.

Запрещаем пинги на наше устройство, для этого, на вкладке general, chain выбираем input protocol icmp

На вкладке Action выбираем drop

Запрещаем доступ к управлению маршрутизатора. Для начала создаем лист с нашими разрешенными адресами, переходим в IP-Firewall, вкладка Address Lists, добавляем новый лист

Name – название нашего листа

Address – адреса относящиеся к этому листу, можно указывать как отдельные адреса так и сети.

Дальше создаем новое правило, снова переходим в Filter rules и добавляем его

Затем переходим на вкладку Advanced и в качестве Src. List выбираем созданный лист

В действии Action выбираем разрешить accept.

Можно было не создавать лист, а на вкладке General в параметре Src. Address прописать нашу сеть, просто мне удобнее работать со списками адресов, в будущем для добавления нового адреса нужно его просто добавить в лист allow_ip.

Следующим шагом запрещаем все входящие соединения. Добавляем правило на chain input, и в действии ставим drop. Должно получится следующие

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

Для того что бы поменять местами правило, нужно кликнуть по строке и с зажатой левой кнопкой мыши перетащить его на нужное место.
На самом деле, правило по запрете ping можно было не создавать, т.к последнее правило блокирует все попытки доступа к роутеру, в том числе и пинг.

Доступ пользователей в интернет

Допустим нам нужно дать доступ в интернет только для определенной сети. Для этого создаем два разрешающих правила в chain forward. Первое правило разрешает исходящий трафик из нашей сети

Action ставим accept. Можно как указать Src. Address, так и использовать Address Lists, как мы это делали выше. Следующим правилом разрешаем прохождение пакетов в нашу сеть.

B следующим правилом запрещаем все остальные сети,

Action выбираем drop. В результате получится следующее

Запрет доступа пользователя в интернет

Если нам нужно запретить доступ в интернет определенным пользователям, давайте сделаем это через Address Lists, что бы в дальнейшем проще было добавлять или удалять правила, переходим на вкладку address Lists и создаем список block в который добавим адреса для блокировки.

Читайте также:  Не сохраняются настройки панели инструментов

Создаем запрещающее правило firewall в chain forward, в котором на вкладке Advanced в Src. Address List выбираем наш список для блокировки

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

Аналогично можно запретить доступ к внешним ресурсам, так же создаем список для блокировки, но в настройка firewall уже указываем его в качестве Dst. Address List. Кроме ip адреса в список можно вносить и доменные имена, например если мы хотим запретить доступ пользователей в соцсети, одноклассники или вконтакте.

Доступ только к сайтам

В следующим примере рассмотрим как разрешить пользователям выход в интернет только по 80 и 443 порту и запретить все остальные, для этого создадим разрешающее правило в chain forward, Protocol выбираем tcp и в параметре Dst.Prort указываем разрешенные порты

Тоже самое можно сделать с помощью запрещающего правила, используя оператор отрицания «!», а Action установить drop

Это означает, запретит все порты кроме 80 и 443.

Конечно, все возможности firewall на микротик я показать не смогу, но основные параметры думаю понятны.

Внимание! при настройке firewall на MikroTIK, настоятельно рекомендую проводить их в «Safe Mode» как ее включить описано здесь, в противном случае вы рискуете потерять доступ к маршрутизатору.

Обучающий курс по настройке MikroTik

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Настройка firewall Mikrotik

Разделы:

  • Winbox. Пожалуй, самое удобное средство настройки Mikrotik. Включает консоль и GUI.
  • INPUT
  • NAT
    • Проброс портов
    • Перенаправление трафика, адресованного одному ip, на другой ip
    • Ловим любителей чужого ssh
  • Готовый вариант настройки firewall для защиты роутера от внешнего интернет

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Вместо вступления

Сразу: эта статья для новичков, профи тут делать нечего. К новичкам легко можно отнести даже опытного бойца с Linux, который впервые видит Mikrotik. Через 2 часа это пройдет и статья станет не нужной 🙁

Популярность роутеров Mikrotik растет изо дня в день. Я почувствовал это, когда вчера мой сосед, далекий от IT, всерьёз сравнивал Asus RT-N56 и MikroTik RB2011UAS-2HnD-IN 🙂 Прошивки тех же Asus, несмотря на их красивость и удобность для новичка, все же глючат. То тут, то там интерфейс начинает тормозить, плавает скорость WiFi. Это, а также невысокая стоимость Mikrotik привело к тому, что сейчас даже неспециалисты интересуются этими замечательными устройствами. Но я представил себе моего соседа, который открыл веб-интерфейс Mikrotik. А также глаза настройщика местного провайдера, который ничего, кроме потоковой установки Asus WL520, не делал уже года два. Я к чему? Что для того, чтобы не разочароваться в покупке, надо понимать, что роутеры Mikrotik должны настраиваться теми, кто понимает, что и как он делает. А чтобы немного расширить этот неширокий круг лиц, и написана эта статья.

В одной статье в интернете (статья, кстати, неплохая) предлагался вариант сброса всех настроек роутера и настройка всего с нуля — объединение интерфейсов, включение NAT. Если вы имеете в запасе много времени и желания полностью изучить предмет разговора — это хороший вариант. Если нет — не надо ничего сбрасывать, просто чуть-чуть добавьте по вкусу. Это ключает в себя задать пароль от WiFi, выбрать регион для того, чтобы не нарушать частотный диапазон и настроить брандмауэр, чтобы можно было начать работать на новом девайсе.

Хорошей идеей может оказаться сначала подключить Mikrotik как локальный клиент (WAN Mikrotik в LAN порт вашего текущего роутера) и настроить WiFi и др. Таким образом вы сможете, подключив только один ваш ноутбук, все проверить и испытать (и даже посканить роутер из вашей существующей локалки), а потом, когда решите, что готовы, просто включите новенький Mikrotik вместо старого роутера. Если вы что-то напортачите в процессе настройки, вы не выставите незащищенным компьютеры за Mikrotik-ом и всегда спокойно сможете сбросить роутер на заводское состояние.

Автодополнение команд настолько похоже на стиль Cisco и др., что у вас не возникнет ощущения оторванности от пережитого опыта, а firewall роутера Mikrotik настолько похож на iptables, что не составит существенно труда понять принцип работы, если у вас хоть немного опыта работы с Linux.

Итак, имеем роутер Mikrotik, например, очень популярный RB951G-2HnD.

Считаем, что внутренняя сеть осталась нетронутой (192.168.88.0/24), IP роутера 192.168.88.1, внешний интерфейс ether1-gateway.

Читайте также:  Настройка блютуз наушников через инженерное меню

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

Доступ к терминалу через WinBox

Огромное преимущество WinBox состоит в том, что даже если сетевой адаптер компьютера, с которого вы подключаетесь к Mikrotik, находится в другой подсети (ну, настройка у вас такая), то WinBox все равно сможет подключиться к роутеру — по mac. Если вы еще не установили WinBox, самое время это сделать! В браузере открываем веб-интерфейс роутера и находим почти в самом низу ссылочку WinBox.

Запускаем WinBox и выбираем New Terminal.

Дальше все как в нормальных взрослых железках, по tab автодополнение команд и др. Вам понравится!

При вводе команд учтите, что внесенные изменения применяются сразу же, поэтому не заблокируйте сами себя. После ввода команд новые правила будут доступны для редактирования через WinBox или веб-интерфейс. Порядок правил имеет значение — выполняются сверху вниз. Где бы вы ни взяли сами команды, сначала посмотрите, что они делают!

Цепочка INPUT работает тогда, когда данные предназначены роутеру (его ip адресу). Когда мы что-то настраиваем для этой цепочки, мы в первую очередь защищаем сам роутер (ssh, telnet, веб-интерфес и др.) от взлома. Пожалуй, больше всего внимания требует именно эта цепочка. Общий принцип построения правил: явно запрещаем что-то (например, все новые соединения из интернета ;)) или явно что-то разрешаем (например, удаленный ssh), остальное запрещаем.

Цепочка FORWARD работает тогда, когда данные проходят через роутер, например, когда ваш локальный компьютер хочет открыть сайт ya.ru. Всякие блокировки на этом этапе защищают вас, например, от того, что зараженный компьютер в вашей локальной сети начнет рассылать спам или учавствовать в DDOS. Т.е. каждый банк-клиент, IM-месенджер и куча другого софта требуют своих особых разрешений, то если вы не защищаете банк от хакеров, то мы просто запретим некоторые наиболее распространенные виды трафика, которые используются зараженными компьютерами. А так весь проходящий из локалки в интернет (но не наоборот!) мы разрешим.

Цепочка OUTPUT работает тогда, когда данные генерятся на самом роутере и идут наружу. Например, для запросов DNS. Эту цеопчку по сути нам нет смысла фильтровать. Почти.

Цепочка forward позволяет нам разрешать или не разрешать проходящий трафик, а вот за то, какой трафик и куда мы будем перенаправлять, отвечают цепочки SRCNAT и DSTNAT.

Цепочка SRCNAT (Source NAT) предназначена для трафика, условно названного «наружу». Изменяется адрес источника (source) на адрес внешнего интерфейса. Например, чтобы дать возможность клиентам локальной сети посещать сайты в интернет.

Цепочка DSTNAT (Destination NAT) определяет как будет проходить «входящий» трафик. Роутер изменит адрес назначения (destination). Например, можно сделать доступным из вне веб сервер, размещенный в локальной сети.

INPUT

Минимальный набор правил — сделать недоступным из вне внешний интерфейс роутера.

/ip firewall filter
add chain=input connection-state=invalid action=drop comment=»drop invalid connections»
add chain=input connection-state=related action=accept comment=»allow related connections»
add chain=input connection-state=established action=accept comment=»allow established connections»
add chain=input action=drop comment=»drop everything else» in-interface=ether1-gateway

где в последнем правиле мы запрещаем весь входящий трафик на внешнем интрфейсе. Не играйтесь настройками удаленно! Легко лишить себя доступа к роутеру.

Далее, по мере надобности, можно будет помещать разрешающие правила перед последним запрещающим.

IP -> Firewall — NAT. По-умолчанию, nat уже включен.Это правило «маскарадинга»:

/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1-gateway

Исходящий интерфейс (out-interface) всегда внешний, смотрящий и интернет (или просто в другую сеть, если у вас все непросто). В принципе, минимально этих правил nat и input уже достаточно. Учтите, что если у вас цепочка forward по-умолчанию блокирует все, что возможно, то надо добавить соответствующее правило:

/ip firewall filter add chain=forward out-interface=ether1-gateway

Примеры

Проброс портов

Предположим, вам надо сделать доступным веб-сервер (tcp/80), запущенный на локальной машине с IP 192.168.88.22.

/ip firewall nat add action=dst-nat chain=dstnat dst-port=80 in-interface=ether1-gateway protocol=tcp to-addresses=192.168.88.22 to-ports=80

Все бы ничего, но скорее всего, у вас включен firewall, который режет все, что не соответствует политике партии. Тогда надо разрешить forward пакетов:

Это правило надо переместить повыше, т.е. ближе к началу списка правил.

Перенаправление трафика, адресованного одному ip, на другой ip

Если вам надо все подключения на один ip-адрес переадресовать другому ip-адресу:

/ip firewall nat add action=netmap chain=dstnat protocol=tcp dst-address=192.168.88.3 to-addresses=192.168.4.200

Ждем и давим, как блох любителей чужого ssh

Если мы не используем ssh для работы с Mikrotik, то нам может быть мало просто отключить ssh в IP -> Services. Если мы не пользуемся ssh, значит, любая попытка коннекта по ssh — вражеская!

Следующее правило добавляет IP-адреса источников ( action=add-src-to-address-list ), которые подключаются к 22 порту, в список ssh_blacklist , на 60 минут. Само это правило ничего не блокирует, просто заносит в черную книжечку:

/ip firewall filter
add chain=input protocol=tcp dst-port=22 address-list=ssh_blacklist action=add-src-to-address-list address-list-timeout=60m comment=»record ssh brute forcers» disabled=no log=yes log-prefix=» — SSH ATTEMPT — «

А вот теперь, имея на руках список хулиганов (ssh_blacklist), можно банить им либо только работу с ssh, либо вообще любые действия в сторону нашего микротика:

Читайте также:  Настройка кодировки в notepad

/ip firewall filter
add chain=input protocol=tcp src-address-list=ssh_blacklist action=drop comment=»drop ssh brute forcers»

Правила по отлову и блокированию маньяков надо разместить выше последнего запрещающего правила, иначе ничего не сработает. А еще лучше, если у вас есть открытый VPN или другие сервисы на микроте — оба этих правила поставить самыми первыми, чтобы тех, кто пытался наш ssh открыть, отгородить вообще от всего на нашем роутере, по принципу — если кто-то в одном что-то замышляет, то и в другом он тоже пакость готовит. Главное — не перестараться! Вдруг вы сами случайно забудете об этом правиле и решите с работы посканить роутер nmap-ом, например.

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

Настройка с помощью скрипта

Вводить каждое правило firewall с консоли руками очень быстро может надоесть, к тому же готовый скрипт легко сохранить «на память». В открытом WinBox выбираем System -> Scripts. В текстовом редакторе готовим скрипт правил, копируем его и жмем Run Script. Потом можно что-то добавить по мелочи, что-то подправить, а может и опять скриптом все.

Приведу пример скрипта настройки firewall:

Обратите внимание: этот скрипт не привязан к внешнему IP или MAC или чему-то уникальному. Его можно брать и использовать. Если вы ничего не меняли в своем роутере и обновили до версии 6.* после покупки, вам на всякий случай следует проверить название внешнего интерфейса и убедиться, что внутренняя сеть 192.168.88.0/24. И все.

ether1-gateway — внешний интерфейс, первый по счету. Это его имя по-умолчанию. Остальные порты — внутренние.

В секции ext input ничего нет — мне не нужно, чтобы кто-то подключался к роутеру. Если вам необходим удаленный доступ к роутеру, скажем, по ssh, то впишите команду:

add chain=input protocol=tcp dst-port=22 action=accept in-interface=ether1-gateway comment=»allow remote ssh»

В секции OUTPUT хватило бы и последней команды (add chain=output action=accept comment=»accept everything»), но для интереса я немного разделил по исходящим интерфейсам. Теперь при беглом просмотре будет видно, есть ли вообще трафик от роутера, и если есть, куда он идет — наружу или в локалку. Скажем, увидим, что был трафик наружу, уточним правила по протоколам (tcp, udp, icmp). Если будет еще интереснее, можно будет поставить правило для логирования определенного вида трафика. Особо не увлекайтесь, все-таки роутер не имеет кучи места под логи. Да и лишний раз напрягать слабенький процессор тоже не очень.

Последнее правило (5) никогда не будет выполняться, я его добавил сюда специально, чтобы продемонстрировать работу jump. Последнее правило для цепочки forward будет (4) drop.

Т.е. предположим, мы запросили исходящее соединение с удаленным ssh-сервером (т.е. из локальной сети через через цепочку forward, протокол tcp, dst-port 22). Дойдя до блока (1) jumping, выполнится переход в (2) deny для tcp. Т.к. в цепочке tcp нет решения по поводу tcp/22, то выполнение вернется к (3), которое выполнит forward нашего пакета. Если наш пакет не удовлетворит требованиям (3), следующее за ним правило (4) блокирует его.

Наглядно это очень интересно смотреть, когда в окне Firewall видишь счетчик пакетов по правилам.

Если вы начали подозревать, что 100500 правок выполняют уже невесть что, просто выделяете все правила брандмауэра и нажимаете delete. Затем снова Run Script 😉

Чтобы не листать всю простыню, можно отфильтровать листинг правил по цепочкам (фильтр вверху справа):

Запаситесь терпением, не экспериментируйте в состоянии ночного анабиоза и второпях. В принципе, это все.

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Спасибо за скрипт, что-бы он работал нужно убрать перенос на новую строчку

add chain=forward action=accept in-interface=!ether1-gateway out-interface=ether1-gateway
comment=»accept from local to internet»

Хорошая статья. Пользуюсь данным скриптом, отредактированным под себя.

Хотел бы спросить. Если я поднимаю VPN подключение для обхода блокировок, то мне нужно в firewall добавить правило
add chain=forward action=accept in-interface=!PPTP_VPN_NAME out-interface=PPTP_VPN_NAME
comment=»accept from local to internet»

Этого правила будет достаточно для работы VPN? Или нужно так же продублировать этот интерфейс в правилах

add chain=output action=accept out-interface=ether1-gateway comment=»accept everything to internet»
add chain=output action=accept out-interface=!ether1-gateway comment=»accept everything to non internet»

и.т.д? То есть добавить правила для этого VPN дополнительно к другим правилам, где указаны интерфейсы?

Хорошая статья. Пользуюсь данным скриптом, отредактированным под себя.

Хотел бы спросить. Если я поднимаю VPN подключение для обхода блокировок, то мне нужно в firewall добавить правило
add chain=forward action=accept in-interface=!PPTP_VPN_NAME out-interface=PPTP_VPN_NAME
comment=»accept from local to internet»

Этого правила будет достаточно для работы VPN? Или нужно так же продублировать этот интерфейс в правилах

add chain=output action=accept out-interface=ether1-gateway comment=»accept everything to internet»
add chain=output action=accept out-interface=!ether1-gateway comment=»accept everything to non internet»

и.т.д? То есть добавить правила для этого VPN дополнительно к другим правилам, где указаны интерфейсы?

Источник

Adblock
detector