Начало работы с MikroTik

После покупки нового устройства от MikroTik необходимо позаботиться о безопасности как сети так и самого аппаратного решения. Начнем с того, что ознакомимся с тем, какая конфигурация будет применена в том или ином случае:

default
(из коробки)
blank
(при полном сбросе устройства)
пользователь admin без пароля пользователь admin без пароля
Neighbor Discovery выключен на ether1 Neighbor Discovery на всех интерфейсах
MAC-server выключен на ether1 MAC-server на всех интерфейсах
Firewall запрещает подключения с ether1 Firewall выключен

Default конфигурация имеет данные настройки в связи с тем, что как правило, интерфейс ether1 смотрит в сеть провайдера (WAN). Поэтому первым делом необходимо должным образом настроить правила в firewall.

Firewall это безопасность как маршрутизатора так и сети. Существует 2 политики безопасности:

  • общедозволительная — разрешено все, что не запрещено
  • разрешительная — все, что не разрешено, запрещено

Так же для понимания механизмов защиты необходимо различать типы трафика:

  • input — трафик к устройству (разрешительный)
  • forward — проходящий трафик (общедозволительный)
  • output — трафик генерируемый устройством

Рассмотрим пример проброса порта из сети WAN в локальную сеть на адрес 192.168.88.100:

/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 \
action=dst-nat to-address=192.168.88.100

Так как данный пакет будет являться forward-пакетом, описываться он должен в секции forward. Данное правило будет перенаправлять все пакеты 80-го порта на ip-адрес 192.168.88.100.

Оперируя правилами в firewall можно реализовать защиту от перебора паролей. Информация взята на официальном wiki портале компании MikroTik (Bruteforce login prevention). Так как правила в таблице выполняются по порядку, сверху вниз, команды в терминале будут иметь следующий вид:

/ip firewall filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \
comment="drop ssh brute forcers" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \
address-list-timeout=10d comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \
address-list-timeout=1m comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \
action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \
address-list=ssh_stage1 address-list-timeout=1m comment="" disabled=no

А теперь рассмотрим подробнее. Снизу вверх, последняя строчка добавляет ip-адрес клиента, который пытается подключиться по SSH, в адрес лист ssh_stage1 на 1 минуту, при подборе пароля клиент попробует подключиться вновь и если не прошла 1 минута и он остается в ssh_stage1, то он попадает в новый адрес лист ssh_stage2. как не трудно стало догадаться, при повторном подключении с ip-адресе, который находиться в ssh_stage3, клиент попадет в ssh_blacklist на 10 дней. самое главное в таком случае использовать надежный пароль или же вообще подключаться через ключ.

Очень часто требуется ограничить доступ к определенным ресурсам тем или иным пользователям сети. Рассмотрим данный вопрос на примере социальной сети «ВКонтакте». Необходимо понимать, что в большинстве случаев можно обойтись простым блокированием ip-адреса ресурса, но не в случае с данным ресурсом. Представим себе наиболее легкий приходящий на ум способ:

/ip firewall filter add chain=forward protocol=tcp \
src-address=192.168.88.100/24 dst-address=87.240.143.244 \
action=drop

В данном случае стоит вспомнить о масштабах vk.com и о том, что список ip-адресов привязанных к этому домену имеет вполне внушительный список. Поэтому это не решение проблемы. Поступим иначе:

/ip firewall filter add chain=forward protocol=tcp \
src-address=192.168.88.100/24 content="vk.com" \
action=drop

При данном правиле доступ к ресурсу vk.com блокируется, но появляется проблема с отображением API элементов на сторонних сайтах (виджеты, блоки комментариев и прочее), поэтому немного его изменим:

/ip firewall filter add chain=forward protocol=tcp \
src-address=192.168.88.100/24 content="Host:vk.com" \
action=drop

После применения данного правила все заработает именно так как надо, но в данном правиле есть небольшое упущение, а именно это долгий timeout. Все дело в том, что нами был использован action=drop. Данный action ничего не сообщает отправителю, а просто «прибивает» пакет. Разумеется такой вариант подразумевает разрыв соединения спустя определенный промежуток времени (как раз timeout). Поэтому целесообразнее использовать action=reject, который после сброса соединения сразу же сообщает об этом отправителю. Отредактируем правило:

/ip firewall filter add chain=forward protocol=tcp \
src-address=192.168.88.100/24 content="Host:vk.com" \
action=reject reject-with=tcp-reset

Немаловажным фактором безопасности устройства и сети в целом является учетная запись пользователя с правами группы «full».

По умолчанию это пользователь admin без пароля. Так же зададим ip-адреса с которых будет возможно подключение, это не обязательная настройка, но так спокойнее. В терминале данная команда будет выглядеть следующим образом:

/user add address=192.168.88.1/24,192.168.88.2/24,34.253.65.12/24 \
group=full name=username password=password

После данной команды учетную запись admin можно удалить либо отключить.
Так же не стоит забывать о группах пользователей. Конечно если администратор сети один, то никаких проблем возникнуть не должно, но гораздо проще в дальнейшем включить неактивные группы, чем случайно дать права не тому пользователю.

В настройке политики группы «read» по умолчанию включены параметры reboot и sensitive. Если не отключить данные политики, пользователи из этой группы смогут перезагрузить устройство или же просмотреть все пароли в системе, кроме паролей системных пользователей без ведома администратора.

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

ip-service-list

Отдельно стоит сказать о Neighbor Discovery и MAC-server. Необходимо проверить и отключить данные настройки на WAN и неиспользуемых LAN интерфейсах.

На этом данная статья заканчивается, пока администратор не приобретет новых знаний, которыми сможет поделиться с вами.