Биллинговая система Nodeny
22 Ноября 2024, 05:05:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3
1  Главная категория / Nodeny Plus / Re: freeradius 3 : 16 Июля 2020, 17:45:05
Покопался я в очередной раз с FreeRadius-ом версии 3 - голова болит, протрахался хз сколько часов, даже в исходники лез. И вот какие замечания:
3) Обнаружилось идиотское поведение freeradius3: он делает radcheck, затем radreply и потом проверяет пароль. Никуда не годится проверять пароль после того, как для учетки будет запрошен динамический ip, а в итоге выдан чужаку не будет. Поэтому пришлось проверять пароль и в radreply (добавлен параметр "пароль" - слава богу, он есть в параметрах радиуса)
да вроде у версии 2 такое же поведение:
Код:
[root@billing111 /home/ruhost]# radtest -x  -d /usr/local/etc/raddb2 test301 pass33 localhost 0 hardpass50
Sending Access-Request of id 54 to 127.0.0.1 port 1812
        User-Name = "test301"
        User-Password = "pass33"
        NAS-IP-Address = 172.17.0.121
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=54, length=38
        Framed-IP-Address = 172.16.67.10
        Framed-IP-Netmask = 255.255.255.255
        Framed-Protocol = PPP
        Framed-Protocol = PPP
[root@billing111 /home/ruhost]# radclient -v
radclient version 2.2.10, built on Jul 16 2020 at 15:25:36

исправить можно с помощью:
Код:
post-auth {
        sql
        Post-Auth-Type REJECT {
                attr_filter.access_reject
        }
}

результат:
Код:
[root@billing111 /home/ruhost]# radtest -x  -d /usr/local/etc/raddb2 test301 pass33 localhost 0 hardpass50
Sending Access-Request of id 76 to 127.0.0.1 port 1812
        User-Name = "test301"
        User-Password = "pass33"
        NAS-IP-Address = 172.17.0.121
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=76, length=20
вдогонку:
Код:
[root@billing111 /home/ruhost]# radtest -x  -d /usr/local/etc/raddb3 test301 pass33 localhost 0 hardpass50
Sent Access-Request Id 103 from 0.0.0.0:41137 to 127.0.0.1:1812 length 77
        User-Name = "test301"
        User-Password = "pass33"
        NAS-IP-Address = 172.17.0.121
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "pass33"
Received Access-Reject Id 103 from 127.0.0.1:1812 to 0.0.0.0:41137 length 20
(0) -: Expected Access-Accept got Access-Reject
[root@billing111 /home/ruhost]# radclient -v
radclient version 3.0.21, built on Jul 16 2020 at 19:06:45
2  Главная категория / Модули для Nodeny / Re: Модуль "Яндекс.Деньги" : 03 Сентября 2018, 13:34:22
Требуется доработка модуля для работы с яндекс.касса. Кто сможет и за какие деньги?
Описание php API: https://github.com/yandex-money/yandex-checkout-sdk-php
3  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 16 Ноября 2013, 10:12:32
Монит в любом случае дело хорошее, но бэкап я бы снимать начал без лока таблиц, есть же уже инструменты. скрипт с 5.0 кочует и кочует(( Пора уже посмотреть вокруг )
В данном скрипте таблицы не блокируются.
--add-locks - Surround each table dump with LOCK TABLES and UNLOCK TABLES statements. This results in faster inserts when the dump file is reloaded.
не тоже самое, что
--lock-tables - For each dumped database, lock all tables to be dumped before dumping them.
4  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 12 Ноября 2013, 12:59:59
У freeradius2 обнаружилась серьезная проблема, которой не было у freeradius1 - если запрос находится в очереди более 30 секунд, то freeradius2 делает
Код:
kernel: pid 1709 (radiusd), uid 133: exited on signal 11

В нашем случае все запросы обслуживаются через rlm_sql_mysql, и если mysql начинает по какой-то причине тормозить (загрузка дисков либо системы), то freeradius2 просто падает. В частности, "стандартный" скрипт бэкапа nodeny:
Код:
#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
passwd_root_mysql=`perl -e'require "/usr/local/nodeny/history.nod"; print $sql_root_pass;'`
mysql_cmd='/usr/local/bin/mysql'
mysqldump_cmd='/usr/local/bin/mysqldump'

fl=`date "+%d-%m-%Y"`
cd /var/backups/
echo show tables | ${mysql_cmd} -u root --password=${passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v 'traf_info' | grep -v '^Tables' | \
  xargs ${mysqldump_cmd} -R -Q --add-locks -u root --password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -j -f ${fl}.tar.bz2 bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 440 ${fl}.tar.bz2
который выполняется у нас в системе в течении 47 секунд, стабильно каждую ночь убивает freeradius2 со всеми вытекающими последствиями. freeradius1 сильно ругался при работе этого скрипта, но никогда не вываливался.

В качестве костыля поставил freeradius2 под мониторинг программкой monit с таймаутом в 30 секунд. Пользователи не успевают отвалиться ... Стоит хорошо подумать, нужен ли такой апгрейд.
5  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 10 Ноября 2013, 09:56:55
Хмм ... после установки freeradius2 по инструкции из документации N+ обнаружилась одна неприятная весчь:

freeradius2 умирает со следующей диагностикой
Код:
Sun Nov 10 03:01:38 2013 : Error: Received conflicting packet from client bras1 port 29096 - ID: 202 due to unfinished request 446707.  Giving up on old request.
Sun Nov 10 03:01:38 2013 : Error: Received conflicting packet from client bras1 port 23768 - ID: 113 due to unfinished request 446708.  Giving up on old request.
Sun Nov 10 03:01:38 2013 : Error: Received conflicting packet from client bras1 port 57671 - ID: 69 due to unfinished request 446709.  Giving up on old request.
Nov 10 03:01:38 billing kernel: pid 50337 (radiusd), uid 133: exited on signal 10
радиус падает, перестают идти keepalive'ы, и все становятся неавторизованными. Сразу же начинают звонить юзеры и дружно желать "доброго утра".
Хотя я использую версию 50.33, но проблема-то, видимо, общая. До этого freeradius1 с такой диагностикой никогда не падал. Вопрос: чего подкручивать? 8.3-RELEASE-p7 amd64, серверное железо, в логах больше ничего. Да, еще, в 03:01 запускается стандартный periodic daily
Код:
ls /etc/periodic/daily/                 
100.clean-disks         150.clean-hoststat      310.accounting          406.status-gmirror      430.status-rwho         480.status-ntpd
110.clean-tmps          200.backup-passwd       330.news                407.status-graid3       440.status-mailq        500.queuerun
120.clean-preserve      210.backup-aliases      400.status-disks        408.status-gstripe      450.status-security     800.scrub-zfs
130.clean-msgs          220.backup-pkgdb        404.status-zfs          409.status-gconcat      460.status-mail-rejects 999.local
140.clean-rwho          300.calendar            405.status-ata-raid     420.status-network      470.status-named

6  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 08 Ноября 2013, 16:36:50
Сегодня обновил радиус на 2ю версию в своей бывшей сети. Обновил документацию:

https://app.nodeny-plus.com.ua/docs/work/mpd5.html

Обратите внимание, что для сокращения операций, я не стал описывать редактирование пары файлов, а просто залил их в репозиторий NoDeny (обновитесь).

Есть один нюанс, в котором я не разобрался: в конфиге не воспринимает %{SQL-User-Name}, пришлось внести %{User-Name}, а это не безопасно. Подскажите, где что подправить
sql.conf:
Код:
       #######################################################################
        #  Query config:  Username
        #######################################################################
        # This is the username that will get substituted, escaped, and added
        # as attribute 'SQL-User-Name'.  '%{SQL-User-Name}' should be used below
        # everywhere a username substitution is needed so you you can be sure
        # the username passed from the client is escaped properly.
        #
        #  Uncomment the next line, if you want the sql_user_name to mean:
        #
        #    Use Stripped-User-Name, if it's there.
        #    Else use User-Name, if it's there,
        #    Else use hard-coded string "DEFAULT" as the user name.
        #sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}"
        #
        sql_user_name = "%{User-Name}"
7  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 08 Ноября 2013, 15:49:43
Да, 50-я версия, переход на 2-й радиус с первого раза не получился. Быстро откатился назад, пока все пользователи не отвалились.
Может шпион, а может и нет ... вот коплю деньги на оплату работы по апгрейду на N+.
8  Главная категория / Nodeny Plus / Re: freeradius теперь нет в портах : 08 Ноября 2013, 14:05:16
Сегодня обновил радиус на 2ю версию в своей бывшей сети. Обновил документацию:

https://app.nodeny-plus.com.ua/docs/work/mpd5.html

Обратите внимание, что для сокращения операций, я не стал описывать редактирование пары файлов, а просто залил их в репозиторий NoDeny (обновитесь).

Есть один нюанс, в котором я не разобрался: в конфиге не воспринимает %{SQL-User-Name}, пришлось внести %{User-Name}, а это не безопасно. Подскажите, где что подправить

А как скачать файлы конфигурации freeradius2 без самой нодени? :-)
9  Главная категория / Курилка / Re: freeradius 1.x --> freeradius 2.x : 19 Февраля 2013, 12:42:07

счастье не придёт - потеряются все процедуры.

Чтобы в дамп попали хранимые процедуры и функции, нужно добавить ключ -R
))
спасибо за подсказку!
10  Главная категория / Курилка / Re: freeradius 1.x --> freeradius 2.x : 19 Февраля 2013, 12:07:51
разверни на стенде, радтестом и отладкой погоняй )
база данных под 60 гигабайт. только бэкап и перенос в VM займет больше суток. лениво  Плачущий

Ой, да ладно.... там шлак один в этих гигабайтах. Выполни бэкап прилагающимся скриптом только нужные таблицы и увидишь что все гораздо скромнее. Дамп получится маленький. Потом на свежеустановленную базу накатываешь этот дамп и счастье сразу приходит )

счастье не придёт - потеряются все процедуры.
11  Главная категория / Курилка / Re: freeradius 1.x --> freeradius 2.x : 19 Февраля 2013, 12:05:44
зачем бд переносить?
в ней много самописных процедур для радиус-авторизации и аккаунтинга. разораться как это работает пока не представляется возможным.
вообще странно, судя по ответам никто толком не разбирался с freeradius2. может и правда, забить? удалить из пакетов регистрацию freeradius, чтобы portupgrade не ругался ... В замешательстве
12  Главная категория / Курилка / Re: freeradius 1.x --> freeradius 2.x : 19 Февраля 2013, 11:03:11
разверни на стенде, радтестом и отладкой погоняй )
база данных под 60 гигабайт. только бэкап и перенос в VM займет больше суток. лениво  Плачущий
13  Главная категория / Курилка / freeradius 1.x --> freeradius 2.x : 19 Февраля 2013, 10:08:04
тут недавно окончательно удалили freeradius 1.x из портов freebsd. надо переходить на freeradius2, но есть сомнения по поводу соместимости со старыми конфигами и nodeny в целом. где-то в мануале по установке биллинга (если не ошибаюсь) было сказано, что на тот момент (примерно 2009 год) использовать freeradius2 не рекомендуется. делал ли кто-нибудь апгрейд на живой системе и какие были подводные камни? заранее спасибо.
14  Главная категория / Модули для Nodeny / Re: Модуль перенаправления клиента : 28 Апреля 2012, 08:04:22
с переходом на FreeBSD 9 и perl 5.12.4 перестало работать
Код:
Can't call method "prepare" without a package or object reference at ./nomessage.pl line 94.
 at ./nomessage.pl line 94
        main::Form_Config called at ./nomessage.pl line 353
15  Главная категория / Nodeny 50 / Re: второй сателлит : 25 Апреля 2012, 15:33:15
Всем спасибо за ответы. А к разработчику просьба - исправить документацию биллинга по этой теме.
Страниц: [1] 2 3
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!