Jump to content
Калькуляторы

Freeradius - ограничить кол-во неудачных попыток авторизации Возможно ли?

Возможно ли ограничить кол-во неудачных попыток авторизации в минуту во freeradius 1.1.8?

Например, клиент заблокирован, у него установлен роутер, который каждые 3-4 секунды отправляет запрос на авторизацию.

При этом радиус каждый раз дёргает MySQL. Если таких клиентов много, системе становится грустно..

Хотелка такая - например, 10 неудачных попыток авторизации в минуту - "бан" на 30 мин.

"Бан" - это в течении 30 мин. давать отлуп забаненой связке логин/пароль "на входе", лучше бы даже непосредственно на NAS-е (mpd5), ну или хотя бы не обращаясь к базе данных.

Реально?

Share this post


Link to post
Share on other sites

Возможно ли ограничить кол-во неудачных попыток авторизации в минуту во freeradius 1.1.8?

Например, клиент заблокирован, у него установлен роутер, который каждые 3-4 секунды отправляет запрос на авторизацию.

При этом радиус каждый раз дёргает MySQL. Если таких клиентов много, системе становится грустно..

Хотелка такая - например, 10 неудачных попыток авторизации в минуту - "бан" на 30 мин.

"Бан" - это в течении 30 мин. давать отлуп забаненой связке логин/пароль "на входе", лучше бы даже непосредственно на NAS-е (mpd5), ну или хотя бы не обращаясь к базе данных.

Реально?

МуSQL маньяки разгоняли до десятков тысяч запросов в секунду. У вас такие серьезные потребности?

Может быть просто MySQL потюнить? Проверить, что там вообще, почему спотыкается, память добавить, количество сетевых соединений, индексы проверить, еще что...

Share this post


Link to post
Share on other sites

Мне кажется, начать с разгона query cache в MySQL.

Можно еще rlm_cache навесить на Reject-ы.

 

О, гениальные варианты:

1) Навесить на mpd5 fail2ban, банить PPTP/PPPoE/чтотамувас.

2) Отвечать вместо Reject-а Accept-ом с левым IP и, скажем, максимальным временем сессии 10 минут.

Share this post


Link to post
Share on other sites

Мне кажется, начать с разгона query cache в MySQL.

MySQL "разогнан". Дело не конкретно в нём. Проблема в кривом древнем модуле радиуса (rlm_nibs).

В нём автор конкретно накосячил в плане работы с базой.

В результате процесс radius-а в определённые моменты начинает жрать память, не освобождая её, распухая до неимоверных размеров.

В итоге он переползает в своп, съедает его, ну а дальше - аварийный останов в самое неподходящее время..

Ошибки кое-где удалось найти и исправить, результат есть, но полной уверенности нет.

Поэтому и появилась "хотелка" дополнительно подстраховаться проверенными средствами самого радиуса.

Можно еще rlm_cache навесить на Reject-ы.

Каким образом, и что это даст??

 

О, гениальные варианты:

1) Навесить на mpd5 fail2ban, банить PPTP/PPPoE/чтотамувас.

Гм.. ИМХО, чушь какая-то. Учитывая, что в большинстве своём используется PPPoE.

2) Отвечать вместо Reject-а Accept-ом с левым IP и, скажем, максимальным временем сессии 10 минут.

Собственно уже реализовано, но не совсем устраивает. Особенно для тех клиентов, которые "позабыли" выключить роутер три-четыре месяца тому назад.

Share this post


Link to post
Share on other sites
Учитывая, что в большинстве своём используется PPPoE.

А если попробовать подумать в сторону ebtables.

Не использовал его, но если им можно отлимитировать 0x8863 кадры, по типу модуля xt_recent,

и допустим банить на 30 минут такой мак.

Share this post


Link to post
Share on other sites

rlm_cache будет сразу давать отлуп, не вызывая rlm_nibs.

Собственно уже реализовано, но не совсем устраивает. Особенно для тех клиентов, которые "позабыли" выключить роутер три-четыре месяца тому назад.

Ну так выдавайте с Max-Session-Time минут на 30. Будет спрашивать авторизацию раз в 30 минут.

В чем проблема с роутерами?

Share this post


Link to post
Share on other sites

Не заметил относительно Access-Accept для заблоченных, так если оно реализовано то в чём проблема,

пусть висят себе с серыми айпишниками.

Наваять скрипт рядом который будет проходится по условиям в базе, и при поступлении платежа или ещё чего

килять сессию, чтобы реконнектнулся с нормальным ip.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this