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

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

Необходимо создать сам хук:

touch /app/reductor/cfg/userinfo/hooks/events.sh
chmod a+x /app/reductor/cfg/userinfo/hooks/events.sh

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

#!/bin/bash

SSH="/usr/bin/ssh -T <username>@<ip_address>"

# отсекаем лишнее из вывода /print
__only_ip() {
	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
}


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


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

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


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

# подготовка цепочек файрвола на микротике.
chroot /app/reductor
. /cfg/userinfo/hooks/events.sh
mikrotik_firewall_prepare


Или на микротике:

/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
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.