Интеграция с роутером на Linux. Использование ipset

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

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

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

touch /app/reductor/cfg/userinfo/hooks/events.sh
chmod a+x /app/reductor/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
__only_ip() {
        egrep -o "$ip_or_ipmask_regex" | sed -E "s|^$ip_regex$|&/32|g"
}

# отправить на оборудование команду на блокирование ip адреса
ip_block_full_add() {
        local ip="$1"
        echo "/sbin/ipset add reductorblock $ip" | $SSH
}

# отправить на оборудование команду на снятие блокировки ip адреса
ip_block_full_del() {
        local ip="$1"
        echo "/sbin/ipset del reductorblock $ip" | $SSH
}

# получить список заблокированных ip адресов
ip_block_full_get() {
        echo "/sbin/ipset save reductorblock" | $SSH | __only_ip
}

Чтобы всё заработало нужно:

1. Создать нужный ipset с hash типом net на роутере
2. Указать правильные IP адрес роутера и логин в переменной $SSH
3. Сгенерировать ключи: chroot /app/reductor /usr/bin/ssh-keygen
4. Включить и добавить авторизацию по ключам: chroot /app/reductor /us/bin/ssh-copy-id root@$ip_роутера
5. Проверить вручную команду TIMEOUT=0 chroot /app/reductor /usr/local/Reductor/bin/events.sh

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