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

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

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

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

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

h3. Синхронизация ip_https и ip_subnet_block на один Linux-роутер
h3. Вводные данные

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

На Carbon Reductor создаём список
h3. Настройки на Carbon Reductor

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

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

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

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

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

{code}
ssh-keygen
{code}

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

{code}
ssh-copy-id root@10.50.140.73
{code}

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

{code}
ipset create ip_https hash:net
{code}

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

{code}
/usr/local/Reductor/userinfo/hooks.events_https.sh
/usr/local/Reductor/userinfo/hooks.events_block.sh
{code}

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

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

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

4. Хук для ip_https.load