Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим |
просмотр истории страницы
Необходимо создать сам хук:
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 "/sbin/ipset add $IPSET $ip" | $SSH } # отправить на оборудование команду на снятие блокировки ip адреса ip_block_full_del() { local ip="$1" echo "/sbin/ipset del $IPSET $ip" | $SSH } # получить список заблокированных ip адресов ip_block_full_get() { echo "/sbin/ipset save $IPSET" | $SSH | __only_ip }
Чтобы всё заработало нужно:
- Указать правильный IP адрес XGE в переменной $SSH
- Сгенерировать ключи (на все вопросы - enter):
chroot /app/reductor /usr/bin/ssh-keygen
- Выполнить один раз
chroot /app/reductor /usr/bin/ssh-copy-id root@$IP-адрес-xge
- Проверить выполнение команды
chroot /app/reductor
TIMEOUT=0 /usr/local/Reductor/bin/events.sh