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

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

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

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

Можете воспользоваться встроенной в Carbon Reductor системой управления оборудованием, добавив хук для управления вашим маршрутизатором.


Добавление скрипта:
# Откройте и изучите пример хука для интеграции с Linux маршрутизаторами, использующими ipset:
{code}
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
less /usr/local/Reductor/contrib/examples/events.sh_template
{code}

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

Проверить, что скрипт работает можно дописав в файл новый ip адрес и вызвав команду:

# По аналогии с уже имеющимся там примером, отредактируйте в нём три функции:
## ip_block_full_add - получает аргументом $1 IP адрес, который необходимо полностью заблокировать и отправляет на маршрутизатор команду на добавление в список заблокированных
## ip_block_full_del - получает аргументом $1 IP адрес, который необходимо разблокировать и отправляет на маршрутизатор команду на удаление из списка заблокированных
## ip_block_full_get - получает с маршрутизатора список заблокированных IP адресов (1 строка - 1 IP адрес)
# Скопируйте хук командой:
{code}
echo 169.255.255.100 > /usr/local/Reductor/lists/ip_http.load
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 минут каждого часа)

А затем проверить что данная запись появилась на оборудовании (аналогично проверить удаление).

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

Можно анонсировать список IP адресов, которые необходимо заблокировать на маршрутизаторе.
Здесь перечислены все имеющиеся схемы на текущий момент:

TODO
[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]