Перейти к содержимому

Помогите с проблеммой авторизации под Centos 5.2


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

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

 

Есть такая проблемка:

 

-Установил на CentOs 5.2 Stargazer последней версии. Работает все прекрасно (инет, учет трафика, добавление - удаление пользователей и т.д.) но при включенном режиме "Всегда в Онлайн" в конфигураторе под Виндовс на пользователе, а если снимаю галочку с этого параметра то польователь и в нет не выходит и авторизатор не коннектится в биллингу.

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

 

Вот здесь код файла (файрвола) fw:

 

#!/bin/bash

 

admin=172.42.128.11

 

notebookl=172.42.128.32

 

notebookw=172.42.128.33

 

server0=172.42.128.1

server1=192.168.10.1

 

iface_cli=eth1

 

iface_world=eth0

 

conf_port=5555

user_port1=5555

user_port2=5554

 

echo "1" > /proc/sys/net/ipv4/ip_forward

 

iptables -t filter -F

iptables -t filter -X

iptables -t nat -F

iptables -t nat -X

 

iptables -t filter -P INPUT DROP

iptables -t filter -P FORWARD DROP

iptables -t filter -P OUTPUT DROP

 

iptables -t filter -A INPUT -p icmp -j ACCEPT

iptables -t filter -A FORWARD -p icmp -j ACCEPT

iptables -t filter -A OUTPUT -p icmp -j ACCEPT

 

iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

 

iptables -t filter -A INPUT -i $iface_world -j ACCEPT

iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT

 

iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

 

iptables -t filter -A INPUT -p tcp -s $notebookl -d $server0 --dport 22 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $notebookl -s $server0 --sport 22 -j ACCEPT

iptables -t filter -A INPUT -p tcp -s $notebookw -d $server0 --dport 22 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $notebookw -s $server0 --sport 22 -j ACCEPT

iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT

iptables -t filter -A INPUT -p tcp -s 172.42.128.0/24 -d $server0 --dport $conf_port -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 172.42.128.0/24 -s $server0 --sport $conf_port -j ACCEPT

 

iptables -t filter -A INPUT -p udp -s 172.42.128.0/24 --sport $user_port2 -d $server0 --dport $user_port1 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d 172.42.128.0/24 --dport $user_port1 -s $server0 -j ACCEPT

 

iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

 

код файла OnChange

login=$1

param=$2

oldValue=$3

newValue=$4

 

#echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log

 

код файла OnConnect

 

#!/bin/bash

 

ip=$2

 

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

 

код файла OnDisconnect

 

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

# желает отключится от интернета или вышел таймаут у пользователя

# и сервер сам отключает пользователя

# Задача скрипта подобна задаче скрипта OnConnect - перестроить

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

 

# Login

LOGIN=$1

 

#user IP

IP=$2

 

#cash

CASH=$3

 

#user ID

ID=$4

 

#Selected dirs to disconnect

DIRS=$4

 

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

 

код файла OnUserAdd

 

# Использование (неиспользование) этого скрипта дело вкуса.

# Он не выполняет критических функций. Его задача автматизировать

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

# пользователю почты

 

# Login

login=$1

 

#echo "added user $login" >> /var/stargazer/add_del.log

 

код файла OnUserDel

 

# Login

login=$1

 

#echo "deleted user $login" >> /var/stargazer/add_del.log

 

код файла rules

 

ALL 192.168.10.1 DIR0

ALL 172.42.128.1 DIR0

ALL 0.0.0.0/0 DIR2

 

код файла 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

 

 

 

# Абонплата снимается в последний (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 = Local

DirName1 =

DirName2 = Global

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

 

# Определяет директорию, в которой будут находится файлы "монитора"

# работы сервера. В этой директории будут созданы пустые файлы, время

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

# компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому

# признаку можно определить сбой в работе сервера и при надобности

# перезапустить. Если параметр не указан или пустой, мониторинг производится

# не будет. Параметр не является обязательным, по умолчанию пустой.

# MonitorDir=/var/stargazer/monitor

 

 

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

 

# Store module

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

 

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

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

<StoreModule store_files>

 

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

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

WorkDir = /var/stargazer

 

 

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

ConfOwner = root

ConfGroup = root

ConfMode = 777

 

 

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

StatOwner = root

StatGroup = root

StatMode = 777

 

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

UserLogOwner = root

UserLogGroup = root

UserLogMode = 777

 

</StoreModule>

 

#<StoreModule store_firebird>

# # Адрес сервера БД

# server=localhost

#

# # Путь к БД на сервере или ее алиас

# path=/var/stg/stargazer.fdb

#

# # Имя пользователя БД

# user=stg

#

# # Пароль пользователя БД

# password=123456

#</StoreModule>

 

#<StoreModule store_mysql>

# # Имя пользователя БД

# dbuser = stg

#

# # Пароль пользователя БД

# rootdbpass = 123456

#

# # Имя БД на сервере

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

 

</Modules>

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

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

бегло просмотрел, мне кажется что с iptables ты что-то перемутил ;)

 

у меня сделано иначе

 

кстати... у тебя скрипт OnDisconnect пустой

 

а там должны быть правила обнуляющие доступ

 

 

так что проверь еще раз всё внимательно

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

Авторизатор последнеей версии работает по одному порту, а не по двум как в старых версиях. Порт 5554 не нужен. Может в этом причина

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

iptables -t filter -A INPUT -p udp -s 172.42.128.0/24 --sport $user_port2 -d $server0 --dport $user_port1 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -d 172.42.128.0/24 --dport $user_port1 -s $server0 -j ACCEPT

 

 

Вот тут думаю нужно user_port2 заменить на user_port1, или user_port2 выставить 5555

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

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

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

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

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

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

Войти

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

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...