forum.bitel.ru http://forum.bitel.ru/ |
|
как послать reject из скрипта предобработки? http://forum.bitel.ru/viewtopic.php?f=5&t=3717 |
Страница 1 из 1 |
Автор: | snark [ 15 мар 2010, 19:44 ] |
Заголовок сообщения: | как послать reject из скрипта предобработки? |
принимая во внимание эту схему Код: запрос -> скрипт предобработки -> антиспам (блокировка) -> биллинг (проверка наличия логина/пароля, баланса и т.д.) -> штатный Reject-To-Accept -> скрипт аутентификации -> антиспам (сбор стстистики) -> ответ как можно сделать так чтобы при авторизации выполнить незамысловатую проверку и если логин не попадает под регексп - послать reject не доводя дальнейшие проверки до биллинга? т.е. сократить схему до такой: Код: запрос -> скрипт предобработки -> ответ пока получилось только так: Код: import bitel.billing.server.radius.*; import java.util.*; if (request.getPacketType() == RadiusPacket.AUTHENTICATION_REQUEST.intValue()) { login = request.getStringAttribute(RadiusStandartAttributes.User_Name); if (!login.matches("^foo|bar|baz$")) { request.setStringAttribute(RadiusStandartAttributes.User_Name, ""); } } т.е. при авторизации, если логин не попадает под шаблон обнуляем логин и биллинг радостно сообщает что такого договора нет, а в идеале хотелось бы так: Код: import bitel.billing.server.radius.*; import java.util.*; if (request.getPacketType() == RadiusPacket.AUTHENTICATION_REQUEST.intValue()) { login = request.getStringAttribute(RadiusStandartAttributes.User_Name); if (!login.matches("^foo|bar|baz$")) { тут создать пакет и послать RadiusPacket.AUTHENTICATION_REJECT; } } т.е. вообще исключить внутренние проверки (уменьшить цикл и снизить нагрузку), но что-то не выходит ![]() помогите, пожалуйста, или я хочу невозможного? |
Автор: | snark [ 19 мар 2010, 20:13 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
бамп |
Автор: | Администратор [ 23 мар 2010, 15:18 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
В данный момент этот функционал можно реализовать только описанным вами способом.. Чтобы полноценно реализовать, надо наверное сделать возможность установки опции специальной в запрос, типа того: http://www.bgbilling.ru/v5.0/doc/ch03s08s01.html И ошибку авторизации выдавать типа "Запрос отфильтрован". А зачем вам это, опишите.. Что за там запросы посторонние? |
Автор: | snark [ 23 мар 2010, 21:36 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
Администратор писал(а): В данный момент этот функционал можно реализовать только описанным вами способом. ок, так и будем делать ... Администратор писал(а): А зачем вам это, опишите.. Что за там запросы посторонние? дело в том что есть большая сеть в которой юзеры считают что "перезвон" в РРРоЕ соединении больше 1 секунды - это моветон, но даже не это основная проблема ... основная проблема в том что правильные логин и пароль никто в соедиение не вбивает и получается что из этой сети ежесекундно приходит толпа запросов на авторизацию вида: Код: 23 18:03:49 Type=AUTHENTICATION_REQUEST Attributes: User-Name=++++++++++ NAS-Identifier=mpd User-Password=---------- NAS-IP-Address=xxx.yyy.zzz.10 NAS-Port=374 Tunnel-Medium-Type= Service-Type=2 Tunnel-Client-Endpoint=00:21:85:ca:1c:ee Framed-Protocol=1 Acct-Session-Id=9356629-909-374 NAS-Port-Id=vlan909 NAS-Port-Type=15 Calling-Station-Id=002185ca1cee Called-Station-Id= mpd-link=909-374 23 18:03:49 Type=AUTHENTICATION_REJECT Process time auth: 6 common_auth: 1 Attributes: Reply-Message=14 нет Код: User-Name=++++++++++ User-Password=---------- это не опечатка и не скрытие реальных данных - это кто-то себе забил именно такой логин и пасс! оттуда приходит масса подобных логинов, которые, в лучшем случае, являются именем машины в сети, а обычно - звездочки, плюсики и т.п. ерунда ... пока в mpd нет PPPoE Connection Throttling, хотя может быть будет, то приходится терпеть эти все запросы ... да, в БГБ есть антиспам, но антиспам в данном случае - это как из пушки по воробьям, IMHO ... дело в том что у меня все логины запросто попадают под регексп и если бы была возможность прямо в скрипте предобработки проверить логин регекспом и послать reject не доводя дело до антиспама, то общая производительность БГБ выросла бы, т.к. не пришлось делать лишних проверок ... если позволите - выскажу маленький, совершенно мизерный, фичереквест - сделайте опцию в конфиге NAS-а Код: # тип разрешенных User-Name nas.allowed.username="<regexp>" и если User-Name не попадает под регексп (например в dialup - логин, в voip - телефон), то сразу слать reject, т.е. сведя все к схеме выше: Код: запрос -> скрипт предобработки -> ответ тогда антиспам будет обрадатывать только нужные запросы, например защищая радиус от атак на перебор пароля и не будет заниматься пустыми атрибутами или атрибутами содержащими, пардон, ерунду ... я полагаю у многих пользователей БГБ атрибут User-Name можно описать регекспом, как минимум таким Код: ^[A-Za-z0-9]+$ ну или таким Код: ^[\w\d]+$ что по сути одно и тоже ... ведь есть же список символов разрешенных в пароле (password.chars), так пусть будет список/регексп символов разрешенных в логине ![]() |
Автор: | Akhmat [ 23 мар 2010, 21:47 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
Поддерживаю, странные запросы авторизации со странными юзернеймами - весьма популярны и у меня |
Автор: | snark [ 25 мар 2010, 20:20 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
традиционный бамп |
Автор: | snark [ 02 апр 2010, 18:45 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
бамп |
Автор: | snark [ 07 апр 2010, 20:31 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
можно? нельзя? скажите хоть что нибудь, пожалуйста |
Автор: | Администратор [ 12 апр 2010, 12:42 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
Ну традиционно дописал в TODO, а там уж как время будет ![]() |
Автор: | Cromeshnic [ 29 апр 2010, 07:46 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
Цитата: nas.allowed.username="<regexp>" Тогда нужно эту же проверку сделать при заведении логина, чтобы нельзя было задать заведомо неправильный. |
Автор: | Cromeshnic [ 29 апр 2010, 08:53 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
Кстати, у меня не работает команда Код: ./radius.sh flush_script_cache http://bgbilling.ru/v5.0/doc/ch03s08s01.html Пока не перезагрузил радиус, новые скрипты предобрабоотки для NAS не применились. Код: version 5.0 build 265 from 31.03.2010 14:32:18
|
Автор: | snark [ 25 июн 2010, 21:34 ] |
Заголовок сообщения: | Re: как послать reject из скрипта предобработки? |
бампну ка я тему пока 5.1 не зарелизили ... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |