В соответствии с рекомендациями Роскомнадзора часть ресурсов необходимо блокировать полностью, по всем портам и протоколам по IP адресу.
Варианты решения этой задачи перечислены ниже.
Получение разницы между адресами
- Откройте и изучите пример хука для интеграции с Linux маршрутизаторами, использующими ipset:
less /usr/local/Reductor/contrib/examples/events.sh_template
- По аналогии с уже имеющимся там примером, отредактируйте в нём три функции:
- ip_block_full_add - получает аргументом $1 IP адрес, который необходимо полностью заблокировать и отправляет на маршрутизатор команду на добавление в список заблокированных
- ip_block_full_del - получает аргументом $1 IP адрес, который необходимо разблокировать и отправляет на маршрутизатор команду на удаление из списка заблокированных
- ip_block_full_get - получает с маршрутизатора список заблокированных IP адресов (1 строка - 1 IP адрес)
- Скопируйте хук командой:
cp -a /usr/local/Reductor/contrib/examples/events.sh_template /usr/local/Reductor/userinfo/hooks/events.sh
- Проверьте его работу при ручном запуске:
/usr/local/Reductor/bin/events.sh
- Проверьте, что он работает из cron: очистите список на маршрутизаторе и подождите 1 час (запускается по cron в 10 минут каждого часа)
Получение списка целиком
Сам список IP адресов которые необходимо заблокировать находится тут:
/usr/local/Reductor/lists/ip_block.load
Вы можете использовать его по собственному усмотрению.
Тестирование.
- Запускаем /usr/local/Reductor/bin/events.sh вручную.
- При первом запуске должно произойти много событий ip_block_full_add.
- При повторном запуске ни одного события произойти не должно.
- Если много событий происходят при повторных запусках, необходимо:
- Проверять функцию получения списка IP - ip_block_full_get
- Проверять функцию отправки IP для блокировки на оборудование - ip_block_full_add.
- Полезным будет запуск в режиме трасировки: bash -x /usr/local/Reductor/bin/events.sh
- Тестируем автоматический запуск по crond.
- Разблокируйте все ресурсы на оборудовании вручную
- Дождитесь запуска events.sh по cron. grep events.sh /etc/cron.d/reductor чтобы узнать когда он запускается
- Наблюдайте за лог-файлом: tail -f /var/log/reductor/reductor.log
- Наблюдайте за списком блокируемых IP на оборудовании, он должен постепенно наполняться.
Использование BGP
Здесь перечислены все имеющиеся схемы на текущий момент:
https://github.com/carbonsoft/reductor_bgp_rtbh
Как альтернативу вы можете использовать: https://github.com/forestmonster/quaggablocker но мы пока не тестировали его.
Redback SE 100
https://github.com/carbonsoft/reductor_bgp_rtbh/tree/master/se100