Тип контенту
Профили
Форум
Календарь
Все, що було написано Queeq
-
А с проектом воздушки разрешат развешивать?
-
][-RaY, у тебя новая версия или старая?
-
Скрипты onConnect/onDisconnect
тема ответил в Den_LocalNet пользователя Queeq в Питання по Stargazer
Простые скрипты OnConnect и OnDisconnect с отключением направлений (в данном случае направления два), система FreeBSD, файрвол PF. В PF'е используются такие таблицы: <uaix> - список украинских сетей (первое направление). <uausr> - список юзеров, у которых включено первое направление. <wusr> - список юзеров, у которых включено всё остальное (второе направление). OnConnect #!/usr/local/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect DIRS=$5 #Выдираем из переменной DIRS первое и второе направление uaix=${DIRS:0:1} world=${DIRS:1:1} #Если включено первое направление - добавить адрес юзера в таблицу тех, кому разрешать первое направление. if [ $uaix == 1 ] then `pfctl -t uausr -T add $IP` fi #Если включено второе направление - добавить адрес юзера в таблицу тех, кому разрешать второе направление. if [ $world == 1 ] then `pfctl -t wusr -T add $IP` fi OnDisconnect #!/usr/local/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to disconnect DIRS=$5 #Выдираем из переменной DIRS первое и второе направление uaix=${DIRS:0:1} world=${DIRS:1:1} #Если отмечено первое направление - удалить адрес юзера из таблицы тех, кому разрешать первое направление. if [ $uaix == 1 ] then `pfctl -t uausr -T delete $IP` fi #Если отмечено второе направление - удалить адрес юзера из таблицы тех, кому разрешать второе направление. if [ $world == 1 ] then `pfctl -t wusr -T delete $IP` fi В pf.conf: table <uaix> persist file "/etc/pf_ua-ix.txt" table <uausr> persist table <wusr> persist #####какие-то ещё правила##### #Разрешить подключенным к первому направлению это направление pass quick from <uausr> to <uaix> pass quick from <uaix> to <uausr> #Остальным заблочить block quick from <uaix> block quick to <uaix> #Разрешить подключенным ко второму направлению всё остальное pass quick from <wusr> pass quick to <wusr> ################################# block all Вроде всё. Если заметите недочёты - пишите в личку - подправлю. З.Ы. Кстати работает очень быстро. На полных 100 мбитах файрвол сожрал всего 7% процессора P4 2.4 GHz. Случай, когда биллинг и файрвол на разных машинах Для этого потребуется поставить pftabled на обоих машинах. Для двух таблиц (как в данном случае) я запускаю два процесса pftabled на сервере с привязкой к таблицам uausr и wusr (чтобы с клиента нельзя было менять другие таблицы). Слушать эти процессы будут на разных портах. pftabled -a <firewall_IP> -d -f uausr -p 56788 pftabled -a <firewall_IP> -d -f wusr -p 56789 На клиенте в скриптах OnConnect и OnDisconnect меняем: `pfctl -t uausr -T add $IP` на `pftabled-client <firewall_IP> 56788 uausr add $IP` `pfctl -t wusr -T add $IP` на `pftabled-client <firewall_IP> 56788 wusr add $IP` `pfctl -t uausr -T delete $IP` на `pftabled-client <firewall_IP> 56788 uausr del $IP` `pfctl -t wusr -T delete $IP` на `pftabled-client <firewall_IP> 56788 wusr del $IP` <firewall_IP> - я привязываю на сервере, чтобы pftabled слушал только на этом адресе. Для сервера указывать не обязательно. -
Есть ли у кого скриптик переноса данных из файловой базы стг в mysql? На форуме нашёл только тот, что переносит юзеров, админов и тарифы. А детальную статистику - нет.
-
А как вы переносили детальную статистику юзеров в мускл?
-
Планируется ли stg-web для новой сборки стг?
-
Так это разве последняя? Была ж ещё сборка в конце сентября?
-
Обрыл уже весь форум. Везде, где нашёл хоть какие-то релизы СТГ - последних нету. Подскажите, пожалуйста.
-
Мечты-мечты...
-
Я думаю, что этот тест кабелей сделает сильный перевес в пользу "лучшего из худших" в том, что его станут больше всего покупать.
-
Когда же уже будут результаты тестов?
-
А есть ли какая-то гарантированная минимальная скорость? Чтобы можно было рассчитывать, сколько можно сделать пакетов с гарантированной скоростью.
-
Да... Интересно.
-
Не, ну смотри сам Как будет удобнее и дешевле. Не забудь потом рассказать, как всё получится
-
Ну наверное будет дешевле поменять свичи на умные, чем каждому клиенту выделять роутер
-
Почему просто не сделать каждому отдельный VLAN? Или группе юзеров отдельный VLAN...
-
А мне IPCom'овские ящики нравятся. Первое впечатление было - сделано хорошо. Да, есть кое-какой зазор между дверцей и ящиком (у меня пенальные), но не такой уж существенный. Замок я часто не дёргаю и работает он у меня нормально. Покраска вообще, как по мне, очень хорошая. Дверца эта у меня даже на бетонный пол падала с высоты в полтора метра - краска почти не отбилась (только немного в месте удара). Качество сварки, геометрия мне тоже понравились. Аккуратные сварные швы, нормальный прямоугольный ящик. Короче у меня впечатление хорошее осталось.
-
ааа... Когда статья?
-
Хе, я просто провтыкал... Тестировал на себе, а у меня был 0 на счету. Хотя в стг 2.0 пускало и с нулём. Всем спасибо. Уже работает.
-
Странно. Они работали в старом стг. Сейчас поменяю. Но всё равно OnConnect и OnDisconnect не станут от этого вызываться. Думаю, тут не в самом скрипте проблема. Он же срабатывает, если вручную запускать...
-
Это я что-то туплю или ... эээ ... #!/bin/sh должно быть только в OnConnect и OnDisconnect?
-
OnChange login=$1 param=$2 oldValue=$3 newValue=$4 admin=$5 admin_ip=$6 echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue' admin $admin ip $admin_ip" >> /var/stargazer/users.chg.log OnConnect #!/bin/sh fwcmd="/sbin/ipfw -q" iif="fxp1" # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2` #SPEED_IN="128Kbit/s" #SPEED_OUT="64Kbit/s" Q_IN="100" Q_OUT="200" cur_date=`date \+\%Y.\%m.\%d` cur_time=`date \+\%H:\%M:\%S` # DELETE RULEZ #${fwcmd} delete pipe `expr $ID + 100` #${fwcmd} delete pipe `expr $ID + 200` #${fwcmd} delete `expr $ID '*' 10 + 10000` #${fwcmd} delete `expr $ID '*' 10 + 10001` ${fwcmd} delete `expr $ID '*' 10 + 10002` ${fwcmd} delete `expr $ID '*' 10 + 10003` # ADD RULEZ #${fwcmd} pipe `expr $ID + 100` config bw $SPEED_IN #${fwcmd} pipe `expr $ID + 200` config bw $SPEED_OUT #${fwcmd} add `expr $ID '*' 10 + 10000` pipe `expr $ID + 100` ip from $IP to any in via ${iif} #${fwcmd} add `expr $ID '*' 10 + 10001` pipe `expr $ID + 200` ip from any to $IP out via ${iif} #${fwcmd} add `expr $ID '*' 10 + 10002` allow ip from $IP to any in via ${iif} #${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP out via ${iif} #${fwcmd} add `expr $ID '*' 10 + 10000` queue $Q_IN ip from $IP to any in via ${iif} #${fwcmd} add `expr $ID '*' 10 + 10001` queue $Q_OUT ip from any to $IP out via ${iif} ${fwcmd} add `expr $ID '*' 10 + 10002` allow ip from $IP to any #via ${iif} ${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP #via ${iif} echo "Connect `date +%Y.%m.%d-%H.%M.%S` $LOGIN $ID $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log echo "Connect `date +%Y.%m.%d-%H.%M.%S` $LOGIN $ID $IP $CASH" >> /var/stargazer/allconnect.log OnDisconnect #!/bin/sh #Этот скрипт вызывается в момент, когда пользователь #желает отключится от интернета или вышел таймаут у пользователя #и сервер сам отключает пользователя # Задач скрипта подобна задаче скрипта OnConnect - перестроить #файрвол так, что бы пользователю закрыть доступ в интернет #Реализовать можно например так # ipchains -D input -s $2 -j ACCEPT # ipchains -A input -s $2 -j REJECT fwcmd="/sbin/ipfw" # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 # DELETE RULEZ FRO IPFW #${fwcmd} delete `expr $ID '*' 10 + 10000` #${fwcmd} delete `expr $ID '*' 10 + 10001` ${fwcmd} delete `expr $ID '*' 10 + 10002` ${fwcmd} delete `expr $ID '*' 10 + 10003` #${fwcmd} delete pipe `expr $ID + 100` #${fwcmd} delete pipe `expr $ID + 200` echo "Disconnect `date +%Y.%m.%d-%H.%M.%S` $LOGIN $ID $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log echo "Disconnect `date +%Y.%m.%d-%H.%M.%S` $LOGIN $ID $IP $CASH" >> /var/stargazer/allconnect.log OnUserDel # Login login=$1 #echo $login echo "deleted user $login" >> /var/stargazer/add_del.log OnUserAdd #Использование (неиспользование) этого скрипта дело вкуса. #Он не выполняет критических функций. Его задача автматизировать #действия характерные при добавлении пользователя сети, например добавлекние #пользователю почты # Login login=$1 #echo $login #password password=$2 #echo $password #tariff name tariff=$3 #echo $tariff id=$4 echo "added user $login $id $password $tariff" >> /var/stargazer/add_del.log /usr/local/bin/htpasswd -b -s -m /var/stargazer/users/.statpasswd $1 $2
-
То была описка
-
#!/bin/sh остались от старого. Права стоят 755. Надо 777?
