Проблема возможно обсуждалась, но по форуму не нашел..
Итак : stargazer 2.014.7.6 стоит на linux/debian, у клиентов винды.
Правила :
FORWARD - DROP
INPUT - DROP
OUTPUT - ACCEPT
OnConnect :
iptables -t filter -A INPUT -s $IP -j ACCEPT
iptables -t filter -A FORWARD -s $IP -j ACCEPT
iptables -t filter -A FORWARD -d $IP -j ACCEPT
iptables -t filter -A OUTPUT -d $IP -j ACCEPT
iptables -t nat -A POSTROUTING -p udp -m udp -s $IP -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -m multiport --dport 20,21,25,110,143,443 -s $IP -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -m multiport --dport 5190,5220,80,8080,13389 -s $IP -o eth0 -j MASQUERADE
OnDisconnect удаляет эти правила (проверял неоднократно - все окей)...
Суть в том что если пользователь выключает свой комп при включенном inetaccess в nat цепочке iptables правила для его ip остаются. Теперь если он включает комп и НЕ запускает inetaccess - он работает себе преспокойно в инете.
Принудительно на всех компах включить загрузку iAccess нет возможности. Значит, надо как-то проверять - активен ли пользователь и если нет - то выполнять OnDisconect.
Да, забыл : в stargzer.conf стоит:
# Если юзер в течение UserTimeout секунд не подает признаков жизни, сервер отключит его
# (естественно, если клиент был подключен до этого)
UserTimeout=600
# Время через которое сервер повторяет проверку того, жив ли клиент. Также это время
# через которое у клиента обновляется его статитстика. UserDelay должно быть в
# 3...10 раз меньше чем UserTimeout
UserDelay=60
Как можно обойти вышеописанную проблему ? Пока что только придумал либо пользователей "Всегда Online" включать (но тогда смысл контроля - работают они без ограничений в некоторых местах), либо проверять присуствие пользователя скриптом, смотреть его ip , проверять есть ли правила на этот ip в iptables и если нет - удалять. Примеров скрипта ни у кого не имеется ? А то из меня, признаться, пока что не очень грамотный скриптописатель ))))