Mikrotik настройка Firewall и QOS

Всем привет!!!

Я хотел бы поделиться своими настройками Firewall с защитой от сканирования портов и от подбора паролей, а так же настройкой QOS на примере моего mikrotik.

Схему для настройки и тестирования Mikrotik я сделал такой, а в будущем планирую купить себе настоящий Mikrotik и уже все, что сделано на виртуальном будет использоваться в реальном:

Нужно пояснить, что я хотел сделать в этой схеме. Мне нужно было настроить хотя бы один микротик так как буд-то он подключен к интернет провайдеру одним портом, а вторым подключен к моей локальной сети и именно на разных портах. Для этого в моей схеме есть два mikrotik роутера подключенных одним портом в мою локальную сеть, а другим соединены между собой, через внутреннею сеть(такая сеть в Synology VMM называется частной). Для Mikrotik-02 IP 192.168.68.123 внутренняя сеть, а IP 172.16.0.2 смотрит во внешнею сеть. Для Mikrotik-01 IP 172.16.0.1 внутренняя сеть, а IP 192.168.68.122 смотри во внешнею сеть. Таким образом мой ПК может быть одновременно и в локальной сети и во внешней. Это очень важно для дальнейших тестов.

Трафик от ПК во локальной сети приходит на Mikrotik-02 192.168.68.123 затем этот роутер натит траифк заменяя IP источника на свой внешний адрес и отправляет пакеты на Mikrotik-01. Mikrotik-01 получив пакет на адресс 172.16.0.1 от Mikrotik-02 172.16.0.2 натит трафик и заменяет IP источника на 192.168.68.122 и уже этот два раза подмененный трафик отправляет на реальный шлюз в интернете 192.168.68.1. Каждый из участников этой схемы видит один и тот же пакет, но с разными IP источника и это заставляет их думать, что это разный трафик. Это мне и нужно.

Так как настроек много и я особого смысла делать их руками не вижу, тем более что эти настройки практически универсальные, то это можно сказать такой начальный шаблон настроек. Нужно заменить в файле, перед импортом на свои значения ether1 – внешний, ether2 – внутренний (ether2 может быть и bridgeX)

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

  • Разрешить все внутри локальной сети на самый верх
  • запрещающие правила BAN_black_list и BAN-BruteForce на верх
  • убрал правило для udp 53

NAT в режиме masquerade у меня включен:

Теперь перейдем к настройке QOS.

Вся реализация управления пропускной способностью в RouterOS основана на иерархии – Hierarchical Token Bucket (HTB). HTB позволяет вам создавать иерархические структуры очередей и определять отношения между очередями. RouterOS поддерживает 3 виртуальных HTB (global-in, global-total, global-out) и еще один прямо перед каждым выходным интерфейсом.

Вы должны понимать, что вариантов настройки очень много, я выбрал такой основываясь на своим опыте работы сетевого инженера.

Таблица маркировки пакетов

На этой таблице остановлюсь по подробнее. Весь трафик который приходит на устройство попадает в эту таблицу. Логика работы такая: так как windows не маркирует трафик ни как и не выставляет в поле IP заголовков никаких маркеров приоритетов, то нашему микротику ничего не остается как маркировать трафик на основе портов в заголовках пакетов. Так же все правила состоят как минимум из двух частей. В начале мы смотрим на порт, например 80 и 443, и если у этого пакета статус соединения new то помещаем его и все последующие пакеты в Connection HTTP-connect. Затем маркируем все пакеты из HTTP-connect в Packet Mark Applications. Такие двойные правила сделаны для снижение нагрузки на процессор, что бы он мог быстрее и лучше обрабатывать большие объемы трафика.

It’s good practice to Mark the connection first then use the “connection
mark” to perform a “packet mark” (if possible / TCP ACK) (low CPU usage)

Таких Packet Mark 4 штуки, можно больше но не более 8(хотя именно тут можно сделать и больше): Controll, RealTime, Applications и последний, который не отображается это no-mark (Best Effort). В этот попадает все что не определено. Это нам понадобится дальше, когда мы будем разбираться с очередями и приоритетами.


Если вы спросите зачем так заморачиваться и делать всякие усложнение, то вот вам ответ:

MikroTik Routers and Wireless – Products: hEX S

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


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

Я промаркировал трафик для приложений:

  • WEB
  • SIP и RTP
  • Steam и Steam Remote Pley
  • DNS
  • Plex Steam
  • Synology DSM приложения
  • World of Tanks

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

Трафик промаркировали, теперь идем в очереди настраивать приоритеты

Очереди работают только на передачу! По приему мы принимаем и обрабатываем весь трафик.

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

Что я тут сделал? Для каждого интерфейса я создал основную очередь. Этой очереди можно задать общее ограничение, например мой провайдер дает мне 100Мбит\с канал, вот я на этом порту и ограничил скорость в 100М общей очереди. На других портах можно не ограничивать, так общее ограничение будет равно скорости порта. Затем к этой основной очереди порта привязал еще 4 очереди с разными приоритетами и с разными политиками распределения трафика:

  • Приоритет 1 – Controll – политика PFIFO
  • Приоритет 3 – RealTime – политика PFIFO
  • Приоритет 4 – Application – политика RED
  • Приоритет 8 – no-mark – политика RED.

У каждой очереди, кроме приоритета 8, я указал гарантированную полосу Limit AT и не гарантированную максимальную Max Limit:

Немного поясню. Существует 8 приоритетов, где 1 наивысший, а 8 наинизший. Чем выше приоритет тем быстрее он обработается. Так же очень важен тип очереди. Допустим PFIFO означает, что кто первый пришел, тот первый и ушел. Это полезно что бы не задерживался трафик, который зависит от задержек, например голос, видео или онлайн игры. RED это рандомное распределение трафик, что бы если его много все потоки трафика могли получить свою скорость. Применяется для не критичного трафика, например серфинг в интернете WEB или закачка файлов. Трафика с высоким приоритетом не должно быть много иначе он забьет весь канал и например сайты у вас не смогут открываться.

Если вы заметили, то еще существует глобальная очередь. Она нужна для трафика, который назначен для самого микротика. Такая структура прохождения трафика внутри устройства, а как вы помните маркируем мы трафик в таблице Prerouting а не Postrouting. Как вариант можно добавить маркировку для этого трафика в postrouting, но я посчитал, что лучше навешать на глобальную политику.

MikroTik настройка Firewall: Базовая защита и примеры настройки безопасности от сканирования портов и DDoS-атак (smartadm.ru)

Что бы импортировать шаблон нужно сначала загрузить его на микротик. Для этого копируем шаблон в буфер обмена и открываем Files через WinBox, затем нажимаем кнопку вставить и файл закачивается на устройство.

Затем открываем Terminal и вводим такую команду импорта

import file-name=Template.txt

Должно получиться так:

Настройки импортированы и можно проверять и изменять под свои нужды.

Вот так работает QOS в очередях. Смотрю ролик в 4К и загружаю браузером файл

Ролик в 4К не тормозит, а браузер качает чуть меньше, так как трафик для видео более приоритетный.

Максимальное скорость, которую я смог достичь при таких настройках получилось гдето 600Мбит\с. Все уперлось в процессор на самом Synology. Напомню процессор Synology на котором я тестировал Intel Celeron J4025. Это двух ядерный процессор, который загружен еще остальными задачами.

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

На этом статья закончена, желаю всем удачи и пользуйтесь Synology )))


CHR Licensing

The CHR has 4 license levels:

  • free
  • p1 perpetual-1 ($45)
  • p10 perpetual-10 ($95)
  • p-unlimited perpetual-unlimited ($250)

The 60-day free trial license is available for all paid license levels. To get the free trial license, you have to have an account on MikroTik.com as all license management is done there.

Perpetual is a lifetime license (buy once, use forever). It is possible to transfer a perpetual license to another CHR instance. A running CHR instance will indicate the time when it has to access the account server to renew its license. If the CHR instance will not be able to renew the license it will behave as if the trial period has run out and will not allow an upgrade of RouterOS to a newer version.

After licensing a running trial system, you must manually run the /system license renew function from the CHR to make it active. Otherwise, the system will not know you have licensed it in your account. If you do not do this before the system deadline time, the trial will end and you will have to do a complete fresh CHR installation, request a new trial, and then license it with the license you had obtained.

LicenseSpeed limitPrice
Free1MbitFREE
P11Gbit$45
P1010Gbit$95
P-UnlimitedUnlimited$250
Cloud Hosted Router (CHR) – RouterOS – MikroTik Documentation

В следующей статье я расскажу как обойти это ограничение.


Статьи, которыми я пользовался:

Ограничение скорости (qos) в Микротик с помощью queues (serveradmin.ru)

MikroTik настройка Firewall: Базовая защита и примеры настройки безопасности от сканирования портов и DDoS-атак (smartadm.ru)

Mikrotik Traffic control with HTB

Добавить комментарий

1 × 5 =