Рассмотрим как настроить радиус-сервер с привязкой к базе данных в MySQL на примере CentOS, FreeRadius и MySQL.Сейчас очень многие устрйства поддерживают работу через Radius, например точки доступа Wi-Fi.
Устанавливаем MySQL, если он конечно у Вас уже не стоит
yum install mysql mysql-devel mysql-server
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startnetstat -tap | grep mysql
получаем:
netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2793/mysqld
установим пароль для пользователя root для MySQL:
mysqladmin -u root password 123456
Устанавливаем FreeRadius
yum install freeradius freeradius-mysql
Правим файл /etc/raddb/users, добавляем:
shad Auth-Type := Local, User-Password == "test"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 192.168.0.7,
Framed-IP-Netmask = 255.255.255.0,правим /etc/raddb/clients.conf
раздел client 127.0.0.1 должен выглядеть вот так:client 127.0.0.1 {
secret = 123
shortname = localhost
nastype = other
}проверяем:
radiusd -X
на другой консоли
radtest shad test localhost 1812 123
получаем:
Sending Access-Request of id 35 to 127.0.0.1 port 1812
User-Name = "shad"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=35, length=44
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 192.168.0.7
Framed-IP-Netmask = 255.255.255.0Радиус работает и отвечает
перейдем к настройкам MySQL
mysql -u root -p
mysql>CREATE DATABASE radius;
mysql>GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "123";
mysql>\qmysql -u root -p radius </usr/share/doc/freeradius-1.1.3/examples/mysql.sql
проверяем:
mysql -u root -p
mysql>use database radius;
mysql>show tables;
mysql>\qправим /etc/raddb/sql.conf, раскомментируем
readclients = yes
правим /etc/raddb/radiusd.conf
в секциях authorize{}, authorize{}, session{}, post-auth{} раскомментируемsql
получиться примерно так:
authorize {
preprocess
chap
mschap
suffix
eap
sql
pap
}Заполним базу в MySQL:
mysql -u root -p
mysql> use database radius;
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('testsql', 'Password', 'test123');проверяем:
mysql> select * from radcheck where UserName='testsql';
mysql>\qправим /etc/raddb/sql.conf
выставляем правильные значения:server = "localhost"
login = "radius"
password = "123"
radius_db = "radius"в файле /etc/raddb/users комментируем строки
#DEFAULT Auth-Type = System
# Fall-Through = 1запускаем radiusd -X
на другой консолиradtest testsql test123 localhost 1812 123
если получили Access-Accept, то всё в порядке, связка FreeRadius+MySQL работает,
теперь можете заполнять таблицы DB нужными значениями и использовать в своих устройствах авторизации
через ваш радиус, для этого IP устройства надо добавить в /etc/raddb/clients.conf, примерно так:client 192.168.0.55 {
secret = MysUp3rseCr3t
shortname = my_device_name
nastype = other
}Удачной работы!!!
URL: http://wiki.dodex.org/?p=549
Обсуждается: http://www.opennet.me/tips/info/2133.shtml
бесполезная статья, на офицальном сайте проекта freeradius достаточно материалов и примеров.
Конечно, статья это труд, время, но автор лишь демонстрирует поверхностные представления о работе сервиса ААА, таких статей и how-to более чем предостаточно, администратору/инженеру в большей степени интересны более редкостные особенности конфигурации нежели описывание установки, мне например не понятно зачем приводить команды для пакетного манеджера ОС, если речь в статье идет о конфигурации RADIUS и хранилища MySQL, ведь можно предположить, что читающий вероятно всеже знаком с базовыми функциями работы ОС и способен установить необходимое ПО самостоятельно...
впринципе ты прав, но у подобных заметок есть свое назначение - показать человеку какие есть технологии и как их использовать. Не все же рождаются с зашитыми в мозги знаниями о радиусе и его настройке.
А при чем тут зашитые в моск знания, для примера
>Правим файл /etc/raddb/users, добавляем:
>
> shad Auth-Type := Local, User-Password == "test"
> Service-Type = Framed-User,
> Framed-Protocol = PPP,
> Framed-IP-Address = 192.168.0.7,
> Framed-IP-Netmask = 255.255.255.0,Вот это зачем? Зачем это пихать в users если ставим радиус с mysql? не проще это прописать каждому юзверю отдельно или создать там группу в которую будет входить этот юзверь? Так что тут реально, заметка, как пользоваться пакетным менеджером, чего надо поставить и все. Дальше все равно придется читать доку с сайта производителя.
Платформе нужны свои популяризаторы. Подобные статьи как раз и заполняют эту нишу.
Я помню был на семинаре по ОпенСорс, так там мужик на сцене показывал как буквально за сорок минут получить полностью готовую корпоративную систему с нуля на обычном ноуте. Сейчас то я понимаю, что многое он делал не так. Но эффект на аудиторию, надо сказать, подобная демонстрация возможностей производит взрывной. Народец сразу повеселел, заёрзал задницами в нетерпении, глаза загорелись.
Статья была написана как раз для того чтоб дать начальные понятия. Это заметка совсем не для гуру.
И я надеюсь, что статья все-таки найдет своего читателя.
начальные понятия новичкам? Хммм, хорошо!
А что такое yum? Почему-то когда я набираю эту команду, мне система пишет что такого не знает ...
>начальные понятия новичкам? Хммм, хорошо!
>А что такое yum? Почему-то когда я набираю эту команду, мне система
>пишет что такого не знает ...потому что у Вас не всё с головой в порядке. если б внимательно почитали, поняли б.
бинго! Вот автор и слился ...
у читателя его статьи "не всё с головой в порядке" значит ... А писать специфичные для конкретной ОС вещи в статье "для новичков" (по словам автора) и вообще никак не снабжать их пояснениями это конечно "все в порядке"? Или у нас Радиус только на Центосе существует?
видать и с глазами не очень :(
на примере CentOS, FreeRadius и MySQL.
>видать и с глазами не очень :(
>
>на примере CentOS, FreeRadius и MySQL.
>да да да! У всех критиков проблемы с головой, глазами и вообще. Один ты д'Артаньян :)
Отличная статья.
даетпо верхностное представление о продукте.
мне нужен был пример простой конфигшурации, неотягощенной наворотами.
автору спасибо
А под заведение пользователей в базу радиуса можно использовать какой-то готовый веб-интерфейс? Чисто вбивать руками в базу - уже не по фэншую как то.
daloradius
>бесполезная статья, такого в инете валом !!!
>Разви что для новичка чото полезным будет.
>Как с меня копи пастну так дайте ссылку на Ваше.
1.зачем было этот мой пост удалять ?
Твой совет с советами ничего общего не имеет, это статья надо было её в статьи закинуть !!! и не парить мозги себе и другим.
2.Если для новичков статья так будь добр объясни новичку что такое CentOS и тд
а не говори что у него что-то не так с головой...
3.Потрудился на славу... видно работы много проделал только в том виде в котором есть статья для профи не интересно, а для новичка не понятно...
http://www.google.az/search?q=freeradius+mysql&ie=utf-8&oe=u...вот покажите мне что-то подобное и внятное на русском.
или может там просто ваше не находиться никак?
Почему же. Мое нашлось, вторая ссылка сверху :)
---------
Правда это не я говорил про копи паст
вот один из твоих комментов:
>>>
>>>Для установки:
>>>% cd /usr/ports/databases/postgresql82-server/
>>>% make install
>>
>>А можно пожалуста попдробней как пропатчить postgres для 1С? Что это за
>>файл postgresql-8.2.4-6.1C.src.rpm?
>
>Этот постгрес как раз для 1эс, если ставить к примеру на федору,
>то патчить не надоА когда я скачиваю postgresql-8.2.4-6.1C.src.rpm то он на самом деле скачивается с расширением postgresql-8.2.4-6.1C.src.srm почему так? Последние .src надо просто переименовать в .rpm?
долго ржал.
>[оверквотинг удален]
>>
>>Этот постгрес как раз для 1эс, если ставить к примеру на федору,
>>то патчить не надо
>
>А когда я скачиваю postgresql-8.2.4-6.1C.src.rpm то он на самом деле скачивается с
>расширением postgresql-8.2.4-6.1C.src.srm почему так? Последние .src надо просто переименовать в .rpm?
>
>
я ещё больше ржал так как это не моё :))))
Хотя новичку в самый раз я б сказал.
Тока тогда название статьи нада поменять на чото типа "FreeRadius и MySQL для новичка".
Вот я полный ламер в этом вопросе. Думаю этим вопросом занятся. Такую инструкцию я скорее всего написал бы, если бы у меня всё получилось.
Товарищи прошаренные, укажите пожалуйста чего тут не хватает, а что - не так. Ибо я как начинающий мож завтра начну по этой интрукции реализовывать, а если что не пойдёт - могу узнать только что это -"бесполезная статья". Мож тут какая специфика есть?
Самое интересное, что из зарегистрированных отписавшихся, 90%, пишут, просто потому что пишут - ибо достаточно посмотреть их комменты в других постах.
Ни чего дельного, не вижу конкретной критики.
>Самое интересное, что из зарегистрированных отписавшихся, 90%, пишут, просто потому что пишут
>- ибо достаточно посмотреть их комменты в других постах.
>Ни чего дельного, не вижу конкретной критики.НУ, давайте начнем с малого :)
>запускаем radiusd -X
>на другой консоливы каждый раз при загрузке будите запускать радиус вручную?
раз статья для новичков, значит надо описать как его в автозагрузку поставить.
В линуксе, в отличии от BSD, он запускается сервисом, а запускаем ручками с параметром -X для отладки, чтоб прям в консоли видеть сообщения.
А я про что и говорю. Что необходимо добавить как сделать автозагрузку, это же не сводится к простому добавления строки к текстовому файлу. И добавить уточнение что мы сейчас (в данный момент) запускаем радиус с ключом полного дебага для отладки нашей настройки и проверки работы.
добавить в автозагрузку
# chkconfig --level 235 radiusd onвозможно правда на Вашей стороне, не спорю.
Поправить в самой статье ляп
>правим /etc/raddb/radiusd.conf
>в секциях authorize{}, authorize{}, session{}, post-auth{} раскомментируемВидать имелось в виду
>authorize{},authenticate {}-----------
dj поводу создания пользователя от которого работает сервер радиуса с sql. Опять же. Если мы говорим про статью для новичков. Надо их с младенчества приучать к нормальному стремлению к безопасности. НЕ следует ему давать Grant all если в таком нету необходимости. Там в большей части надо только select, всего на несколько таблиц надо insert и update
-----------
Так же все же рекомендую указать полные версии продуктов. ОС вы указали, а вот версию mysql нет, и где-то в середине можно сделать вывод, что версия FreeRadius-1.1.3 то есть по сути раритет. На данный момент актуальная версия 1.1.7. Это просто как уточнение. Так как проект все же развивается. И в конфигурационные файлы вносятся изменения. Что бы начинающему человеку было понятно на чем это делается. Чтоб не задавался вопрос по чему у меня такого файла нету в системе.
на данный момент и 1.1.7 раритет, смотрите в сторону двойки, НО... писалось о том что сейчас в репозитарии CentOS.
Еще раз говорю, речь идет о конкретном дистрбюдиве, ибо даже в Дебиан уже файлы настройки имеют другое расположение.
ну, про 1.1.7 я не соглашусь, что это раритет. Но 1.1.3 это точно. про ОС я сказал что вы ее упоминали, а вот про версии остального софта нет. Про 2.x версию знаем, и успешно использует. :)
-------------
Вы видать в попыхах не дочитали до конца мой пост.
да , действительно оЧепятка, имелось ввиду authorize{},accounting{}, session{}, post-auth{}
а authenticate {} вообще не имеет sql.
По поводу прав, понимаю "что ни есть хорошо", однако, потом и биллинг подключаеться с теми же параметрами.
А вот "приучать" точно не надо, ибо каждый сам по себе.Если б вы обратили внимание на источник, то Вам было б проще понять.
В свое время, настраивая что-то никогда не удосуживался делать заметки, со временем это пришло, локальных заметок куча. Однажды мой хороший товаришь, открыв блог, попросил меня постить туда свои заметки, и иногда, когда есть время и желание, перебирая старое и воспроизведя это на новом, я делаю эти заметки. Обратив внимание на то, что на опеннет нет внятной заметки по радиусу, я просто предложил к публикации, то что есть у меня.
Разве Вам кто-то мешает сделать подобное?
Я не хочу нарываться на грубость, но поверьте мне, именно такие заметки, лет 6-7 назад принесли мне несравненную пользу и облегчение. Я не предложил сюда ни одной статьи по VPN (имеющиюся в том блоге), хотя именно на этом и специализировался. Недавно дав поиск и попав на опеннет по радиусу, не обнаружил что-либо внятного (повторяюсь) под RH. Решил сделать свой маленький вклад.
И что же получилось?
куча недосисадминов тут запостили просто - никчемная статья и т.д., остальные принялись критиковать жестоко - я не против... НО... во что это всё выльется?
надеюсь Вы и сами вполне способны сделать выводы.
Для меня опеннет очень уважаемый ресурс (не в пример некоторым), ибо, когда-то, я здесь подчерпнул огромное количество информации.
Неужели Вы предлагаете все держать в себе (на своих локальных ресурсах)?
Что конкретно Вам не нравиться в ПРАВДЕ, если учесть текущий дистрибютив, который указан, и сообветственно его пакеты с текущей версией, неужели у кого-то не заработало то что я написал?
или мне сразу повиниться и дать слово что больше никогда не предложу для публикации посты на опеннет?
Не подходите к моим комментариям так жестко. Я сам столкнулся с такой проблемой, что все лежит локально. А самое страшное, что это еще и теряется со временем. По этому я так же завел себе блог и публикую туда все свои наработки которые делаю во время рабочего процесса. Я не в коей мере не хотел вас упрекнуть или заставить более не писать статей или how-to. Я старался отвести вас от тех граблей на которые как-то сам наступил и их удар мне очень не понравился. А грабли заключались в том, что в своей заметке не указал версии используемых продуктов. Время шло, программы описанные в моей статье развивались. Однажды ко мне в аську постучался человек и попросил помощи по настройке программ описанных в моей статье. Я взялся помочь. Было потрачено некоторое кол-во времени. И в итоге выяснилось, что человек не подумав и погнавшись за последним софтом поставил все из dev ветки программного продукта. Не найдя списка используемых мной версий ПО он подумал что данная статья подойдет и к dev ветке.
---------------
Так вот, к чему я клону. Указать полные версии ПО является по крайней мере для меня хорошим тоном. В последствии снимающих ряд проблем. Вы же сами понимаете что из-за вашей заметки репозиторий CentOS не заморозят, а так же продолжат обновлять. А теперь представьте, что пользователь найдет через 3 года вашу заметку и у него ни чего не заработает, так как например рекомендованной версией станет 2.x. А там вы я думаю сами заметили что конфигурация очень сильно изменилась.
---------------
Так что не принимайте близко к сердцу мою критику. Все нормально. Любой человеческий труд имеет право на жизнь. В вашем блоге я побывал, почитал ваши заметки по VPN. Я свои подобные задачи решаю через другой продукт. По этому просто добавил в закладки чтоб следить за обновлениями. Я же то же не идеал истины. Но мое мнение в статье надо закладывать максимум информации чтоб через 2-3 года было понятно на чем это делалось.
А по поводу комментариев. Я сам люблю жесткую критику в свою сторону. :) А возгласы, что это ни кому не надо или зачем оно если есть вот это пропускаю мимо ушей. Пример со статьей по настройке qmail из портов расставил все точки над i
ответте пожалуста - пишу диплом на тему freeradius мне не понятно следуещее:
при правке файла users
не понятно - 192.168.0.7 - это чей айпишник ?
сервера где установлен фри радиус ?
каммутатора ? к которому подключен фри радиус сервер ?
или клиентской машины которая пытается получить аккаунтинг у фри радиуса сервера?
127.0.0.1 - и этот тоже чей ? локал хостовский может быть63
>В линуксе, в отличии от BSD, он запускается сервисом, а запускаем ручками
>с параметром -X для отладки, чтоб прям в консоли видеть сообщения.
>FreeBSD:
echo 'radiusd_enable="YES"' >> /etc/rc.conf
Все, дальше стартует демоном на загрузке системы. А статья - говно, и хороший пример, как делать нельзя.
Значительно больше лулзов можно почерпнуть с abills.net.ua и его форума. Ну, и не забываем сайт фрирадиуса, over 9000 примеров.
Оставляем HollyWar и прозимуем наш профессиональный праздник!
флуд-детекнш
прпи правке файла users
не понятно - 192.168.0.7 - это чей айпишник ?
сервера где установлен фри радиус ?
каммутатора ? к которому подключен сервер ?
или клиентской машины которая пытается получить аккаунтинг ?
> прпи правке файла users
> не понятно - 192.168.0.7 - это чей айпишник ?
> сервера где установлен фри радиус ?
> каммутатора ? к которому подключен сервер ?
> или клиентской машины которая пытается получить аккаунтинг ?ну совсем ппц... IP-шник который будет получен клиентом.
спасибо что ответили
еще вопрос - на каком дистрибутиве это все настраивали ?
на ubuntu 12.04 i386 - это не работает
и я так понял после этого прописываеш на роутере ip адрес радиус сервера + секрет и можно получать авторизацию для выхода в иннет ?
с бд неразобрался как это и в какой последовательности надо вводить-
mysql -u root -p radius </usr/share/doc/freeradius-1.1.3/examples/mysql.sql
дошел до -проверяем:
radiusd -X
на другой консоли
radtest shad test localhost 1812 123
кстати входить в режим отладки отказывался войти писал- /etc/freeradius/radiusd.conf[240]: Error binding to port for 0.0.0.0 port 1812
после команды /etc/init.d/freeradius stop
а затем radiusd -X вроде вошел ,написал-
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
Listening on proxy address * port 1814
Ready to process requests.
нажал cntr+alt+t вызвал другой терминал -там написал- radtest shad test localhost 1812 123
а в ответ получил -
Sending Access-Request of id 28 to 127.0.0.1 port 1812
User-Name = "shad"
User-Password = "test"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=28, length=20
root@alex-desktop:~#
не хватает вот этих строк-
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 192.168.0.7
Framed-IP-Netmask = 255.255.255.0
все делал по вашей инструкции может вы ошиблись гдето ?