... h5. Необходимо создать сам хук: \\ {code} [root@rReductor]# touch /usr/local/Reductor/userinfo/hooks/events.sh [root@rReductor]# chmod a+x /usr/local/Reductor/userinfo/hooks/events.sh {code} \\ h5. Наполнить его следующим содержимым: \\ {code}
|
#!/bin/bash
|
SSH="/usr/bin/ssh -T <username>@<ip_address>"
|
SSH="/usr/bin/ssh -T <имя пользователя на Микротик>@<ip-адрес Микротика>"
|
# отсекаем лишнее из вывода /print __only_ip() {
|
egrep -o "$ip_regex"
|
egrep -o "$ip_or_ipmask_regex" | sed -E "s|^$ip_regex$|&/32|g"
|
}
|
... # Отправляем на оборудование команду на блокирование ip адреса ip_block_full_add() { local ip="$1" echo "/ip firewall address-list add list=reductor_ip_block_list address=$ip comment=${ip}_reductor_ip_block" | $SSH } # Отправляем на оборудование команду на снятие блокировки ip адреса ip_block_full_del() { local ip="$1" echo "/ip firewall address-list remove [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 echo "/ip firewall address-list print where list=reductor_ip_block_list" | $SSH | __only_ip } {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}
|
\\
|
На Редукторе в консоли выполняем (после заполнения реквизитов на доступ по ssh):
|
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}
|