Перейти до вмісту
InstagramYouTubeFacebook

Tutorial

Блокування трафіку за країною на MikroTik

Блокуйте трафік до або з певних країн на роутерах MikroTik за допомогою списків IPDeny та однієї firewall drop-правила.

Короткий огляд MikroTik RouterOS не має вбудованого перемикача «заблокувати країну X», але географічне блокування можна реалізувати охайно — за допомогою зональних файлів IPDeny, Address List і однієї фільтрової firewall-правила. Цей посібник проводить через чотири кроки: завантажити список блоків країни, відформатувати його під RouterOS, імпортувати через термінал Winbox і створити drop-правило. У результаті один правило блокує весь трафік до (або з) обраної країни і легко оновлюється, коли розподіли IP змінюються.

Як заблокувати трафік країни на MikroTik?

Щоб заблокувати трафік до конкретної країни на MikroTik, потрібно зібрати список адрес з усіма IP-блоками, виділеними цій країні, і додати у firewall drop-правило, що звіряється зі списком. RouterOS не має кнопки «Заблокувати країну X», але зв’язка Address Lists і Firewall Filters відтворює ту саму функціональність — одним drop-правилом і списком, який ви оновлюєте щокварталу.

Ключовим є джерело даних. IPDeny публікує агреговані зональні файли по країнах, регулярно оновлювані й безкоштовні, тож вам не доведеться підтримувати розподіли IP самостійно. Робочий процес такий: завантажити зональний файл, вставити його в таблицю, що додає до кожного рядка префікс RouterOS-команди, вставити отримані команди в термінал роутера, а потім додати одне firewall-правило фільтрації, що відкидає все, що збігається зі списком. Уся процедура займає близько п’ятнадцяти хвилин на країну після першого разу.

Крок 1: Отримати блоки IP з IPDeny

Зональні файли IPDeny — це агреговані CIDR-блоки по країнах, оновлювані за регулярним графіком.

  1. Відкрийте ipdeny.com і перейдіть до розділу IP Country Blocks.
  2. Знайдіть країну, яку хочете заблокувати.
  3. Завантажте зональний файл — зазвичай це .txt з одним CIDR-блоком на рядок (наприклад, 1.2.3.0/24).

Розподіли IP з часом змінюються, бо оператори передають блоки між регіонами. Плануйте оновлювати список щокварталу, щоб не блокувати нові легітимні IP і не пропускати перепризначені.

Сторінка блоків IP за країнами IPDeny з файлами зон для завантаження

Крок 2: Сформатувати дані для RouterOS

Зональний файл містить лише сирі CIDR; роутер очікує, що кожен рядок буде повною командою RouterOS. Таблиця акуратно вирішує форматування:

  1. Відкрийте Excel, Google Sheets або LibreOffice Calc.
  2. У стовпчик B вставте список CIDR з зонального файлу.
  3. У стовпчик A введіть префікс команди для кожного рядка: /ip firewall address-list add list=BlockedCountry address=
  4. У стовпчику C використайте формулу конкатенації: =A1 & B1
  5. Протягніть формулу вниз по всіх рядках.

Стовпчик C тепер містить повний список команд RouterOS — по одній на CIDR-блок, готових до вставки в роутер.

Таблиця генерує команди address-list RouterOS із зональних даних IPDeny

Крок 3: Імпортувати список адрес

  1. Скопіюйте згенеровані команди зі стовпчика C.
  2. Відкрийте Winbox і підключіться до роутера MikroTik.
  3. Відкрийте вікно New Terminal.
  4. Вставте команди. Для великого зонального файлу вставка може оброблятися кілька секунд — дайте їй завершитися.

Перевірте імпорт, відкривши IP → Firewall → Address Lists. Ви повинні побачити тисячі записів під ім’ям списку (BlockedCountry). Якщо кількість значно менша за кількість рядків зонального файлу, перевірте проблеми форматування таблиці — зайві пробіли або відсутні префікси викликають мовчазні збої під час вставки.

Крок 4: Створити drop-правило у firewall

Тепер скажіть роутеру, що робити з трафіком, який збігається зі списком.

  1. Перейдіть у IP → Firewall → Filter Rules.
  2. Натисніть +, щоб створити нове правило.
Панель Filter Rules firewall MikroTik Winbox з кнопкою додавання правила

Вкладка General:

  • Chain: forward (трафік, що проходить через роутер, з LAN в інтернет)
  • In. Interface: міст або інтерфейс LAN
Вкладка General firewall-правила з chain forward та обраним інтерфейсом LAN

Вкладка Advanced:

  • Dst. Address List: BlockedCountry

Вкладка Action:

  • Action: drop
Вкладка Action firewall-правила з дією drop

Натисніть OK. Підніміть правило вгору списку фільтрів firewall — зазвичай близько до початку chain forward, — щоб воно оброблялося раніше за будь-які правила accept all, які інакше перехопили б трафік.

Щоб заблокувати ще й трафік з цієї країни, створіть друге правило з Chain: input (для трафіку, спрямованого до самого роутера) або Chain: forward (для трафіку, спрямованого до вашої LAN) і задайте Src. Address List як BlockedCountry. Разом ці два правила забезпечують повне двостороннє географічне блокування.

Для додаткових засобів firewall і контролю доступу подивіться наші посібники з налаштування NAT на MikroTik і з блокування DNS через AdList на MikroTik.

Поради

  • Використовуйте різні імена address-list для кожної країни (BlockedCountry_CN, BlockedCountry_RU), коли блокуєте кілька регіонів. Це значно спрощує подальший аудит набору правил.
  • Заплануйте квартальний скрипт, який перезавантажує зональні файли та оновлює список адрес. Набори правил «налаштував і забув» швидко застарівають з кожною зміною розподілів.
  • Логуйте відкинутий трафік у firewall-правилі (на вкладці Action увімкніть log з префіксом) перший тиждень. Обсяг покаже, чи політика робить корисну роботу, чи мовчки нічого не блокує.

Зробіть наступний крок

Підтримувати списки блокування за країнами на одному MikroTik цілком реально — з таблицею та квартальним нагадуванням у календарі. Підтримувати їх на десятках чи сотнях роутерів — кожен можливо з трохи різними політиками країн для різних клієнтів — це момент, коли ручний підхід ламається.

MKController розсилає однакові address lists і firewall-правила на кожен роутер вашого парку, централізовано оновлює дані IPDeny та показує розбіжності між шаблонами політик і тим, що насправді на кожному пристрої. NATCloud вирішує задачу віддаленого доступу, коли CGNAT або жорсткі firewall на боці клієнта інакше блокували б пряме керування.

Розпочніть безкоштовний тестовий період MKController