В соответствии с рекомендациями Роскомнадзора часть ресурсов необходимо блокировать полностью, по всем портам и протоколам по IP адресу.
Варианты решения этой задачи перечислены ниже.
Получение разницы между адресами
Можете воспользоваться встроенной в Carbon Reductor системой управления оборудованием, добавив скрипт для управления вашим маршрутизатором.
Добавление скрипта:
cp -p /usr/local/Reductor/contrib/examples/events.sh_template /usr/local/Reductor/userinfo/hooks/events.sh chmod +x /usr/local/Reductor/userinfo/hooks/events.sh
Внутри скрипта допишите функции ip_block_full_add и ip_block_full_del (в шаблоне имеются закомментированные примеры), чтобы они передавали на оборудование команду на удаление/добавление IP адреса для полной блокировки.
Пример хука для абстрактного маршрутизатора в вакууме:
#!/bin/bash # отправить на оборудование команду на блокирование ip адреса ip_block_full_add() { local ip="$1" # ssh -T admin@$border /firewall list add blocked $ip } # отправить на оборудование команду на снятие блокировки ip адреса ip_block_full_del() { local ip="$1" # ssh -T admin@$border /firewall list del blocked $ip }
Проверить, что скрипт работает можно дописав в файл новый ip адрес и вызвав команду:
echo 169.255.255.100 > /usr/local/Reductor/lists/ip_http.load /usr/local/Reductor/bin/events.sh
А затем проверить что данная запись появилась на оборудовании (аналогично проверить удаление).
Получение списка целиком
Сам список IP адресов которые необходимо заблокировать находится тут:
/usr/local/Reductor/lists/ip_http.load
Вы можете использовать его по собственному усмотрению.
TODO Использование BGP
Можно анонсировать список IP адресов, которые необходимо заблокировать на маршрутизаторе.
По сути это генерация конфига bgpd и его последующее применение:
service bgpd reload
Как альтернативный вариант, можете настроить по собственному усмотрению любую реализацию Remote Triggered Blackhole, например: https://github.com/forestmonster/quaggablocker