Настройка Firewall на домашнем MikroTik-е?

Озадачился безопасностью домашнего роутера. Увы, я могу не знать каких-то тонкостей, поэтому прошу помощи и советов касательно настройки. Экспорт из firewall-а:
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=\
    established,related
add chain=forward connection-state=established,related
add chain=input connection-state=established,related in-interface=\
    ether1-gateway
add action=reject chain=input connection-state=new in-interface=ether1-gateway
add action=drop chain=input connection-state=invalid in-interface=\
    ether1-gateway
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-gateway

При этом доступ к роутеру есть только через Winbox (планирую закрыть) и SSH (по ключу) с внутренних IP:
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh address=192.168.0.0/26,192.168.56.0/24
set api disabled=yes
set winbox address=192.168.0.0/26,192.168.56.0/24
set api-ssl disabled=yes

Цель - максимальная скорость и чтобы в мою сеть никто извне не пролез. Есть какие-то замечания?
  • Вопрос задан
  • 4895 просмотров
Решения вопроса 3
vasilevkirill
@vasilevkirill
Сертифицированный тренер MikroTik TR0417
как обычно жесть в ответах, а теперь по существу, а именно по вашему конфигу
add action=fasttrack-connection chain=forward connection-state=established,related
add chain=forward connection-state=established,related

Если не уверенны, то лучше цепочку forward в фильтре не трогать, темболее что у вас скорее всего forward это только трафик попадающий под NAT
Отключите эти правила
add chain=input connection-state=established,related in-interface=ether1-gateway

Здесь всё правильно, весь трафик который будет попадать под следующие правила будет connection-state=new
Оставляем как есть

add action=reject chain=input connection-state=new in-interface=ether1-gateway

Указывая reject вы злоумышленнику даёте явно понять, что порты закрыты, reject лучше всего делать на внутреннюю сеть или в сторону партнёров, но точно не для трафика в сторону интернета!
Замените на drop
Читай пояснения для вышестоящего правила, убери connection-state=new, так на данном месте фаервола только и будет new
add action=drop chain=input connection-state=invalid in-interface=ether1-gateway

Данное правило, должно быть самым первым так как, это невалидный трафик, смысл напрягаться фильтру, если мы заранее знаем что этот трафик не нужен.
Переместить правило на самый верх
При таком настроенном фильтре, микротик находится в самом защищённом режиме.
если вам необходимо открыть порт для доступа к микротику, то вы создаёте правило над последним правилом.
Если вы будете открывать ssh к микротику, то прочитайте эту статью wiki.mikrotik.com/wiki/Bruteforce_login_prevention

Всё остальное, такие как /ip service - это всё от лукавого, в любой момент времени может получится так что вам потребуется доступ к по ssh из самого не предсказуемого места.
если уж хотите вообще не открывать всем порты, то читаем про port Knocking тут wiki.mikrotik.com/wiki/Port_Knocking
Ответ написан
@paxlo
Даем несловарное имя пользователя и пароль посложнее:
/user set 0 name=duvdifjavmyldat2 password="MekGoshliep&os9Grydbewsh~"

Отключаем у ssh устаревшую криптографию
/ip ssh set strong-crypto=yes

Отключаем все не-Ъ способы управления (включая винбокс) кроме ssh , они для мышковозов не осиливших быструю, безопасную и удобную cli. SSH переносим на нестандартный порт .
/ip service
disable [find where name!=ssh]
set ssh port=44531


Отключаем доступ по MACу - то еще решето (без этого роутер будет продолжать определяться в винбоксе).
/tool mac-server set disabled=yes [find]
/tool mac-server mac-winbox set disabled=yes [find]
/tool mac-server ping set enabled=no


Если не используем кошкины дискавери типа CDP, то обнаружение соседей тоже лучше отключить.
/ip neighbor discovery set discover=no [find]

Генерим ключ пожирнее.
ssh-keygen -t rsa -b 4096 -N '' -C '' -f routerkey
Если нужен пароль, то -N '' убрать. Лично я использую доступ по ключам без пароля для целей автоматизации через pssh управляяя большим кол-вом маршрутизаторов.

Запихиваем routerkey.pub в роутер и импортим.
/user ssh-keys import user=duvdifjavmyldat2 public-key-file=routerkey.pub


Если усиливать паранойю еще больше, то настраивайте port-knocking (порт на управление открывается после того как вы постучитесь в определенной последовательности, определенное кол-во раз в заданные левые порты). Здесь написано как предотвратить ssh брутофорс.

Если настроена вафля то конечно же сделайте на минимум tx-power и в /interface wireless access-list добавьте вручную маки ваших девайсов , и задав им signal-range такой, чтобы только близкие девайсы подрубались но не сосед за стенкой.

Это то что пришло во голову сходу, а вообще тема бесконечная.
Ответ написан
@HeroFromEarth Автор вопроса
Всем огромное спасибо за ответы!
Что получилось в итоге (некоторая часть уже имелась, но может понадобиться для тех, кто будет искать здесь ответы на свои вопросы):
1. Логин - несловарная фамилия и 16-значный пароль.
2. Отключена устаревшая криптография для SSH.
3. Отключены все сервисы, кроме SSH, он разрешён только из внутренней сети. Доступ извне мне абсолютно точно не понадобится (если у Вас обратная ситуация - не делайте так :) ).
4. MAC-server Telnet выключен, для Winbox-а только локальные интерфейсы.
5. Для доступа по SSH сгенерировал ключ RSA-2048 (думаю, этого достаточно) без пароля.
6. На Wi-Fi стоит сложный и длинный пароль, который брутфорсом придётся ну очень долго подбирать. Все подключаемые устройства - известные, изредка проверяю.
7. Подправил Firewall. Кирилл, отдельное спасибо за развёрнутый ответ с комментариями!

Port Knocking настраивать не стал, но благодарю за информацию. Я не знал о его существовании, а на работе такая штука может быть очень полезной для безопасности.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Diman89
@Diman89
Можно проще сделать: поднять на тике VPN-сервер, и разрешить доступ на тик только из внутренней сети и клиентам vpn. Но нужен белый ip, в случае динамики есть ip cloud
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы