|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (25)
просмотр истории страницыh5. Необходимо создать сам хук: |
Нужно выполнить следующие шаги: |
|
\\ {toc} |
{code} [root@rReductor]# touch /app/reductor/cfg/userinfo/hooks/events.sh [root@rReductor]# chmod a+x /app/reductor/cfg/userinfo/hooks/events.sh {code} \\ |
|
h5. Наполнить его следующим содержимым: |
h2. Необходимо создать сам хук: |
|
\\ {panel} |
touch /app/reductor/cfg/userinfo/hooks/events.sh chmod a+x /app/reductor/cfg/userinfo/hooks/events.sh {panel} h2. Наполнить его следующим содержимым: |
{code} #!/bin/bash |
... |
# отсекаем лишнее из вывода /print __only_ip() { |
egrep -o "$ip_regex" |
egrep -o "$ip_or_ipmask_regex" | sed -E "s|^$ip_regex$|&/32|g" |
} |
... |
{code} |
\\ |
h2. Хук для IPv6 |
|
h5. Чтобы всё заработало нужно: |
{code} #!/bin/bash |
|
\\ 1. Указать правильные IP адрес Микротика и логин в переменной $SSH 2. Выполнить один раз руками ssh-copy-id root@$IP-микротика 3. Проверить вручную команду TIMEOUT=0 chroot /app/reductor /usr/local/Reductor/bin/events.sh |
SSH="/usr/bin/ssh -T <имя пользователя на Микротик>@<ip-адрес Микротика>" export IP_BLOCK_FULL_LIST="$LISTDIR/load/ip6_block.load" ip6_regex=${ip6_regex:-[0-9a-fA-F]+:[0-9a-fA-F:/]+} |
|
Стоит учесть, что {color:#ff0000}могут быть проблемы с ssh-copy-id на версии прошивки МТ ниже 6.3.1{color} |
# отсекаем лишнее из вывода /print __only_ip() { egrep -o "$ip6_regex" } |
|
# Отправляем на оборудование команду на блокирование ip адреса ip_block_full_add() { local ip="$1" echo "/ipv6 firewall address-list add list=reductor_ip6_block_list address=$ip comment=${ip}_reductor_ip6_block" | $SSH |
\\ } |
# Отправляем на оборудование команду на снятие блокировки ip адреса ip_block_full_del() { local ip="$1" echo "/ipv6 firewall address-list remove [find comment=${ip}_reductor_ip6_block]" | $SSH } |
|
mikrotik_firewall_prepare() { echo "/ipv6 firewall filter add chain=reductor_forward comment=reductor_ip6_block dst-address-list=reductor_ip6_block_list action=drop" | $SSH echo "/ipv6 firewall filter add chain=forward action=jump jump-target=reductor_forward place-before=0" | $SSH } # Получаем список заблокированных IP ip_block_full_get() { # mikrotik_firewall_prepare echo "/ipv6 firewall address-list print where list=reductor_ip6_block_list" | $SSH | __only_ip } {code} h2. Чтобы всё заработало нужно: 1. Указать правильные IP адрес Микротика и логин в переменной $SSH 2. Сгенерировать ключи в чруте {code} chroot /app/reductor/ /usr/bin/ssh-keygen {code} (на все вопросы - enter) 3. Настроить авторизацию по ключам: {code} chroot /app/reductor/ /usr/bin/ssh-copy-id логин_на_Микротике@IP-микротика {code} 4. Проверить вручную команду {code} TIMEOUT=0 chroot /app/reductor /usr/local/Reductor/bin/events.sh {code} {note} Стоит учесть, что {color:#000000}могут быть проблемы с ssh-copy-id на версии прошивки МТ ниже 6.3.1{color} {note} |
На Редукторе в консоли выполняем (после заполнения реквизитов на доступ по ssh): |
... |
{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} |
Всю папку .ssh/ необходимо скопировать по пути /app/reductor/cfg/ чтобы ключи не пропали при обновлении: {code} mkdir -p /app/reductor/cfg/root/.ssh/ cp -r /app/reductor/root/.ssh /app/reductor/cfg/.ssh {code} {info} Если была физическая замена роутера (с сохранением старых конфигов) - необходимо почистить нужную строчку в файле известных хостов: {code} chroot /app/reductor /root/.ssh/known_hosts {code} {info} |