Tutorial
Блокировка трафика по стране на MikroTik
Блокируйте трафик в выбранные страны и из них на роутерах MikroTik с помощью списков IPDeny и одного правила firewall drop.
Краткое содержание В MikroTik RouterOS нет встроенной кнопки «блокировать страну X», но географическую блокировку можно реализовать чисто и аккуратно с помощью зональных файлов IPDeny, Address List и одного правила firewall filter. Это руководство проводит через четыре шага: скачать список блоков страны, отформатировать его для RouterOS, импортировать через терминал Winbox и создать правило drop. Результат блокирует весь трафик в выбранную страну (или из неё) одним правилом и легко обновляется при изменении распределения IP.
Как заблокировать трафик страны на MikroTik?
Чтобы заблокировать трафик в конкретную страну на MikroTik, нужно собрать список адресов со всеми IP-блоками, выделенными этой стране, и добавить в firewall правило drop, которое сверяется со списком. RouterOS не предлагает кнопку «Блокировать страну X», но связка Address Lists и Firewall Filters даёт ту же функциональность одним правилом drop и списком, который вы обновляете раз в квартал.
Ключевая часть — источник данных. IPDeny публикует агрегированные зональные файлы по странам, обновляемые регулярно и бесплатно, поэтому вам не нужно поддерживать распределения IP самостоятельно. Рабочий процесс такой: скачать зональный файл, вставить его в таблицу, которая добавляет к каждой строке префикс команды RouterOS, вставить полученные команды в терминал роутера и добавить одно правило firewall filter, которое отбрасывает всё совпадающее со списком. Весь процесс занимает примерно пятнадцать минут на страну после первого раза.
Шаг 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 иначе блокируют прямое управление.