Перейти до

Проблема с авторизатором


Рекомендованные сообщения

Здравствуйте.

 

Поставил я STG впринципе доволен. Есть проблемка не большая =)

Подключается клиент, у него естественно авторизатор зеленого цвета, но по прошествии некоторого времени(какого именно так и не уловил) Авторизатор переходит в режим Отключен, но при этом интернет работает.... что естественно не может не огорчать. На машинках нет ни фаярволов ничего, т .е. с пингами все впорядке. Логи молчат, подскажите что может быть?

 

ОС Slackware 12.1

 

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

и ещё вопросик. это нормально, что в процессах начало появляться это, раньше их не было так много...

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

Ссылка на сообщение
Поделиться на других сайтах

вот собственно

 

#!/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.... я пересобирал заново СТГ думал избавлюсь от лишних процессов,но увы...

Это критично? или можно как-то исправить? Что это вообще за процесс?

Ссылка на сообщение
Поделиться на других сайтах

да кстати ,причем здесь этот скрипт, он как раз и не выполняется, Авторизатор просто становится красного цвета,но инте при этом работает... так же как и в режиме всегда Online. Я конечно сказал ему переподключаться, но от этого мне не легче :)

Ссылка на сообщение
Поделиться на других сайтах

Может тебя просто отваливается СТГ?

Много раз это обсуждалось тут: http://local.com.ua/forum/index.php?showtopic=12719

И ещё тема в тему :) : http://local.com.ua/forum/index.php?showtopic=13048

Ссылка на сообщение
Поделиться на других сайтах

Прошу прощения квотирования не нашел =)

 

 

# Имя лог-файла куда пишутся события

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>

################################################################################

Ссылка на сообщение
Поделиться на других сайтах

1. Переконнекчивается ли авторизатор (сам и по принуждению)?

1.1 Если нет - скажи свой мейл, я вышлю 2 патча.

1.2 Если да - через какое время он переконнекчивается сам?

Ссылка на сообщение
Поделиться на других сайтах

Если постаить галку на ПЕРЕПОДКЛЮЧЕНИЕ,то сам переподключается.... происходит это очень быстро,я даже не замечаю....(но ведь должно и без этой галочки стабильно работать)

Причем отрубается, везде, у меня на 2-х интерфейсах СТГ работает и на обоих одновременно отваливается...

И интересно,что инет не отрубается =) хотя автризатор становится красного цвета :)

 

 

 

m_golмаилточкару

Ссылка на сообщение
Поделиться на других сайтах

К стати, только сейчас заметил. Твой скрипт OnDisconnect не учитывает возможность того, что правило для пользователя может быть в нескольких экземплярах в таблице (например, 2 OnConnect подряд обязательно приведут к такой ситуации). Так что скрипт, возможно, отрабатывает. Но как минимум 1 правило остается, по этому у юзера есть инет.

Ссылка на сообщение
Поделиться на других сайтах

Ну что могу сказать:) Спасибо! Проблема вроде себя исчерпала. А что исправляет патч?

 

Скрипт исправил

 

#!/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

 

 

 

Аминь!

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...