... h5. Необходимо создать сам хук: \\ {code} [root@rReductor]# touch /usr/local/Reductor/userinfo/hooks/events.sh [root@rReductor]# chmod a+x /usr/local/Reductor/userinfo/hooks/events.sh {code} \\ h5. Наполнить его следующим содержимым: \\ {code} #!/bin/bash IPSET=xge_reductor_ip_block SSH="ssh -T root@10.0.0.1" # отправить на оборудование команду на блокирование ip адреса ip_block_full_add() { local ip="$1" echo ipset add $IPSET $ip | $SSH } # отправить на оборудование команду на снятие блокировки ip адреса ip_block_full_del() { local ip="$1" echo ipset del $IPSET $ip | $SSH } # получить список уже заблокированных IP адресов, нужно для вычисления дельты ip_block_full_get() { echo ipset save $IPSET | $SSH | egrep -o "$ip_regex" } {code} \\ h5. Чтобы всё заработало нужно: \\ 1. Указать правильный IP адрес XGE в переменной $SSH 2. Выполнить один раз руками ssh-copy-id root@$IP-адрес-xge 3. Проверить вручную команду TIMEOUT=0 /usr/local/Reductor/bin/events.sh \\ h5. На самом XGE необходимо создать/дополнить [хук|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=50660094] таким содержимым: \\ {code} #!/bin/bash if [ "$1" = '/etc/init.d/firewall' -a "$2" = 'start' ]; then MAC="<mac-адрес>" # MAC-адрес с которого прилетают редиректы от Редуктора, обычно совпадает с сетёвкой редуктора NIC="eth1" # сетевая карта роутера, на которую прилетают редиректы с редуктора
|
iptables -t raw -F iptables -t raw -N reductor_replies &>/dev/null || true
|
# Не создаём контраки с сорс-портами 53, 80, 443.
|
iptables -t raw -A reductor_replies -p tcp --sport 80 -j NOTRACK iptables -t raw -A reductor_replies -p tcp --sport 443 -j NOTRACK
|
... iptables -t raw -A reductor_replies -p udp --sport 53 -j NOTRACK iptables -t raw -A PREROUTING -i "$NIC" -m mac --mac-source "$MAC" -j reductor_replies # не натим обращение на заглушку (при условии, что заглушка прямо на Редукторе) iptables -I xge_post -t nat -d <ip адрес заглушки> -j ACCEPT fi {code}
|