... {toc} В соответствии с рекомендациями Роскомнадзора часть ресурсов необходимо блокировать полностью, по всем портам и протоколам по IP адресу. Варианты решения этой задачи перечислены ниже. {info} Данная интеграция подразумевает анонсирование *с Редуктора* маршрутной информации о том, что нужно заблокировать (согласно списка ip на "полный" блок по всем портам и протоколам)
|
{info}
|
h21. Получение разницы между адресами
|
Важно: все операции выполняются в *chroot /app/reductor*
|
... # Откройте и изучите пример хука для интеграции с Linux маршрутизаторами, использующими ipset: {code} chroot /app/reductor less /usr/local/Reductor/contrib/examples/events.sh_template {code} # По аналогии с уже имеющимся там примером, отредактируйте в нём три функции: ## ip_block_full_add - получает аргументом $1 IP адрес, который необходимо полностью заблокировать и отправляет на маршрутизатор команду на добавление в список заблокированных ## ip_block_full_del - получает аргументом $1 IP адрес, который необходимо разблокировать и отправляет на маршрутизатор команду на удаление из списка заблокированных ## ip_block_full_get - получает с маршрутизатора список заблокированных IP адресов (1 строка - 1 IP адрес) # Скопируйте хук командой: {code} cp -a /usr/local/Reductor/contrib/examples/events.sh_template /cfg/userinfo/hooks/events.sh {code} # Проверьте его работу при ручном запуске: {code} /usr/local/Reductor/bin/events.sh {code}
|
# Проверьте, что он работает из cron: очистите список на маршрутизаторе и подождите 1 час (запускается по cron в 10 минут каждого часа)
|
h21. Получение списка целиком
|
Сам список IP адресов которые необходимо заблокировать находится тут:
|
... {code} /var/lib/reductor/lists/load/ip_block.load {code} Вы можете использовать его по собственному усмотрению. h1. Тестирование. {info}Первый запуск рекомендуется выполнить вручную, чтобы избежать множества ошибок при автоматическом выполнении. Обязательно выполните добавление маршрутизатора в know_hosts. The authenticity of host '10.90.1.1' (10.90.1.1')' can't be established. RSA key fingerprint is 12:3b:d5:55:bd:37:4f:44:b3:61:56:2c:05:a0:ad:90. Are you sure you want to continue connecting (yes/no)? yes {info} # Запускаем /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 на оборудовании, он должен постепенно наполняться. h2. Использование BGP Здесь перечислены все имеющиеся схемы на текущий момент: [https://github.com/carbonsoft/reductor_bgp_rtbh] Как альтернативу вы можете использовать: [https://github.com/forestmonster/quaggablocker|https://github.com/forestmonster/quaggablocker] но мы пока не тестировали его. h2. Анонсирование списка подсетей Чтобы не создавать лишнюю нагрузку на ваши маршрутизаторы при анонсировании списка заблокированных IP адресов существует возможность анонсировать этот список в виде подсетей, что значительно снизит количество правил блокировки на вашем маршрутизаторе. Сделать это можно с помощью опции меню \-> Reductor \-> Настройка алгоритма фильтрации \-> !ip_subnets.png|border=1! h2. Redback SE 100 [https://github.com/carbonsoft/reductor_bgp_rtbh/tree/master/se100]
|