... h5. Необходимо создать сам хук: \\ {panel} chroot /app/reductor touch /cfg/userinfo/hooks/events.sh chmod a+x /cfg/userinfo/hooks/events.sh {panel} \\ h5. Наполнить его следующим содержимым: \\ {code}
|
#!/bin/bash
|
# Данный скрипт является хуком, а не утилитой. # Не смущайтесь, что здесь ничего не вызывается напрямую. # Не смущайтесь, что здесь есть неопределённые переменные. # Вся логика по сравнению списков IP адресов в основном скрипте. # От вас требуется описать 4 функции: # - SSH - способ передачи команды с stdin на оборудование # - ip_block_full_add/del/get.
|
SSH="/usr/bin/ssh -T carbon@<ip вашего роутера> bash"
|
... IPSET=xge_reductor_ip_block # отсекаем лишнее из вывода ipset __only_ip() { egrep -o "$ip_or_ipmask_regex" | sed -E "s|^$ip_regex$|&/32|g" } # отправить на оборудование команду на блокирование IP адреса ip_block_full_add() { local ip="$1" echo "/usr/sbin/ipset add $IPSET $ip" | $SSH } # отправить на оборудование команду на снятие блокировки IP адреса ip_block_full_del() { local ip="$1" echo "/usr/sbin/ipset del $IPSET $ip" | $SSH } # получить список заблокированных IP адресов ip_block_full_get() { echo "ipset save $IPSET" | $SSH | __only_ip } {code} \\ h5. Чтобы всё заработало нужно: h5. {color:#ff0000}P.S. Не работает на не стандартных портах при старом ssh-copy-id. Решение добавить ключи вручную, либо передать пароль в явном виде.{color} # Указать правильный IP адрес XGE в переменной $SSH # Сгенерировать ключи (на все вопросы - enter): {panel} chroot /app/reductor /usr/bin/ssh-keygen {panel} # Выполнить один раз {panel} chroot /app/reductor /usr/bin/ssh-copy-id root@$IP-адрес-xge {panel} # Проверить выполнение команды {panel} chroot /app/reductor TIMEOUT=0 /usr/local/Reductor/bin/events.sh {panel} # Всю папку .ssh/ необходимо скопировать по пути /app/reductor/cfg/ чтобы ключи не пропали при обновлении: {panel} chroot /app/reductor/ mkdir -p /cfg/root/.ssh/ cp /root/.ssh/\* /cfg/root/.ssh/ {panel}
|