Перейти до

странности с авторизацией


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

и так что у меня имеется

1) freeBSD 5.3

2) ipfw & ipdivert

3) stg-2.4.8.6

4) поправленные зависимости на expat

#ln /usr/local/incude/expat.h /usr/lib

#ln /usr/local/incude/expat.h /usr/include

#ln /usr/local/incude/expat_external.h /usr/include

#ln /usr/local/incude/expat_external.h /usr/lib

 

так же копируем libexpat

#cp /usr/local/lib/libexpat.so.5 /usr/lib

#cp /usr/local/lib/libexpat.so /usr/lib

 

тянем stg-2.4.8.6 ТО_СЮДА

 

или

#cd /

#wget http://stargazer.dp.ua/download/server/2.4...2.4.8.6.src.tgz

(должен быть установлен wget если хотите через него скачивать)

#tar -xvf stg-2.4.8.6.src.tgz

#cd stg-2.4.8.6

#cd projects

#cd stargazer

#./build

(идёт компеляция если ошибок нет ... то вроди всё впорядке )

#./install

 

далее должно появится следующие

 

в /etc должн появится коалог /etc/stargazer

в нем есть

# ls

OnChange OnDisconnect OnUserDel stargazer.conf

OnConnect OnUserAdd rules

 

правим stargazer.conf

 

ee /etc/stargazer/stargazer.conf

 

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

# Файл настроек сервера stargazer #

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

 

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

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

 

# День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы

# Значения: 0...31. 0 - Последний день месяца

DayResetTraff = 1

 

# "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый

# день 1/30 или 1/31 части АП

# Значения: yes, no

SpreadFee = no

 

# Данная опция определяет может ли пользователь получить доступ в интерент

# если у него на счету нет денег, но остался предоплаченный трафик

# Значения: yes, no

FreeMbAllowInet = no

 

# Названия направлений. Направления без названий не будут отображаться в

# авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны

# быть взяты в кавычки

<DirNames>

DirName0 = Локаль

DirName1 = Город

DirName2 = Мир

DirName3 =

DirName4 =

DirName5 =

DirName6 =

DirName7 =

DirName8 =

DirName9 =

</DirNames>

 

# Кол-во запускаемых процессов stg-exec.

# Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ...

# Кол-во процессов означает сколько скриптов могут выполнятся одновременно.

# Значения: 1...1024

ExecutersNum = 1

 

# Message Key для stg-exec.

# Идентификатор очереди сообщений для выполнятеля скриптов.

# Его изменение может понядобится если есть необходимость запустить несколько

# экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр!

# Значения: 0...2^32

# Значение по умолчанию: 5555

# ExecMsgKey = 5555

 

# Путь к директории, в которой находятся моудли сервера

ModulesPath = /usr/lib/stg

 

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

# Store module

# Настройки плагина работающего с БД сервера

 

# Второй параметер - это имя модуля без mod_ в начале и .so в конце

# Т.е. полное имя модуля mod_store_files.so

<StoreModule store_files>

 

# Рабочая директория сервера, тут содержатся данные о тарифах, пользователях,

# администраторах и т.д.

WorkDir = /var/stargazer

 

# Владелец, группа и права доступа на файлы статистики (stat) пользователя

ConfOwner = root

ConfGroup = wheel

ConfMode = 600

 

# Владелец, группа и права доступа на файлы конфигурации (conf) пользователя

StatOwner = root

StatGroup = wheel

StatMode = 640

 

# Владелец, группа и права доступа на лог-файлы (log) пользователя

UserLogOwner = root

UserLogGroup = wheel

UserLogMode = 640

 

</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 = 8888

 

</Module>

 

# Модуль захвата трафика "mod_cap_bpf.so"

# Второй параметер - это имя модуля без mod_ в начале и .so в конце

# Без параметров. Только имя модуля.

<Module cap_bpf>

# Интерфейс(ы) на котором нужно производить подсчет трафика

iface = rl0

iface = rl1

iface = rl2

iface = tun0

iface = sk0

</Module>

 

# Настройки модуля пингующего пользователей "mod_ping.so"

# Второй параметер - это имя модуля без mod_ в начале и .so в конце

<Module ping>

 

# Время, в секундах, между пингами одного и тогоже пользователя

# Значения: 10...3600

PingDelay = 15

 

</Module>

 

</Modules>

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

 

где rl1 - интерфейс который смотрит на adsl модем ,

rl2 - локалка

tun0 - PPPoE соединение

sk0 - сетевуха смотряшая в интернет через другова провайдера

 

так же правим

ee /etc/stargazer/rules

# Locale

ALL 192.168.0.0/16 DIR0

# stbur

ALL 83.234.84.0/24 DIR1

ALL 83.234.85.0/24 DIR1

ALL 83.234.120.0/24 DIR1

ALL 83.234.121.0/24 DIR1

ALL 83.234.122.0/24 DIR1

ALL 83.234.123.0/24 DIR1

ALL 62.33.133.0/24 DIR1

# burnet

ALL 212.0.64.0/19 DIR1

# Internet

ALL 0.0.0.0/0 DIR2

______________________________________________

 

теперь запускаемся

#/usr/sbin/stargazer

#

 

смотрим есть или нет этот процесс

# ps ax | grep star

598 ?? S<s 7:45,92 /usr/sbin/stargazer

599 ?? I 0:00,01 stargazer: stg-exec (stargazer)

4439 p0 R+ 0:00,00 grep star

 

если у вас как у меня значит всё в порядке

на прочессе 599 в начале может стоять "S" ну это ничего страшного ....

главное чтоб было 2 процесса 598 и 599 (у вас они могут иметь другие PID)

и так сервер запущен

теперь нам надо

проверь слушается порт конфигуратора и авторизатора

# netstat -an | grep 5555

udp4 0 0 *.5555 *.*

 

# netstat -an | grep 8888

tcp4 0 0 *.8888 *.* LISTEN

 

если так то всё работает

 

КАЧАЕМ_КОНФИГУРАТОР

устанавливаем под эмулятором как у меня или под виндой

запускаем конфигуратор и правим настройки в имени сервера вставляем его ip-адрес порт 8888

нажимаем обновить и получаем приглашение ввести логи и пароль администратора

logoin: admin

passwd: 123456

ну дальше по аналогии с пользователем вводим адреса локальных адресов логины и пароли зверей (советую также создать свой админский логин, а существующий удалить)

и перекрыть в фаирволе сторонних пользователей

 

вот тут начинается трабла .... я переписываю OnConnect и OnDisconnect так чтоб они подстовляли правила в ipfw и так получается что лог пишется , а в фаирвол не добавляется павило

 

авторизатор взят ВОТ_ЭТОТ

может кто что подскажет

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 51
  • Створено
  • Остання відповідь

Top Posters In This Topic

А если вречную стартануть ОнКоннект то добавляет правила?

У юзера надеюь кредит стоит?

Если поставить "всегда онлайн" то что?

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

Посмотри на первые строчки файлов OnConnect и OnDisconnect

Первой стокой должнен быть указан путь к шелл интерпритатору.

Что то вроде:

#!/bin/sh

или

#!/usr/local/bin/bash

По умолчанию это не указано.

Ссылка на сообщение
Поделиться на других сайтах
А если вречную стартануть ОнКоннект то добавляет правила?

У юзера надеюь кредит стоит?

Если поставить "всегда онлайн" то что?

ну если ставлю "всегда online" то трафик считает , а мне нужно чтоб они авторизировались

Ссылка на сообщение
Поделиться на других сайтах
Посмотри на первые строчки файлов OnConnect и OnDisconnect

Первой стокой должнен быть указан путь к шелл интерпритатору.

Что то вроде:

#!/bin/sh

или

#!/usr/local/bin/bash

По умолчанию это не указано.

пробовал ... не работает ... ,а самое странное .. что лог который в этом скирипте прописан срабатывает

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

использовал этот скрипт на включение

__________________________________

#!/bin/sh

#Этот скрипт вызывается в момент, когда пользователь

#успешно прошел авторизацию на сервере. Задач скрипта - перестроить

#файрвол так, что бы пользователь получил доступ в интернет.

#В поле Примечание у абонента я устанавливаю скорость по типу 64Kbit/s

 

LOGIN=$1

IP=$2

CASH=$3

ID=$4

SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`

fwcmd="/sbin/ipfw -q"

cur_date=`date \+\%Y.\%m.\%d`

cur_time=`date \+\%H:\%M:\%S`

 

${fwcmd} pipe `expr $ID + 101` config bw $SPEED

${fwcmd} add `expr $ID + 501` pipe `expr $ID + 101` tcp from any to $IP via rl1

${fwcmd} add `expr $ID '*' 10 + 10001` allow icmp from $IP to any out via rl1 icmptype 0,3,4,11,12

${fwcmd} add `expr $ID '*' 10 + 10002` allow ip from $IP to any

${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP

 

 

echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargazer/users/allconnect.log

echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log

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

У меня тоже такая проблема. Стоит Linux Slackware 10.2. При этом скрипты OnConnect и OnDisconnect вообще не запускаются старгейзером. Если их запускать вручную, то скрипт выполняет все правильно.

 

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4


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

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

Ссылка на сообщение
Поделиться на других сайтах
У меня тоже такая проблема. Стоит Linux Slackware 10.2. При этом скрипты OnConnect и OnDisconnect вообще не запускаются старгейзером. Если их запускать вручную, то скрипт выполняет все правильно.

 

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4


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

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

насколько я знаю то в этом скрипте нужно писать что мол запуск идёт от #!/bin/bash .... вроди так ... и еще это возможно зависит от уравня security_level=?? или кк оно там в линуксе называтся

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

Все дело в кавычках как оказалось. Метод тыка всетаки работате на ура))

перед expr надо ставить кавычку `(енто кнопка консоли или тильда) и закрывать точно также. А '*' енто обычные ковычки кнопка хде буковка Э.

Ссылка на сообщение
Поделиться на других сайтах
У меня тоже такая проблема. Стоит Linux Slackware 10.2. При этом скрипты OnConnect и OnDisconnect вообще не запускаются старгейзером. Если их запускать вручную, то скрипт выполняет все правильно.

 

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4


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

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

насколько я знаю то в этом скрипте нужно писать что мол запуск идёт от #!/bin/bash .... вроди так ... и еще это возможно зависит от уравня security_level=?? или кк оно там в линуксе называтся

тут я забыл дописать #!/bin/sh, но это в скрипте есть. Старгейзер запускается с привелегиями рута. Он просто делает вид что скриптов не существует, хотя находятся там где нужно. Если запускать скрипты вручную с параметрами все отлично работает... Но не буду я сидеть принимать звонки от клинтов.

 

И еще заметил такую особенность: Стг не считает мировой трафик(DIR3), при этом DIR1 считает постоянно, а DIR2 изнедка но считает... Соединение с интернетом происходит через сетевой интерфейс eth0. подскажите плиз че делать...

 

Да, забыл сказать: доку не читал.... да и нафиг.... буду тут всем мозги парить...

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

ну такто правельно .. он сначало не читает маны , а уже лезет в огород с монускриптом :( так что впринципи то что такие посты грохать это верно .... ну вот что касательно исполнения скрипта досих пор разобраться не могу ...(братья демоны(BSD) помогите может у кого заработало) начинаю подумывать о прокси "Оops"

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

Поставь в конец каждой строчки команд ipfw добавку:

&& echo done > /какой/нибудь/лог

 

Чтоб плучилось что-нибудь типа:

${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP && echo done > /какой/нибудь/лог

 

А потом поставь вместо него вот что:

|| echo not > /какой/нибудь/лог

 

ну... /какой/нибудь/лог, думаю, найдешь на что исправить)

 

При успешном окончании команды будет срабатывать команда после &&.

При неуспешном - после ||.

 

И смотри логи.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 weeks later...
и так что у меня имеется

1) freeBSD 5.3

2) ipfw & ipdivert

3) stg-2.4.8.6

4) поправленные зависимости на expat

#ln /usr/local/incude/expat.h /usr/lib

#ln /usr/local/incude/expat.h /usr/include

#ln /usr/local/incude/expat_external.h /usr/include

#ln /usr/local/incude/expat_external.h /usr/lib

 

так же копируем libexpat

#cp /usr/local/lib/libexpat.so.5 /usr/lib

#cp /usr/local/lib/libexpat.so /usr/lib

Уважаемый sypper-pit, скажите пожалуйста, какая у Вас стоит версия expat?

У меня FreeBSD 5.4, стояла Expat 1.95.8. Прописал по Вашей методике линки, скопировал сами библиотеки, компилирую - не работает:

 

`/usr/home/install/stg-2.4.8.6/projects/stargazer/plugins/configuration/sgconfig'

deps:2: *** команды встречены до первого определения цели. Останов.

gmake[1]: Leaving directory

 

Ладно, снес 1.95.8 (pkg_delete -f ...), поставил из пакаджей expat-2.0.0_1 (ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-stable/All/expat-2.0.0_1.tbz).

(перед установкой подчистил все файлы от старого, 1.95.8).

Компилирую - та же самая хрень.

Что только не пробовал, и прописывал в configproto.h #include</usr/iclude/expat.h>, и #include"expat.h" (а все файлы библиотеки скидывал в директорию с configproto.h). Результат был один - этот плагин упорно не собирался.

 

ОС не обновлялась, порты тоже не обновлялись.

В общем, что посоветуете?

 

Заранее благодарен за ответ.

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

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

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

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

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

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

Вхід

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

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

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


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