Интеграция с маршрутизаторами (events.sh)

по сравнению с
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (9)

просмотр истории страницы


h1. BGP

h1. Получение разницы между адресами

Добавление скрипта:
# Откройте и изучите пример хука для интеграции с Linux маршрутизаторами, использующими ipset:
{code}
cp /usr/local/Reductor/contrib/examples/events.sh_template /usr/local/Reductor/userinfo/hooks/events.sh
vim /usr/local/Reductor/userinfo/hooks/events.sh
chmod +x /usr/local/Reductor/userinfo/hooks/events.sh
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 /usr/local/Reductor/userinfo/hooks/events.sh
{code}
# Проверьте его работу при ручном запуске:
{code}
/usr/local/Reductor/bin/events.sh
{code}
# Проверьте, что он работает из cron: очистите список на маршрутизаторе и подождите 1 час (запускается по cron в 10 минут каждого часа)

Внутри скрипта допишите функции ip_block_full_add и ip_block_full_del, чтобы они передавали на оборудование команду на удаление/добавление IP адреса для полной блокировки.

h1. Получение списка целиком


{code}
/usr/local/Reductor/lists/ip_http.load /usr/local/Reductor/lists/ip_block.load
{code}

Вы можете использовать его по собственному усмотрению.

h1. Тестирование.

# Запускаем /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 на оборудовании, он должен постепенно наполняться.

h1. Использование BGP

Здесь перечислены все имеющиеся схемы на текущий момент:


[https://github.com/carbonsoft/reductor_bgp_rtbh]


Как альтернативу вы можете использовать: [https://github.com/forestmonster/quaggablocker|https://github.com/forestmonster/quaggablocker] но мы пока не тестировали его.


h2. Redback SE 100

[https://github.com/carbonsoft/reductor_bgp_rtbh/tree/master/se100]