MaйeR 0 Опубликовано: 2006-08-23 16:25:35 Share Опубликовано: 2006-08-23 16:25:35 Вместо OnConnect fwcmd="/sbin/ipfw" int_if="xl0" ip=$2 login=$1 id=$4 # id - уникальный целочисленный идентификатор пользователя # принимает значений от 0 до максимального кол-ва пользователей ${fwcmd} add `expr $id '*' 10 + 29000` fwd 127.0.0.1,3128 tcp from $ip to any 80 via ${int_if} ${fwcmd} add `expr $id '*' 10 + 29001` allow ip from $ip to any via ${int_if} echo "connect $login " >> /usr/local/stargazer/var/log/connect.log OnDisconnect fwcmd="/sbin/ipfw" id=$4 ${fwcmd} delete `expr $id '*' 20 + 29000` ${fwcmd} delete `expr $id '*' 20 + 29001` echo "disconnect $1" >> /usr/local/stargazer/var/log/connect.log Сделать таким образом Добавить в основной скрипт фаервола вместо # Здесь оставляем окно в нумерации для исполнения скриптов юзеров следующий код: ${fwcmd} add fwd 127.0.0.1,3128 tcp from "table(1)" to any 80 via ${int_if} ${fwcmd} add allow ip from "table(1)" to any via ${int_if} тогда OnConnect примет вид IP=$2 CASH=$3 /sbin/ipfw table 1 add ${IP} echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /usr/local/stargazer/users/$LOGIN/connect.log а OnDisconnect примет вид IP=$2 CASH=$3 /sbin/ipfw table 1 del ${IP} echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /usr/local/stargazer/users/$LOGIN/connect.log Это решит данное недоразумение: БС5. Обнаружена жутко неприятная фича под ОС: FreeBSD. При удалении/создании пользователя происходит перестроение индексов, что приводит к следующей фишке: т.к. во FreeBSD добавление/удаление правил фаервола основывается на UserID то это приводит к тому что после отключения тех юзеров которые были онлайн на момент создания/удаления юзера их разрешающие правила из фаервола не удаляются. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас