Mikrotik RoS, полезные мелочи
Распространенность оборудования Mikrotik растет с каждым днем, все больше устройств, а значит и RoS, появляется не только в корпоративном секторе, но и у обычных, домашних пользователей.
К сожалению, не смотря на вполне нормальные настройки по умолчанию, которые можно сделать через Quick Set, в интернете можно встретить множество советов очистить конфигурацию, и сделать как-то по «особому», с «нуля». В этой статье я хочу поделится своим опытом и дать рекомендации, как изменить конфигурацию из Quick Set под свои нужды, при этом сохранив достаточный уровень защищенности.
Что такое Quick Set?
Quick Set — это мастер автоматической конфигурации, который помогает быстро, не погружаясь в глубины тонкой настройки RoS, настроить роутер и начать им пользоваться. В зависимости от устройства, вам могут быть доступны несколько шаблонов:
- CAP — Режим управляемой точки доступа, требует наличия настроенного CAPsMAN
- CPE — Режим WiFi клиента, когда интернет вам приходит по WiFi
- HomeAP [dual] — Режим домашней точки доступа, тут количество настроек уменьшено, а их названия приближены к сленгу «домашних пользователей»
- PTP Bridge AP\CPE — Режим организации беспроводного моста, одна точка настраивается в AP, остальные в CPE
- WISP AP — Почти то-же, что и HomeAP, но настроек больше, и названия более «профессиональные»
- Basic AP — Почти пустая конфигурация, подходит для развертывания автономно управляемых точек доступа (без CAPsMAN)
Дальше мы будем в основном настраивать HomeAP\WISP AP, но советы пригодятся и в других конфигурациях.
Безопасность
Конфигурация по умолчанию уже не дает подключаться к роутеру из внешней сети, но основывается защита только на пакетном фильтре. Не забываем, про установку пароля на пользователя admin. Поэтому, в дополнение к фильтрации и паролю, я делаю следующие:
Доступность на внешних интерфейсах
Отключаю не нужные в домашней сети (и не во всех не домашних сетях) сервисы, а оставшиеся ограничиваю областью действия, указывая адреса, с которых можно к этим сервисам подключится.
Следующим шагом, будет ограничение на обнаружение роутера с помощью поиска соседей. Для этого, у вас должен быть список интерфейсов, где данный протокол может работать, настроим его:
/interface list add exclude=dynamic name=discover
Добавим в список discovery интерфейсы, на которых мы хотим, чтобы протокол Neighbors Discovey работал.
Теперь настроим работу протокола, указав список discovery в его настройках:
В простой, домашней конфигурации, в списке discovery могут быть интерфейсы, на которых может работать протокол доступа по MAC адресу, для ситуаций, когда IP не доступен, поэтому настроим и эту функцию:
Теперь, роутер станет «невидимым» на внешних интерфейсах, что скроет информацию о нем (не всю конечно), от потенциальных сканеров, и даже, лишит плохих парней легкой возможности получить управление над роутером.
Защита от DDoS
Теперь, добавим немного простых правил в пакетный фильтр:
/ip firewall filter
add action=jump chain=forward connection-state=new in-interface-list=ISP jump-target=anti-DDoS
add action=jump chain=input connection-state=new in-interface-list=ISP jump-target=anti-DDoS
add action=drop chain=forward connection-state=new src-address-list=BAN-DDoS
add action=return chain=anti-DDoS dst-limit=15,15,src-address/10s
add action=add-src-to-address-list address-list=BAN-DDoS address-list-timeout=1d chain=anti-DDoS
add action=jump chain=input connection-state=new dst-port=22,8291 in-interface-list=ISP jump-target=anti-BruteForce-3 protocol=tcp
add action=drop chain=forward connection-state=new src-address-list=BAN-BruteForce-3
add action=return chain=anti-BruteForce-3 dst-limit=4/1m,1,src-address/1m40s
add action=add-src-to-address-list address-list=BAN-BruteForce-3 address-list-timeout=1d chain=anti-BruteForce-3
И поместим их после правила defcon для протокола icmp.
Результатом будет бан на сутки для тех, кто пытается открыть более 15 новых соединений в секунду. Много или мало 15 соединений, вопрос спорный, тут уже сами подбирайте число, я выбрал 50 для корпоративного применения, и таких банит у меня 1–2 в сутки. Вторая группа правил гораздо жестче, блокирует попытки соединений на порт ssh (22) и winbox (8291), 3-и попытки за минуту, и отдыхай сутки ;). Если вам необходимо выставить DNS сервер в интернет, то подобным правилом можно отсекать попытки DNS Amplification Attacks, но решение не идеальное, и ложно-положительных срабатываний бывает много.
RFC 1918
RFC 1918 описывает выделение адресных пространств для глобально не маршрутизируемых сетей. Поэтому, имеет смысл блокировать трафик от\к таким сетям, на интерфейсе, который смотрит к провайдеру, за исключением ситуаций, когда провайдер выдает вам «серый» адрес.
/ip firewall address-list
add address=10.0.0.0/8 list="RFC 1918"
add address=172.16.0.0/12 list="RFC 1918"
add address=192.168.0.0/16 list="RFC 1918"
/ip firewall filter
add action=drop chain=input comment="Drop RFC 1918" in-interface-list=WAN src-address-list="RFC 1918"
add action=drop chain=forward comment="Drop RFC 1918" dst-address-list="RFC 1918" out-interface-list=WAN
add action=drop chain=output comment="Drop RFC 1918" dst-address-list="RFC 1918" out-interface-list=WAN
Поместите эти правила ближе к началу и не забудьте, добавить в список WAN интерфейс, смотрящий в сторону провайдера.
UPnP
Довольно спорная технология, которая позволяет приложениям попросить роутер пробросить порты через NAT, однако, протокол работает без всякой авторизации и контроля, этого просто нет в стандарте, и часто является точкой снижающей безопасность. Настраивайте на свое усмотрение:
SIP Conntrack
Кроме всего прочего, стоит отключить модуль conntrack SIP, который может вызывать неадекватную работу VoIP, большинство современных SIP клиентов и серверов отлично обходятся без его помощи, а SIP TLS делает его окончательно бесполезным.
Динамические и вложенные списки интерфейсов
Эта функция появилась совсем недавно (с версии 6.41), и она очень удобная. Однако, есть неприятный баг (я о нём сообщил, но его еще не исправили), суть в том, что после презапуска роутера, правила файрволла, которые используют эти списки, не работают для интерфейсов входящих в дочернии списки. Лечится передобавлением дочерних списков. Автоматизация простая:
В Sheduler на событие start пишем скрипт (списки интерфейсов для конфигурации с балансировкой):
/interface list
set ISP1TUN include=""
set ISP include=""
set TUN include=""
:delay 2
set ISP1TUN include=ISP1,TUN1
set ISP include=ISP1
set TUN include=TUN1
WiFi
В городской среде, когда эфир крайне зашумлен, имеет смысл отказаться от каналов в 40MGhz, это увеличивает удельную мощность сигнала на канале, так как 40MGHz канал по сути, это два канала по 20MGHz.
Bridge & ARP
Если у вас роутер раздает интернет и дает клиентам настройки по DHCP, имеет смысл установить настройку arp=reply-only, а в DHCP Server включить add-arp=yes
Такая настройка помешает выставить IP адрес вручную, так как роутер согласится работать только с той парой MAC-IP, которую выдавал сам.
Прочее
Для корпоративного применения рекомендую заводить списки интерфейсов и адресов, которые олицетворяют зоны доступа. Тогда, создав такие списки, вы сможете настроить правила прохождения трафика из одной зоны в другую, а так-же легко изменять состав зон. Вообще, чаще используйте списки, а не сами интерфейсы, это облегчит перенос конфигурации.