Я знаю, что эти скрипты уже созданы и обновлены, но я их найти не могу. Мне нужны скрипты для добавления фильтров по вредоносному ПО и IP-адресам, которые считаются недействительными, на мои роутеры, и я их тоже не могу найти.
cmit
Guest
0
19.12.2005 08:14:00
По поводу части вопроса про богонов: Я однажды написал небольшой скрипт на PERL для создания файла команд RouterOS. Он создавал цепочку брандмауэра "bogons", содержащую правила для отбрасывания пакетов от богонов. Прилагаю скрипт. Он написан для Windows (на Linux подкорректируйте строку she-bang для интерпретатора PERL). Он получает актуальный список богонов с и выводит несколько файлов. Каждый из них полный, разница только в количестве сетей, указанных в цепочке. Есть файл с результатом, включающий только сети /20 и больше, один для /19 и больше и так далее. До одного, включающего все перечисленные богоны, что создает около 7400 правил сегодня. Возьмите один (!) из созданных скриптов (в зависимости от того, насколько большой должна быть ваша цепочка фильтрации), загрузите его на ваш роутер (FTP/SCP) и выполните его как скрипт там. Это удалит любую существующую цепочку с именем «bogons», воссоздаст ее как пустую и заполнит правила… Будьте внимательны, что это всё еще генерирует 2.8 RouterOS синтаксис, если найду время, обновлю его и помещу в WiKi. #!c:/perl/bin/perl.exe
# Получаем список BOGON с и сохраняем его локально… $BOGON = get 'http://www.completewhois.com/bogons/data/bogons-cidr-all.txt'; open(BOGON,">bogons.dat"); print BOGON $BOGON; close(BOGON);
if (-s "bogons.dat") { # успешно получен список BOGON - давайте продолжим… open(BOGON,"bogons.dat"); open(SCRIPT_ALL,">bogons-routeros-chain_all.rsc"); open(SCRIPT_16,">bogons-routeros-chain_16up.rsc"); open(SCRIPT_17,">bogons-routeros-chain_17up.rsc"); open(SCRIPT_18,">bogons-routeros-chain_18up.rsc"); open(SCRIPT_19,">bogons-routeros-chain_19up.rsc"); open(SCRIPT_20,">bogons-routeros-chain_20up.rsc"); # начальные команды RouterOS для удаления цепочки "bogons" (если существует) и повторного создания ее (пустой) print SCRIPT_ALL $ros_cmd_recreate_chain; print SCRIPT_16 $ros_cmd_recreate_chain; print SCRIPT_17 $ros_cmd_recreate_chain; print SCRIPT_18 $ros_cmd_recreate_chain; print SCRIPT_19 $ros_cmd_recreate_chain; print SCRIPT_20 $ros_cmd_recreate_chain; while ($netaddress = <BOGON>) { chomp($netaddress); if ($netaddress =~ /^[0-9]+.*\/([0-9]+)$/) { # строка с netaddress - иначе это был комментарий или пустая строка print SCRIPT_ALL "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n"; print SCRIPT_16 "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n" if ($1 <= 16); print SCRIPT_17 "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n" if ($1 <= 17); print SCRIPT_18 "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n" if ($1 <= 18); print SCRIPT_19 "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n" if ($1 <= 19); print SCRIPT_20 "add src-address=$netaddress out-interface=all action=drop comment=\"\" disabled=no\n" if ($1 <= 20); } } # финальная команда RouterOS для возврата из цепочки bogons print SCRIPT_ALL $ros_cmd_jump_back; print SCRIPT_16 $ros_cmd_jump_back; print SCRIPT_17 $ros_cmd_jump_back; print SCRIPT_18 $ros_cmd_jump_back; print SCRIPT_19 $ros_cmd_jump_back; print SCRIPT_20 $ros_cmd_jump_back;
close(SCRIPT_ALL); close(SCRIPT_16); close(SCRIPT_17); close(SCRIPT_18); close(SCRIPT_19); close(SCRIPT_20); close(BOGON); unlink "bogons.dat"; } Если кому-то это нужно, это также доступно в виде автономного исполняемого файла для Windows (для тех, у кого не установлен PERL). С наилучшими пожеланиями, Christian Meis
cmit
Guest
0
19.12.2005 10:32:00
Да, и для тех, кто не знает, что такое "bogon": это термин, описывающий неиспользуемое адресное пространство в интернете. Так что трафик с исходными (или конечными) адресами из этих диапазонов не может быть легитимным и отсеивается провайдерами (к сожалению, не всеми, но многими). См. также Wikipedia.
С уважением, Christian Meis
changeip
Guest
0
19.12.2005 18:14:00
Вот перевод текста на русский язык:
Вот мой скрипт, который принимает фид богон-сетей BGP и преобразует его в список адресов: ## Создает список адресов из богонов на основе ## изученных маршрутов BGP, которые имеют конкретный routing-mark.
:log info "Удаляю все БОГОНЫ, начинаю синхронизацию." :foreach subnet in [/ip firewall address-list find list=bogons] do { /ip firewall address-list remove $subnet }
:foreach subnet in [/ip route find routing-mark=bogons] do { :set bogon [/ip route get $subnet dst-address] :log info ("Найдено " . $bogon . " как запись богона.") /ip firewall address-list add list=bogons address=$bogon }