trinux 3 Опубликовано: 2008-12-16 19:31:55 Share Опубликовано: 2008-12-16 19:31:55 Здравствуйте. Поставил я STG впринципе доволен. Есть проблемка не большая =) Подключается клиент, у него естественно авторизатор зеленого цвета, но по прошествии некоторого времени(какого именно так и не уловил) Авторизатор переходит в режим Отключен, но при этом интернет работает.... что естественно не может не огорчать. На машинках нет ни фаярволов ничего, т .е. с пингами все впорядке. Логи молчат, подскажите что может быть? ОС Slackware 12.1 Спасибо. Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-16 22:05:07 Автор Share Опубліковано: 2008-12-16 22:05:07 и ещё вопросик. это нормально, что в процессах начало появляться это, раньше их не было так много... root 3043 0.2 0.6 89292 3112 ? S<sl Dec16 0:00 /usr/sbin/stargazer root 3044 0.0 0.1 3504 564 ? S Dec16 0:00 stg-exec root 3045 0.0 0.1 3504 564 ? S Dec16 0:00 stg-exec root 3046 0.0 0.1 3504 564 ? S Dec16 0:00 stg-exec root 3047 0.0 0.1 3504 564 ? S Dec16 0:00 stg-exec root 3048 0.0 0.1 3504 564 ? S Dec16 0:00 stg-exec root 3068 0.0 0.1 1704 512 tty1 Ss+ Dec16 0:00 /sbin/agetty 38400 tty1 linux Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-12-17 06:29:18 Share Опубліковано: 2008-12-17 06:29:18 1. Проверь скрипт OnDisconnect 2. Либо последствия падений, либо у тебя в конфиге указано запускать 5 Executers Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 08:01:04 Автор Share Опубліковано: 2008-12-17 08:01:04 вот собственно #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 IPTABLES="/usr/sbin/iptables" #Selected dirs to disconnect DIRS=$4 #Ifaceses eth_local="eth3" eth_local2="eth0" $IPTABLES -t nat -D POSTROUTING -s $IP -j MASQUERADE $IPTABLES -t nat -D POSTROUTING -d $IP -j MASQUERADE $IPTABLES -t filter -D FORWARD -s $IP -j ACCEPT $IPTABLES -t filter -D FORWARD -d $IP -j ACCEPT ###disable redirect too squid ON=`cat /var/stargazer/squid/squid | grep -v "$IP"` echo "$ON" > /var/stargazer/squid/squid /usr/local/squid/sbin/squid -k reconfigure $IPTABLES -t nat -D PREROUTING -p tcp -s $IP -d 0/0 --dport 80 -j DNAT --to-destination 10.1.1.1:3128 #Drop FORWARD $IPTABLES -I FORWARD -i $eth_local -s $IP -j DROP $IPTABLES -I FORWARD -o $eth_local -d $IP -j DROP $IPTABLES -I FORWARD -i $eth_local2 -s $IP -j DROP $IPTABLES -I FORWARD -o $eth_local2 -d $IP -j DROP #Drop acces too squid port now! $IPTABLES -A INPUT -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -A OUTPUT -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -A FORWARD -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -D INPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT $IPTABLES -D OUTPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT $IPTABLES -D FORWARD -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT $IPTABLES -D INPUT -p tcp -s $IP -d 10.1.1.1 --dport 3128 -j ACCEPT $IPTABLES -D OUTPUT -p tcp -s $IP -d 10.1.1.1 --dport 3128 -j ACCEPT # Насчет падения действительно падала база MYSQL.... я пересобирал заново СТГ думал избавлюсь от лишних процессов,но увы... Это критично? или можно как-то исправить? Что это вообще за процесс? Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 08:04:35 Автор Share Опубліковано: 2008-12-17 08:04:35 да кстати ,причем здесь этот скрипт, он как раз и не выполняется, Авторизатор просто становится красного цвета,но инте при этом работает... так же как и в режиме всегда Online. Я конечно сказал ему переподключаться, но от этого мне не легче Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2008-12-17 08:19:47 Share Опубліковано: 2008-12-17 08:19:47 Может тебя просто отваливается СТГ? Много раз это обсуждалось тут: http://local.com.ua/forum/index.php?showtopic=12719 И ещё тема в тему : http://local.com.ua/forum/index.php?showtopic=13048 Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 08:27:13 Автор Share Опубліковано: 2008-12-17 08:27:13 если бы он падал, то реконнекта не происходило бы.... Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 08:56:04 Автор Share Опубліковано: 2008-12-17 08:56:04 Со stg-exec разобрался) Действительно сам указал 5 процессов))) А вот с авторизатором нет.... Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 09:40:53 Автор Share Опубліковано: 2008-12-17 09:40:53 Прошу прощения квотирования не нашел =) # Имя лог-файла куда пишутся события LogFile = /var/log/stargazer.log # Имя файла в котором определяются правила подсчета трафика Rules = /etc/stargazer/rules # Время через которое пишется d БД детальная статистика пользователя # Значения: 1, 1/2, 1/4, 1/6. # 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин DetailStatWritePeriod=1/6 # Периодичность записи записи в БД информации о статистике пользователя (минуты) # При большом кол-ве пользователей эту величину стоит увеличить, т.к. # запись в БД может занимать длительное время. # Значения: 1...1440 (минуты) StatWritePeriod = 10 # День снятия абонплаты # Значения: 0...31. 0 - Последний день месяца DayFee = 1 # Абонплата снимается в последний (yes) или первый (no) день учетного периода. # Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф. # Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200, # то при переходе на новый тариф со счета пользователя снимется 100, если # DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no DayFeeIsLastDay = yes # День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы # Значения: 0...31. 0 - Последний день месяца DayResetTraff = 1 # "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый # день 1/30 или 1/31 части АП # Значения: yes, no SpreadFee = no # Данная опция определяет может ли пользователь получить доступ в интерент # если у него на счету нет денег, но остался предоплаченный трафик # Значения: yes, no FreeMbAllowInet = no # Эта опция определяет что будет писаться в стоимость трафика в detail_stat. # Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no, # то в detail_stat стоимость будет 0. Если у пользователя уже нет # предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat # будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость # трафика будет записана в любом случае. WriteFreeMbTraffCost = no # Необязательный параметр. Указывает снимать полную абонплату у пользователя даже # если он быз заморожен только часть учетного периода. # По умолчанию установлен в no # FullFee=no # Необязательный параметр указывающий показывать на счету и позволять # использовать пользователю абонплату. По умолчанию установлен в yes # ShowFeeInCash=yes # Названия направлений. Направления без названий не будут отображаться в # авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны # быть взяты в кавычки <DirNames> DirName0 = Локаль DirName1 = Город DirName2 = Мир DirName3 = DirName4 = DirName5 = "Локальные игры" DirName6 = DirName7 = DirName8 = DirName9 = </DirNames> # Кол-во запускаемых процессов stg-exec. # Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ... # Кол-во процессов означает сколько скриптов могут выполнятся одновременно. # Значения: 1...1024 ExecutersNum = 5 # Message Key для stg-exec. # Идентификатор очереди сообщений для выполнятеля скриптов. # Его изменение может понадобится если есть необходимость запустить несколько # экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр! # Значения: 0...2^32 # Значение по умолчанию: 5555 # ExecMsgKey = 5555 # Путь к директории, в которой находятся модули сервера ModulesPath = /usr/lib/stg # Определяет директорию, в которой будут находится файлы "монитора" # работы сервера. В этой директории будут созданы пустые файлы, время # модификации которых будет меняться примерно раз в минуту. Если какой-то # компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому # признаку можно определить сбой в работе сервера и при надобности # перезапустить. Если параметр не указан или пустой, мониторинг производится # не будет. Параметр не является обязательным, по умолчанию пустой. # MonitorDir=/var/stargazer/monitor ################################################################################ # Store module # Настройки плагина работающего с БД сервера # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_store_files.so ##<StoreModule store_files> # # # Рабочая директория сервера, тут содержатся данные о тарифах, пользователях, # администраторах и т.д. # WorkDir = /var/stargazer # Владелец, группа и права доступа на файлы статистики (stat) пользователя # ConfOwner = root # ConfGroup = root # ConfMode = 600 # Владелец, группа и права доступа на файлы конфигурации (conf) пользователя # StatOwner = root # StatGroup = root # StatMode = 640 # Владелец, группа и права доступа на лог-файлы (log) пользователя # UserLogOwner = root # UserLogGroup = root # UserLogMode = 640 #</StoreModule> #<StoreModule store_firebird> # # Адрес сервера БД # server=localhost # # # Путь к БД на сервере или ее алиас # database=/var/stg/stargazer.fdb # # # Имя пользователя БД # user=stg # # # Пароль пользователя БД # password=123456 #</StoreModule> <StoreModule store_mysql> # # Имя пользователя БД dbuser = root # # # Пароль пользователя БД rootdbpass = 123 # # # Имя БД на сервере dbname = stg # # # Адрес сервера БД dbhost = localhost </StoreModule> ################################################################################ # Прочие модули <Modules> # Настройки плагина авторизации Always Online "mod_auth_ao.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ao.so <Module auth_ao> </Module> # Настройки плагина авторизации InetAccess "mod_auth_ia.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ia.so <Module auth_ia> # Порт на котором принимаются обращения от авторизатора # Значения: 1...65534 Port = 5555 # Время между посылками запроса пользователю жив ли он # и обновлением данных статистики (секунды) # Значения: 5...600 UserDelay = 15 #Таймаут для пользователя. Если в течение этого времени авторизатор #не отвечает, пользователь будет отключен # Значения: 15...1200 UserTimeout = 65 # Этот параметр определяет что будет передаваться программе InetAccess от сервера # как отстаток предоплаченного трафика # Значения: # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления # FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления # ........................ # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать # FreeMb = none - ничего не передавать FreeMb = cash </Module> # Модули можно использовать несколько раз с разными параметрами #<Module auth_ia> # Port = 7777 # UserDelay = 15 # UserTimeout = 65 # FreeMb = 0 #</Module> # Настройки модуля конфигурации SgConfig "mod_conf_sg.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце <Module conf_sg> # Порт по которому сервер взаимодействует с конфигуратором # Значения: 1...65535 Port = 5555 </Module> # Модуль захвата трафика "mod_cap_ether.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Без параметров. Только имя модуля. <Module cap_ether> # Модуль без параметров </Module> # Настройки модуля пингующего пользователей "mod_ping.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце <Module ping> # Время, в секундах, между пингами одного и того же пользователя # Значения: 10...3600 PingDelay = 15 </Module> # # Настройки модуля для удаленного выполнения скриптов OnConnect и # # OnDisconnect "mod_remote_script.so" # # Второй параметр - это имя модуля без mod_ в начале и .so в конце # <Module remote_script> # # # Время, в секундах, между посылками подтверждений, того, что пользователь # # всё еще онлайн # # Значения: 10...600 # SendPeriod = 15 # # # Соответствие подсетей, в которой находится пользователь и # # соответствующего роутера. Первая часть строки - подсеть, заданная # # как IP-адрес и маска, через пробел - IP-адрес роутера на котором # # должны выполняться скрипты # # Например эта запись "192.168.1.0/24 192.168.1.1" означает, что для # # всех пользователей из подсети 192.168.1.0/24, скрипты будут # # выполняться на роутере с адресом 192.168.1.1 # # Subnet0...Subnet100 # Subnet0 = 192.168.1.0/24 192.168.1.7 # Subnet1 = 192.168.2.0/24 192.168.2.5 # Subnet2 = 192.168.3.0/24 192.168.2.5 # Subnet3 = 192.168.4.0/24 192.168.2.5 # # # Пароль для шифрования пакетов между stg-сервером и сервером, # # выполняющим скрипты # Password = 123456 # # # Этот параметр определяет какие параметры пользователя передаются # # на удаленный сервер # # Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, NextTariff, Address, # # Note, Group, Email, RealName, Credit, EnabledDirs, Userdata0...Userdata9 # UserParams=Cash Tariff EnabledDirs # # # Порт по которому сервер отсылает сообщения на роутер # # Значения: 1...65535 # Port = 9999 # # </Module> # <Module radius> # Password = 123456 # ServerIP = 127.0.0.1 # Port = 6666 # AuthServices = Login-User # AcctServices = Framed-User # </Module> </Modules> ################################################################################ Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-12-17 18:08:24 Share Опубліковано: 2008-12-17 18:08:24 1. Переконнекчивается ли авторизатор (сам и по принуждению)? 1.1 Если нет - скажи свой мейл, я вышлю 2 патча. 1.2 Если да - через какое время он переконнекчивается сам? Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-17 18:42:30 Автор Share Опубліковано: 2008-12-17 18:42:30 Если постаить галку на ПЕРЕПОДКЛЮЧЕНИЕ,то сам переподключается.... происходит это очень быстро,я даже не замечаю....(но ведь должно и без этой галочки стабильно работать) Причем отрубается, везде, у меня на 2-х интерфейсах СТГ работает и на обоих одновременно отваливается... И интересно,что инет не отрубается =) хотя автризатор становится красного цвета m_golмаилточкару Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-12-18 06:48:24 Share Опубліковано: 2008-12-18 06:48:24 К стати, только сейчас заметил. Твой скрипт OnDisconnect не учитывает возможность того, что правило для пользователя может быть в нескольких экземплярах в таблице (например, 2 OnConnect подряд обязательно приведут к такой ситуации). Так что скрипт, возможно, отрабатывает. Но как минимум 1 правило остается, по этому у юзера есть инет. Ссылка на сообщение Поделиться на других сайтах
trinux 3 Опубліковано: 2008-12-18 14:23:21 Автор Share Опубліковано: 2008-12-18 14:23:21 Ну что могу сказать Спасибо! Проблема вроде себя исчерпала. А что исправляет патч? Скрипт исправил #!/bin/bash #On_USER_Disconnect # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 IPTABLES="/usr/sbin/iptables" #Selected dirs to disconnect DIRS=$4 eth_local="eth3" eth_local2="eth0" prioid="${ID}0" #$IPTABLES -D INPUT -p tcp --dport 3128 -j REJECT $IPTABLES -D INPUT -p tcp -s $IP -d 10.1.1.1 --dport 3128 -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -D INPUT -p tcp -s $IP -d 10.1.1.1 --dport 3128 -j ACCEPT done #$IPTABLES -A INPUT -p tcp --dport 3128 -j REJECT $IPTABLES -A INPUT -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -A OUTPUT -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -A FORWARD -s $IP -p tcp -m multiport --dport 3128 -j DROP $IPTABLES -D INPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -D INPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT done $IPTABLES -D OUTPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -D OUTPUT -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT done $IPTABLES -D FORWARD -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -D FORWARD -s $IP -p tcp -m multiport --dport 3128 -j ACCEPT done $IPTABLES -t nat -D POSTROUTING -s $IP -j MASQUERADE while [ $? -eq 0 ] do $IPTABLES -t nat -D POSTROUTING -s $IP -j MASQUERADE done $IPTABLES -t nat -D POSTROUTING -d $IP -j MASQUERADE while [ $? -eq 0 ] do $IPTABLES -t nat -D POSTROUTING -d $IP -j MASQUERADE done $IPTABLES -t filter -D FORWARD -s $IP -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -t filter -D FORWARD -s $IP -j ACCEPT done $IPTABLES -t filter -D FORWARD -d $IP -j ACCEPT while [ $? -eq 0 ] do $IPTABLES -t filter -D FORWARD -d $IP -j ACCEPT done ###disable redirect too squid ON=`cat /var/stargazer/squid/squid | grep -v "$IP"` echo "$ON" > /var/stargazer/squid/squid /usr/local/squid/sbin/squid -k reconfigure $IPTABLES -t nat -D PREROUTING -p tcp -s $IP -d 0/0 --dport 80 -j DNAT --to-destination 10.1.1.1:3128 ### $IPTABLES -I FORWARD -i $eth_local -s $IP -j DROP > /dev/null $IPTABLES -I FORWARD -o $eth_local -d $IP -j DROP > /dev/null $IPTABLES -I FORWARD -i $eth_local2 -s $IP -j DROP > /dev/null $IPTABLES -I FORWARD -o $eth_local2 -d $IP -j DROP > /dev/null #$IPTABLES -D FORWARD -i $eth_local -s $IP -j DROP > /dev/null #$IPTABLES -D FORWARD -o $eth_local -d $IP -j DROP > /dev/null #disable cut spped $IPTABLES -t filter -D FORWARD -s $IP -j QUEUE > /dev/null while [ $? -eq 0 ] do $IPTABLES -t filter -D FORWARD -s $IP -j QUEUE > /dev/null done $IPTABLES -t filter -D FORWARD -d $IP -j QUEUE > /dev/null while [ $? -eq 0 ] do $IPTABLES -t filter -D FORWARD -d $IP -j QUEUE > /dev/null done tc filter del dev $eth_local pref ${prioid} while [ $? -eq 0 ] do tc filter del dev $eth_local pref ${prioid} done tc class del dev $eth_local classid 1:${prioid} while [ $? -eq 0 ] do tc class del dev $eth_local classid 1:${prioid} done Аминь! Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-12-18 14:30:43 Share Опубліковано: 2008-12-18 14:30:43 Проблема, которую решает патч, описана тут: http://local.com.ua/forum/index.php?showtopic=10568 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас