Отправка нескольких списков

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Несколько хуков

Для начала нужно создать в файл /usr/local/Reductor/userinfo/hooks/events.sh.hooks в котором перечислены пути к хукам, например:

/usr/local/Reductor/userinfo/hooks.events_https.sh
/usr/local/Reductor/userinfo/hooks.events_block.sh

Что описывать в хуках

Всё то же самое, что и раньше:

  • Получение списка IP
  • Добавление IP адреса для блокировки
  • Прекращение блокировки IP адреса

Примечания

Внимательно проверьте что то, что вы получаете на выходе из функции "получение списка IP" совпадает по формату с содержимым синхронизируемого списка.
Частая ошибка - синхронизация не работает из-за того что с маршрутизатора получаются подсети вида x.x.x.x/32, а в списке x.x.x.x или наоборот.
Ещё один момент - ipset в Linux (по крайней мере в CentOS 6) имеет смешанный формат - маски /32 скрываются, а все остальные остаются. Это тоже может приводить к проблемам при фильтрации.

Пример - фильтрация ip_https и ip_subnet_block на Linux роутере

Вводные данные

  • На роутере фильтрация производится с помощью ipset.
  • Создание ipset при старте обеспечивается его настройками, а не скриптом синхронизации
  • Создание фильтрующих правил для iptables обеспечивается его настройками, а не скриптом синхронизации

Настройки на Carbon Reductor

1. Подготавливаем окружение к работе

Управление роутером будет осуществляться по SSH в автоматическом режиме. Для этого нужно избавиться от необходимости вводить пароль. Можно сделать это несколькими способами:

  • обмен ssh-ключами
  • использование sshpass
  • использование ssh + tcl/expect (не знаю зачем)

Рассматриваем первый вариант - SSH-ключи.
Для упрощения рассматриваем вариант работы под рутом, без sudo и настройки TTY. Это не очень секьюрно, но секьюрность можно настроить потом, когда заработает основная функциональность.

Если SSH-ключей нет - создайте их:

ssh-keygen

Обменяйтесь ключами с роутером. Считаем, что IP роутера - 10.50.140.73.

ssh-copy-id root@10.50.140.73

Создаём ipset (нужно это автоматизировать иначе после перезагрузки роутера это перестанет работать).

ipset create ip_https hash:net

2. Создаём список хуков:

/usr/local/Reductor/userinfo/hooks.events_https.sh
/usr/local/Reductor/userinfo/hooks.events_block.sh

3. Смотрим на формат синхронизируемых списков:

  • ip_https.load - x.x.x.x/yy
  • ip_subnet_block.load - x.x.x.x/yy

Нам везёт и хуки будут почти идентичными.

4. Хук для ip_https.load

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.