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-блоки по країнах, оновлювані за регулярним графіком.
- Відкрийте ipdeny.com і перейдіть до розділу IP Country Blocks.
- Знайдіть країну, яку хочете заблокувати.
- Завантажте зональний файл — зазвичай це
.txtз одним CIDR-блоком на рядок (наприклад,1.2.3.0/24).
Розподіли IP з часом змінюються, бо оператори передають блоки між регіонами. Плануйте оновлювати список щокварталу, щоб не блокувати нові легітимні IP і не пропускати перепризначені.
Крок 2: Сформатувати дані для RouterOS
Зональний файл містить лише сирі CIDR; роутер очікує, що кожен рядок буде повною командою RouterOS. Таблиця акуратно вирішує форматування:
- Відкрийте Excel, Google Sheets або LibreOffice Calc.
- У стовпчик B вставте список CIDR з зонального файлу.
- У стовпчик A введіть префікс команди для кожного рядка:
/ip firewall address-list add list=BlockedCountry address= - У стовпчику C використайте формулу конкатенації:
=A1 & B1 - Протягніть формулу вниз по всіх рядках.
Стовпчик C тепер містить повний список команд RouterOS — по одній на CIDR-блок, готових до вставки в роутер.
Крок 3: Імпортувати список адрес
- Скопіюйте згенеровані команди зі стовпчика C.
- Відкрийте Winbox і підключіться до роутера MikroTik.
- Відкрийте вікно New Terminal.
- Вставте команди. Для великого зонального файлу вставка може оброблятися кілька секунд — дайте їй завершитися.
Перевірте імпорт, відкривши IP → Firewall → Address Lists. Ви повинні побачити тисячі записів під ім’ям списку (BlockedCountry). Якщо кількість значно менша за кількість рядків зонального файлу, перевірте проблеми форматування таблиці — зайві пробіли або відсутні префікси викликають мовчазні збої під час вставки.
Крок 4: Створити drop-правило у firewall
Тепер скажіть роутеру, що робити з трафіком, який збігається зі списком.
- Перейдіть у
IP → Firewall → Filter Rules. - Натисніть
+, щоб створити нове правило.
Вкладка General:
- Chain:
forward(трафік, що проходить через роутер, з LAN в інтернет) - In. Interface: міст або інтерфейс LAN
Вкладка Advanced:
- Dst. Address List:
BlockedCountry
Вкладка Action:
- Action:
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 на боці клієнта інакше блокували б пряме керування.