Интеграция с XGE, Billing.SoftRouter. Хук event.sh для XGE, Billing.SoftRouter

Skip to end of metadata
Go to start of metadata
Необходимо создать сам хук:


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


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


#!/bin/bash

# Данный скрипт является хуком, а не утилитой.
# Не смущайтесь, что здесь ничего не вызывается напрямую.
# Не смущайтесь, что здесь есть неопределённые переменные.
# Вся логика по сравнению списков IP адресов в основном скрипте.
# Её не надо трогать. От вас нужно только описать 3.5 функции:
# - 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
}


Чтобы всё заработало нужно:
P.S. Не работает на не стандартных портах при старом ssh-copy-id. Как вариант подложить ключи руками либо передать пароль в явном виде.
  1. Указать правильный IP адрес XGE в переменной $SSH
  2. Сгенерировать ключи (на все вопросы - enter):

    chroot /app/reductor /usr/bin/ssh-keygen

  3. Выполнить один раз

    chroot /app/reductor /usr/bin/ssh-copy-id root@$IP-адрес-xge

  4. Проверить выполнение команды

    chroot /app/reductor
    TIMEOUT=0 /usr/local/Reductor/bin/events.sh

  5. Всю папку .ssh/ необходимо скопировать по пути /app/reductor/cfg/ чтобы ключи не пропали при обновлении:

    mkdir -p /app/reductor/cfg/root/.ssh/
    cp /app/reductor/root/.ssh/* /app/reductor/cfg/root/.ssh/

Метки

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.