|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (18)
просмотр истории страницы| 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} |
