Меню
Контакты
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   Сб-вс: выходной
Заказать звонок

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

 28 Июнь 2018    MikroTik, О настройках и установке оборудования производителя Mikrotik, Практика и программирование MikroTik

В прошлых частях мы с Вами настроили единую локальную сеть через EoIP туннель построенном поверх OpenVPN.

К каким результатам мы пришли:
У нас встает вопрос безопасности нашей локальной сети, ведь китайские боты не спят и постоянно сканируют доступное сетевое пространство на наличие дыр и уязвимостей.
Имея статический IP мы подвержены риску быть взломанными (китайские боты не дремлют!). Т.к. наш статический IP доступен в интернете он может подвергаться различного рода «атакам».
Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети.
В принципе жесткую защиту мы делать не будем. У нас ведь не корпоративная сеть, а домашняя. Данной статьей мы попробуем закрыть самые распространенные пробелы в защите нашего роутера и локальной сети в общем.
Организацию удаленного подключения мы рассмотрим в Седьмой статье т.к. эта статья получилась достаточно большой по наполнению.
Приступим…

За все операции обработки трафика в сетевых устройствах отвечает так называемый «Межсетевой экран» (Eng — Firewall)
Именно он определяет куда отправлять тот или иной пакет, как обрабатывать соединения и многое, многое другое…
Чтобы охватить весь спектр работы Firewall-а не хватит не только одной статьи, но и 10 или 20 статей точно. Настолько велики его возможности и вариации применения. Кстати это касается не только MikroTik RouterOS, а принципа фильтрации трафика в общем (даже на Windows)!

Давайте взглянем, где находится этот самый Межсетевой экран:
Он находится по пути IP -> Firewall

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Путь до межсетевого экрана

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Окно для ввода правил фильтрации

Кратко пробежимся по основным вкладкам окна:
1 — Filter Rules — тут основные разрешающие и блокирующие правила.
2 — NAT — тут формируются перенаправления трафика.
3 — Mangle — тут происходит маркировка соединений и пакетов, отлов определенного вида трафика для дальнейшей его обработки.
Остальные вкладки пока рассматривать не будем, они нам не пригодятся.
4 — Raw — тут можно правилами отловить паразитный трафик и тем самым снизить нагрузку на CPU. Полезно для смягчения DOS атак.
5 — Service Ports — Для некоторых сетевых протоколов требуется прямое двустороннее соединение между конечными точками. Это не всегда возможно, поскольку трансляция сетевых адресов широко используется для подключения клиентов к сети. Это подменю позволяет настроить «помощники отслеживания соединений» для вышеупомянутых протоколов. Эти «помощники» используются для обеспечения правильного обхода NAT.
6 — Connections — тут отображаются все текущие соединения проходящие через маршрутизатор.
7 — Address List — тут списки адресов брандмауэра позволяют пользователю создавать списки IP-адресов, сгруппированных под общим именем. Затем фильтры брандмауэра, Mangle и NAT могут использовать эти списки адресов для сопоставления пакетов с ними.
8 — Layer7 Protocols — тут можно создавать шаблоны для поиска в потоках ICMP / TCP / UDP. L7 собирает первые 10 пакетов соединения или первые 2KB соединения и ищет шаблон в собранных данных.

Часть терминов может показаться непонятной, но в этом нет ничего страшного, мы будем работать только с первым пунктом Filter Rules. Хотя в нем тоже, очень много вариантов создания правил.
Сразу нужно оговориться, что полной безопасности Вам никто не обеспечит и это важно понимать! Но боятся не стоит, мы ведь не популярная корпорация за которой ведется промышленный шпионаж, нам достаточно превентивных мер ))))

Конфигурация по умолчанию:
Тут я хочу поделиться с Вами конфигурацией, которой хватит для простого домашнего использования.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Базовые правила Firewall

Консольно:

/ip firewall filter
add chain=input comment=INPUT connection-state=established,related
add chain=input protocol=icmp
add action=drop chain=input in-interface=WAN
add action=drop chain=forward comment=FORWARD connection-state=invalid
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface=WAN

Но я делаю несколько по своему, возможно что-то тут не идеально, но это мои тараканы ))
1. Перейдем к созданию правил в Filter Rules.
Отступление:
Все правила добавленные в таблицу применяются последовательно, сверху вниз. Будьте осторожны не добавляйте сразу правило, блокирующее все что только можно. Вы можете потерять доступ к роутеру и тогда придется его сбрасывать и перенастраивать заново.
Я рекомендую использовать магическую кнопку Safe Mode для таких целей. Если эта кнопка нажата и Вас отключит от роутера, настройки вернутся к моменту нажатия на эту кнопку. Очень полезная вещь, особенно если Вы работаете удаленно.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Magic Button =)

Правила добавляются по уже знакомой нам кнопке плюс…

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Добавляем правило

1.1. Перво наперво нам нужно разрешить уже установленные(Established) и связанные(Related) соединения и сбросить некорректные(Invalid) соединения на входе в роутер(цепочка Input). Так мы снизим нагрузку на маршрутизатор. Зачем повторно обрабатывать эти соединения если они уже и так установлены или неизвестны. Экономим ресурсы процессора. А вот новые соединения этими правилами обрабатываться не будут, пусть даже они находятся выше в таблице.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выбираем уже установленные и связанные соединения на входе

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем их

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выбираем некорректные соединения на входе

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Запрещаем их

Консольно:

/ip firewall filter
add action=accept chain=input connection-state=established,related comment="Rules 1.1"
add action=drop chain=input connection-state=invalid

1.2. Тоже самое делаем для трафика внутри нашего роутера(цепочка Forward)

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выбираем уже установленные и связанные соединения проходящие через роутер

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем их

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выбираем некорректные соединения проходящие через роутер

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Запрещаем их

Консольно:

/ip firewall filter
add action=accept chain=forward connection-state=established,related comment="Rules 1.2"
add action=drop chain=forward connection-state=invalid

1.3. Чтобы всяческие боты не заваливали нас Ping запросами, что-то вроде DDOS атаки, будем пропускать только нормальный Ping.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выбираем протокол ICMP и входящий интерфейс с интернетом

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Указываем, до какого порога пропускать Ping запросы

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем

Консольно:

/ip firewall filter
add action=accept chain=input in-interface=WAN limit=50/5s,2:packet protocol=icmp comment="Rules 1.3"

1.4. Блокируем сканеры портов (работает странно, но тем не менее работает).
Для всех правил будет обозначена цепочка Input т.е. Вход

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Нам нужна только цепочка инпут

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

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

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

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Запрещаем все соединения для списка

Добавляем правила отлова зловредных сканеров.
Я специально не буду добавлять скриншоты из закладки Gereal т.к. они все выглядят одинаково (указывается только Input)

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Первое правило, вкладка Extra

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Указываем что нужно добавить адрес источника в список и пишем имя этого списка. Вы можете указать свое название.

Далее я также не буду показывать скриншот Action т.к. для всех последующих правил сканера он одинаковый.
Ниже все вкладки по отдельному правилу.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Будем ловить врагов по TCP флагам

Буду показывать просто изменения данных флагов для каждого последующего правила…

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Новое правило, изменяем TCP флаги

А вот дальше интересней, Вы возможно не знали, что паразиты могут сканировать и нулевые порты. Да да, просто напросто порт 0 TCP и порт 0 UDP. Давайте внесем в черный список и тех, кто пытается у нас просканировать или получить доступ через эти порты.

Добавляем в список сканеров все что стучится к нам по 0 TCP порту

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Добавляем в список сканеров все что стучится к нам по 0 UDP порту

А теперь все тоже самое одной консольной командой на добавление:

/ip firewall filter
add action=drop chain=input src-address-list="Port Scanners" comment="Rules 1.4"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp psd=21,3s,3,1
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=!fin,!syn,!rst,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=fin,syn
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=fin,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=fin,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=fin,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=syn,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input in-interface=WAN protocol=tcp tcp-flags=rst,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input dst-port=0 in-interface=WAN protocol=tcp
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=0s chain=input dst-port=0 in-interface=WAN protocol=udp

1.5. Блокируем сканеры SIP и DDOS SIP телефонии.
Тот же самый метод применяем и для отлова Любителей взлома и сканирования SIP телефонии. Пока я не добавил эти правила у меня постоянно отваливался коннект в шлюзе Cisco.
Первое правило идентично тому, что применяется для сканера портов. Мы просто меняем имя списка для блокировки.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Первое DROP правило, блокирующее все адреса в списке

Для SIP телефонии предусмотрены стандартные UDP порты 5060 и 5061. Их то боты и мучают. Создадим для отлова IP адресов, правила.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Ловим по портам

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Выставляем параметры

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Следующее правило

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Последнее правило

Консольно:

/ip firewall filter
add action=drop chain=input src-address-list=sip-blacklist comment="Rules 1.5"
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=0s chain=input dst-port=5060,5061 in-interface=WAN limit=120/1m,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=0s chain=input dst-port=5060,5061 in-interface=WAN limit=40/2s,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=0s chain=input dst-limit=50,50,src-and-dst-addresses/10s dst-port=5060,5061 in-interface=WAN protocol=udp

1.6. Разрешаем DNS запросы только из локальной сети.
Один важный пункт, чтобы DNS запросы наших локальных устройств обрабатывались корректно. Вернее чтобы мы получали ответ внешнего DNS сервера корректно.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Трафик с внешних DNS серверов

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем

Консольно:

/ip firewall filter
add action=accept chain=input in-interface=WAN protocol=udp src-port=53 comment="Rules 1.6"

1.7. Разрешаем соединения по OpenVPN.
Мы же помним, что у нас работает OpenVPN сервер и нам нужно разрешить обращения OpenVPN клиентских устройств.
Также разрешаем все обращения по интерфейсам OpenVPN. Добавляем правила для всех интерфейсов OpenVPN если их больше одного можно сделать из них Interface List и применить правило к нему.

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем подключения по порту UDP 1194

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Разрешаем трафик по интерфейсу OpenVPN

Консольно:

/ip firewall filter
add action=accept chain=input dst-port=1194 protocol=tcp comment="Rules 1.7"
add action=accept chain=input in-interface=ovpn

1.8. Блокируем все остальные соединения, кроме, как из Локальной сети.
И блокируем все остальное, что не разрешено правилами выше!

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Блокируем все входящие запросы кроме запросов из локальной сети

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Запрещаем

Консольно:

/ip firewall filter
add action=drop chain=input in-interface=!LAN-Bridge comment="Rules 1.8"

2. Для ленивых
Если Вы дочитали до конца, значит у Вас пытливый ум и Вы хорошо представляете с чем столкнулись. Вы молодец.
Еще раз хотелось бы обозначить, что данная конфигурация не является идеальной. Я просто старался показать некоторые способы фильтрации трафика. Вам решать, использовать это у себя простым копипастом или подумать и сделать лучше! Но я уверен, что моё решение тоже не плохое =)

Предлагаю Вашему вниманию все вышеизложенное в едином виде:

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Весь список правил

Консольно:

/ip firewall filter
add action=accept chain=input comment="Rules 1.1" connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=forward comment="Rules 1.2" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=input comment="Rules 1.3" in-interface=WAN limit=50/5s,2:packet protocol=icmp
add action=drop chain=input comment="Rules 1.4" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp psd=21,3s,3,1
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=!fin,!syn,!rst,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=fin,syn
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=fin,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=fin,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=fin,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=syn,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface=WAN protocol=tcp tcp-flags=rst,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input dst-port=0 in-interface=WAN protocol=tcp
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input dst-port=0 in-interface=WAN protocol=udp
add action=drop chain=input comment="Rules 1.5" src-address-list=sip-blacklist
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-port=5060,5061 in-interface=WAN limit=120/1m,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-port=5060,5061 in-interface=WAN limit=40/2s,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-limit=50,50,src-and-dst-addresses/10s dst-port=5060,5061 in-interface=WAN protocol=udp
add action=accept chain=input comment="Rules 1.6" in-interface=WAN protocol=udp src-port=53
add action=accept chain=input comment="Rules 1.7" dst-port=1194 protocol=tcp
add action=accept chain=input in-interface=ovpn
add action=drop chain=input comment="Rules 1.8" in-interface=!LAN-Bridge

ПС*
Я специально не стал вносить в данную статью разрешающее правило для удаленного доступа к роутеру по WinBox. Попробуйте добавить его сами! Я уверен у Вас получится =))
**злобный смех за кадром

Благодарю Вас за Ваше время.