Привет, https://blocklister.gefoo.org Blocklister — это простой API для генерации addresslists, совместимых с MikroTik RouterOS. IP-адреса в этих списках регулярно обновляются с помощью источников, таких как iblocklist.com, dshield.org и других. Импорт полученных скриптов в ваши маршрутизаторы выполняется с помощью простого скрипта, который затем можно запланировать на выполнение, например, каждые несколько дней. Нет необходимости вручную очищать ваши addresslists, так как итоговые скрипты содержат очистку на основе комментариев в addresslists, просто будьте аккуратны и не меняйте комментарии "на ходу". Имя и комментарий получаемых скриптов addresslists можно настроить с помощью параметров запроса. Эта идея во многом вдохновлена http://joshaven.com/resources/tricks/mikrotik-automatically-updated-address-list/. Обратите внимание: с каждого IP-адреса источника разрешено не более 10 запросов в день!
Пример использования Ниже приведён упрощённый пример вывода. Тип содержимого каждого ответа — plain/text. В этом примере я настраиваю имя addresslist на «foo» и комментарий на «bar». $ curl https://blocklister.gefoo.org/ads?listname=foo&comment=bar
Результат (обратите внимание, что здесь результат сокращён, а IP-адреса заменены на фиктивные): foreach i in=[/ip firewall address-list find ] do={ :if ( [/ip firewall address-list get $i comment] = "bar") do={ /ip firewall address-list remove $i } }
# Теперь добавим новые /ip firewall address-list add address="1.1.1.1-1.1.1.255" list="foo" comment="bar" add address="2.2.2.1-2.2.2.10" list="foo" comment="bar"
Как видите, итоговый скрипт сначала очищает ваш список адресов, удаляя всё, что имеет комментарий «bar».
Пример скрипта RouterOS Для автоматической загрузки и импорта addresslists на ваш роутер можно использовать подобный скрипт. Аналогичный скрипт можно найти в документации API https://blocklister.gefoo.org.
Параметры запроса С помощью этих параметров запроса вы можете настроить имя и комментарий, которые будут использованы для создания addresslist на вашем роутере. listname — Имя создаваемого addresslist comment — Комментарий, который будет использоваться для этого списка (Пожалуйста, убедитесь, что этот комментарий уникален среди ваших addresslists)
ВНИМАНИЕ Используйте с осторожностью, чтобы не удалить все элементы ваших addresslists. Будьте аккуратны с большими списками, такими как Level1 и Badpeers, они очень объёмные и могут привести к сбою роутера.
Предложения Буду рад любым предложениям. Если у вас есть другие IP-листы, которые вы хотели бы добавить, дайте знать.
Мне нужно это контролировать. Хочу отметить общее обновление по этому поводу: я вполне готов сейчас выложить проект на GitHub, чтобы вы могли открыть по этому поводу issue.
Привет, можно ли разделить список level1? Другие списки работают нормально. Я пытался применить этот список, но роутер вырубается. Память заканчивается. У меня rb2011. Всем привет.
Это можно сделать, и мне пришла в голову идея ввести какую-то пагинацию. Идея в том, что вы должны будете указать page_nr и page_size в вашем запросе. В итоге вы бы писали http://blocklister.domain.com/level1?page=1&page_size=10 — и это возвращало бы вам первые 10 записей файрвола из списка level1. Что думаете об этой идее?
Не знаю, проблема ли в твоём скрипте, но когда я обновляю badpeers, у меня в логе появляется ошибка: script error: expected end of command (строка 47713, столбец 68). И ещё одна ошибка была однажды: script error: missing value(s) of arguments list.
Всем привет! Рад сообщить, что blocklister теперь доступен по адресу https://github.com/flazzarini/blocklister. Кроме того, я выпустил и выложил новую версию blocklister — 1.3.0. Значительных изменений нет, только улучшения в структуре кода и зависимостях. Если у вас есть какие-то пожелания, смело размещайте их на https://github.com/flazzarini/blocklister. Если найдется время, я подготовлю виртуальную машину с уже установленным blocklister, чтобы вы могли удобно развернуть его у себя дома.
Основываясь на опыте, вам стоит использовать blackhole маршруты вместо Address List. Для больших списков blackhole маршруты занимают меньше ресурсов CPU и RAM, поэтому работают гораздо эффективнее и подходят для более слабого железа. Единственное, что теряется — это возможность считать количество “попаданий” по черным спискам через правила фаервола, так как blackhole маршруты обрабатываются гораздо раньше по ходу пакета, чем правила фаервола (отчасти поэтому они такие шустрые).
Пример blackhole маршрута: /ip route add dst-address=x.x.x.x/x type=blackhole comment=“blacklist”
Пример удаления черного списка перед импортом нового: /ip route remove [find comment=“blacklist”]
Все это также можно сделать с помощью BGP маршрутов — тогда можно динамически добавлять или удалять отдельные записи, не очищая и не импортируя весь список целиком каждый раз.
Исходя из опыта, лучше использовать blackhole-маршруты вместо Address List. Для больших списков blackhole-маршруты требуют меньше ресурсов CPU и RAM, поэтому работают гораздо эффективнее, даже на более слабом железе. Единственный минус — вы теряете возможность считать количество «попаданий» по чёрным спискам через правила файрвола, поскольку blackhole-маршруты обрабатываются намного раньше в потоке пакетов, чем правила файрвола (часть причины их эффективности). Спасибо @Zebble за подсказку. Мы можем добавить новую функцию в blocklister, где можно будет выбирать между addresslist и blackholing. Пока не уверен, как будет выглядеть маршрут в API, но это может быть что-то простое вроде http://domain.com/ads?render_as=blackhole. Напишите, что думаете. Возможно, стоит тоже создать issue на https://github.com/flazzarini/blocklister/issues.