1. Создаем исполняемый файл, который будет выполнять все необходимые действия. Для примера его путь: /root/bin/utm_cmd.sh
Код: Выделить всё
#!/bin/sh
if [ $1 = "1" ]; then
/sbin/ipfw add $2 allow ip from $3/$4 to any
/usr/sbin/arp -S $3 $5 pub
else
/sbin/ipfw delete $2
/usr/sbin/arp -d $3
fi
/usr/sbin/arp -S ff:ff:ff:ff:ff:ff pub
В моём же случае, она просто убирает привязку к MAC если пользователь заблокирован.
2. Корректируем rfw5.cfg:
По сути, мы заменяем исполняемый файл файрвола на наш собственный, созданный выше.
Код: Выделить всё
...
## firewall_path
## Description: Firewall path.
## Allowable values: path to the executable.
## Required parameter.
firewall_path=/root/bin/utm_cmd.sh
...
Включение: 1 RULE_ID UIP UBITS MAC
Выключение: 0 RULE_ID UIP
Эти "правила" будут передавать всю необходимую информацию нашему скрипту.
Таким же образом можно добавлять любые необходимые комманды в utm_cmd.sh.