Интеграция с Микротик. Хук event.sh для MikroTik.

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

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

просмотр истории страницы
h5. Необходимо создать сам хук:

\\
{code}
{code}
\\

h5. Наполнить его следующим содержимым:

\\
{code}
#!/bin/bash

SSH="/usr/bin/ssh -T <username>@<ip_adress>"
SSH="/usr/bin/ssh -T <имя пользователя на Микротик>@<ip-адрес Микротика>"

# отсекаем лишнее из вывода ipset /print
__only_ip() {
grep add | egrep -o "$ip_regex"
egrep -o "$ip_or_ipmask_regex" | sed -E "s|^$ip_regex$|&/32|g"
}

# Отправляем на оборудование команду на блокирование ip адреса
ip_block_full_add() {
ip_block_full_del() {
local ip="$1"
echo "/ip firewall address-list remove numbers=${ip}_reductor_ip_block" [find comment=${ip}_reductor_ip_block]" | $SSH
}

mikrotik_firewall_prepare() {
echo "/ip firewall filter add chain=reductor_forward comment=reductor_ip_block dst-address-list=reductor_ip_block_list action=drop" | $SSH
echo "/ip firewall filter add chain=forward action=jump jump-target=reductor_forward place-before=0" | $SSH
}

# # Получаем список заблокированных IP
ip_block_full_get() {
# один раз руками вызываем и забываем, конфиг микротика - дело админа
mikrotik_firewall_prepare
# mikrotik_firewall_prepare
echo "/ip firewall address-list print where list=reductor_ip_block_list" | $SSH | __only_ip
}
{code}

\\
h5. Предварительно на самом Микротике выполняем две команды:
\\
{code}
# Прописываем дропающее правило и свою цепочку, ставим себя ранее всех цепочек
ip firewall filter add chain=reductor_forward comment=reductor_ip_block dst-address-list=reductor_ip_block_list action=drop
ip firewall filter add chain=forward action=jump jump-target=reductor_forward place-before=0
{code}
\\

h5. Чтобы всё заработало нужно:

\\
1. Указать правильныйе IP адрес Микротика и логин в переменной $SSH
2. Выполнить один раз руками ssh-copy-id root@$IP-микротика
3. Проверить вручную команду TIMEOUT=0 /usr/local/Reductor/bin/events.sh

Стоит учесть, что {color:#ff0000}могут быть проблемы с ssh-copy-id на версии прошивки МТ ниже 6.3.1{color}

\\

h5. Необходимо включить анонсирование по ip_subnet:

menu -> Настройка алгоритма фильтрации -> Проставить [ ] Синхронизировать IP-адреса подсетями.
Обновить списки на Редукторе

{code}
service reductor update
{code}

После выполняем (заполнив реквизиты на доступ по ssh):

{code}
# подготовка цепочек файрвола на микротике.
. /usr/local/Reductor/userinfo/hooks/events.sh
mikrotik_firewall_prepare
{code}

\\
Или на микротике:
{code}
/ip firewall filter add chain=reductor_forward comment=reductor_ip_block dst-address-list=reductor_ip_block_list action=drop
/ip firewall filter add chain=forward action=jump jump-target=reductor_forward place-before=0
{code}