Просмотр Исходного

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

\\
{panel}
chroot /app/reductor
touch /cfg/userinfo/hooks/events.sh
chmod a+x /cfg/userinfo/hooks/events.sh
{panel}
\\

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

\\
{code}
#!/bin/bash


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}