]> git.stg.codes - stg.git/blob - projects/stargazer/scripts/shaper_vpn_radius/stargazer/OnDisconnect
[NY] Made NETUNIT private.
[stg.git] / projects / stargazer / scripts / shaper_vpn_radius / stargazer / OnDisconnect
1 #!/bin/bash
2
3 # Этот скрипт вызывается в момент, когда пользователь
4 # желает отключится от интернета или вышел таймаут у пользователя
5 # и сервер сам отключает пользователя
6 # Задача скрипта подобна задаче скрипта OnConnect - перестроить 
7 # файрвол так, что бы пользователю закрыть доступ в интернет
8
9 # Login
10 LOGIN=$1
11
12 #user IP
13 IP=$2
14
15 #cash
16 CASH=$3
17
18 #user ID
19 ID=$4
20
21 #Selected dirs to disconnect
22 DIRS=$4
23
24 #echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log
25
26 iptables -D INPUT -s $IP -j QUEUE
27 while [ $? == 0 ]
28 do
29     iptables -D INPUT -s $IP -j QUEUE
30 done
31
32 iptables -D OUTPUT -d $IP -j QUEUE
33 while [ $? == 0 ]
34 do
35     iptables -D OUTPUT -d $IP -j QUEUE
36 done
37
38 iptables -D FORWARD -s $IP -j QUEUE
39 while [ $? == 0 ]
40 do
41     iptables -D FORWARD -s $IP -j QUEUE
42 done
43
44 iptables -D FORWARD -d $IP -j QUEUE
45 while [ $? == 0 ]
46 do
47     iptables -D FORWARD -d $IP -j QUEUE
48 done
49
50
51
52 declare -i mark=$ID+1
53
54 iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
55 while [ $? == 0 ]
56 do
57     iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
58 done
59
60
61 if [ -f /var/stargazer/ifaces/$IP ]
62 then
63     ppp_iface=$(cat /var/stargazer/ifaces/$IP)
64 else
65     exit 0
66 fi
67
68 tc qdisc del dev $ppp_iface root
69
70