Перейти к содержимому
Калькуляторы

Targ

Новичок
  • Публикации

    5
  • Зарегистрирован

  • Посещение

О Targ

  • Звание
    Абитуриент
    Абитуриент
  1. так вы не удалили из конфига "set radius config /usr/local/etc/mpd5/radius.conf" что ли? Удалили конечно. 2snark Попробуем сегодня, отпишусь..
  2. а зачем такие странные значения таймаута и повторов (1812 1813)? насколько необходима опция "set radius enable message-authentic"? если нужды нет - попробуйте отключить. "прописать: set radius server X.X.X.X oursecret 1812 1813" - сделали. message-authentic - отключили в обоих конфигах. Результат - все те же проблемы. Куда копать-ковырять вообще непонятно. Интуитивные подозрения на radiusd.conf (см. первый пост)...
  3. root@nas2:/usr/local/etc/mpd5 # cat radius.conf auth X.X.X.X:1812 oursecret 1812 1813 acct X.X.X.X:1813 oursecret 1812 1813
  4. Доброго времени суток! Прошу помощи у гуру... руки уже опускаются =(. Вкратце о проблеме: Имеем UTM5+freeradius+MySQL, MPD5 c PPPoE. Возникла задача реализовать авторизацию абонентов с отрицательным балансом с редиректом на страницу "Денег хотим", адекватную динамическую раздачу белых и серых адресов. Было принято решение перейти со штатного радиуса UTM на freeradius. При тестовых испытаниях при 200-300 авторизованных фрирадиусом абонентов было обнаружено, что часть (процентов 30-40) Accounting-Request пакетов не обрабатываются фрирадиусом. В итоге имеем подвисшие сессии в биллинге. При анализе пакетов с помощью tcpdump обнаружили, что какое-то время по конкретному абоненту от NAS`a фрирадиусу приходят alive пакеты. Фрирадиус обрабатывает их корректно, обновляет необходимые таблицы биллинга. Через какое-то время фрирадиус начинает дропать эти пакеты с ошибкой: Received Accounting-Request packet from client X.X.X.X with invalid signature! (Shared secret is incorrect.) Dropping packet without response. При чем в биллинге наблюдаем что часть сессий обрабатывается корректно вплоть до закрытия сессии абонентом. ---------------------------------------------------------------------------------------------- Версии софта и OS: Биллинг: root@balrog:~# uname -a Linux balrog 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013 i686 i686 i386 GNU/Linux root@balrog:~# radiusd -v radiusd: FreeRADIUS Version 2.2.0, for host i686-pc-linux-gnu, built on May 15 2013 at 11:17:56 Copyright (C) 1999-2011 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License. For more information about these matters, see the file named COPYRIGHT. NAS: root@nas2:/root # uname -a FreeBSD nas2 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 root@nas2:/root # mpd5 -version Version 5.6 (root@nas2 15:56 15-Mar-2013) Логи radiusd -X в момент дропа: rad_recv: Accounting-Request packet from host X.X.X.X port 22738, id=110, length=415 Cleaning up request 8637 ID 110 with timestamp +191 Received Accounting-Request packet from client X.X.X.X with invalid signature! (Shared secret is incorrect.) Dropping packet without response. Going to the next request Waking up in 0.1 seconds. radmin: root@balrog:/var/log/freeradius# radmin -e "stats client acct" requests 1854858 responses 129466 dup 0 invalid 1303 malformed 0 bad_signature 1715581 dropped 8482 unknown_types 0 tcpdump говорит, что ВСЕ(!!) пакеты Accounting-Response, которые уходят с фрирадиуса на MPD, имеют неверную контрольную сумму: root@balrog:~# tcpdump -vvv -i eth0 port 1812 or 1813 .... .... 09:47:12.297459 IP (tos 0x0, ttl 64, id 54854, offset 0, flags [none], proto UDP (17), length 48) balrog.radius-acct > X.X.X.X.17342: [bad udp cksum 0x9682 -> 0xb61b!] RADIUS, length: 20 Accounting Response (5), id: 0x3b, Authenticator: b955337e7bcf474fc833ee9cd8d3238c .... На биллинге живет iptables, который не смотрит на этот интерфейс (eth0). Конфиг фрирадиуса: root@balrog:~# cat /etc/freeradius/radiusd.conf | grep -v '#' prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = /var/log/freeradius raddbdir = /etc/freeradius radacctdir = ${logdir}/radacct name = freeradius confdir = ${raddbdir} run_dir = ${localstatedir}/run/${name} db_dir = ${raddbdir} libdir = /usr/lib/freeradius pidfile = ${run_dir}/${name}.pid user = freerad group = freerad max_request_time = 60 cleanup_delay = 8 max_requests = 10000 listen { type = auth ipaddr = * port = 1812 } listen { ipaddr = * port = 1813 type = acct } hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes log { destination = files file = ${logdir}/radius.log syslog_facility = daemon stripped_names = no auth = no auth_badpass = yes auth_goodpass = yes } checkrad = ${sbindir}/checkrad security { max_attributes = 200 reject_delay = 1 status_server = yes } proxy_requests = no $INCLUDE proxy.conf $INCLUDE clients.conf thread pool { start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 10 max_requests_per_server = 0 } modules { $INCLUDE ${confdir}/modules/ $INCLUDE eap.conf $INCLUDE sql.conf } instantiate { exec expr expiration logintime } $INCLUDE policy.conf $INCLUDE sites-enabled/ Модуль radutmp не используется и отключен. DEFAULT фрирадиуса: root@balrog:~# cat /etc/freeradius/sites-enabled/default | grep -v '#' authorize { preprocess update control { Pool-Name = 'dynamic' } chap mschap digest suffix eap { ok = return } sql expiration logintime pap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } digest eap } preacct { preprocess acct_unique suffix } accounting { detail sql } session { sql } post-auth { } pre-proxy { } post-proxy { eap } Секция radius конфига mpd: root@nas2:/root # cat /usr/local/etc/mpd5/mpd.conf ........ ........ radius: set radius config /usr/local/etc/mpd5/radius.conf set radius retries 5 set radius timeout 15 set radius me X.X.X.X set radius identifier nas2 set auth acct-update 60 set auth enable radius-auth set auth enable radius-acct set radius enable message-authentic Первоначально использовали версию фрирадиуса 2.1 на котором были те же грабли. Буду очень благодарен за любую помощь!