From: Abigor <abigor@isea.ru.>
Date: Mon, 27 Apr 2009 14:31:37 +0000 (UTC)
Subject: Настройке mpd5 в связке с FreeRadius2 и MySQL во FreeBSD
Оригинал: http://inetzlo.ru/2009/04/24/mpd5-freeradius2-mysql/
Когда-то в далеком 2007 году я разместил статью, о настройки связки
mpd + freeradius + mysql на сайте комрада lissyara. Время шло,
все работало отлично, выполняло весь необходимый мне функционал.
Недавно потребовалось перенести эту связку на новый более мощный
сервер. Решено было использовать последние версии используемых
продуктов. mpd5 и freeradius2. Данные программные продукты очень
изменили свой функционал и конфигурационные файлы, из-за этого я решил
сделать набросок статьи. О том как это все дело заставить работать
вмести :).
Сразу хочу оговорить, я не буду писать о том, что надо открыть этот
конфигурационный файл, найти какую-то строчку и поменять на другое
значение. Мне это не надо, мне просто необходима заметка, что надо
сделать, чтоб не забыть :) По этому я просто приведу diff разницу
между исходным конфигурационным файлом и целевым.
Начнем. Вот информация о системе на которой это все делалось:
Порты были обновлены до актуальной версии на день написания статьи
через csup.
Рассказывать как ставить mysql я не буду, описание данного процесса
можно найти на сайте lissyara. По этому сразу перейдем к установки
mpd5.
[root@bender /]# make -C /usr/ports/net/mpd5 install clean
===> Found saved configuration for mpd-5.3
===> Extracting for mpd-5.3
#--- skip ---#
[root@bender /]#
В меню настройки порта mpd5 я ни чего не выбирал. Конфигурационный
файл привел к следующему виду:
#--- mpd5 config
startup:
set user admin pass admin
#<----->set user foo1 bar1
set console self 127.0.0.1 5005
set console open
set web self 10.1.1.200 5006
set web open
default:
load pptp_server
pptp_server:
set ippool add pool1 192.168.1.50 192.168.1.99
create bundle template B
#<----->set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
#<----->set ipcp ranges 192.168.1.1/32 ippool pool1
set ipcp dns 10.1.1.6
#<----->set ipcp nbns 192.168.1.4
set bundle enable compression
set ccp yes mppc
#<----->set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link template L pptp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
load radius
set link keep-alive 10 60
set link mtu 1460
# set pptp self 1.2.3.4
set link enable incoming
radius:
#<----->set radius config /usr/local/etc/mpd5/radius.conf
set radius server localhost testing123 1812 1813
set radius retries 3
set radius timeout 3
set radius me 127.0.0.1
set auth acct-update 60
set auth enable radius-auth
set auth enable radius-acct
set radius enable message-authentic
Знаки табуляции в mc, я намеренно не стер, пусть будут как
напоминание, что mpd не любит пробелы, и отступы надо делать табом.
Так же чтоб у mpd велся журнал логов, необходимо в /etc/syslog.conf
добавить следующее:
!mpd
*.* /var/log/mpd.log
Создать сам лог файл, поставить на него права RW только для root
пользователя, и перезапустить демона syslogd
как видите тут уже все готово для нас, надо лишь создать базу, а
пользователя и структуру таблиц, можно просто импортировать. Пароль
для пользователя radius можно задать в файле admin.sql. Приступим к
импорту:
[root@bender mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 71296
Server version: 5.0.75-log FreeBSD port: mysql-server-5.0.75
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
Как видите, я импортировал только два sql файла с запросами admin.sql
и schema.sql, это сделано по причине того, что я не буду пользоваться
настройками для nas, ippool, wimax. так зачем лишнее в системе?
Внесем следующие изменения в конфигурационные файлы freeradius2. Вот
тут я и буду пользоваться командой diff. Эта команда отлично подходит
для указания изменений в любых файлах, так как отображает оба значения
в исходном и целевом файле и строку в которой необходимо произвести
изменения. Для настройки freeradius2 нам надо внести изменения в 3
файла. Приступим к этой не хитрой операции.
Теперь необходимо внести записи о нашем тестовом пользователе:
#--- создаем пользователя test с паролем test1
INSERT INTO `radcheck` VALUES
(1,'test','Cleartext-Password',':=','test1');
#--- создаем группу users с параметрами этой группы
INSERT INTO `radgroupreply` VALUES
(1,'users','Framed-Protocol',':=','PPP');
INSERT INTO `radgroupreply` VALUES
(2,'users','Framed-IP-Netmask',':=','255.255.255.255');
#--- говорим, что пользователю test при подключении будет присвоен ip 192.168.1.60
INSERT INTO `radreply` VALUES
(1,'test','Framed-IP-Address',':=','192.168.1.60')
#--- добавляем пользователя test в группу users
INSERT INTO `radusergroup` VALUES ('test','users',1);
Для внесения данных надо подключиться к mysql от пользователя root или
от другого пользователя, так как пользователь radius не имеет права на
INSERT на данные таблицы.
Проверим, берет ли у нас freeradius2 данные из mysql. Для этого
воспользуемся утилитой radtest, которая идет в комплекте:
[root@bender etc]# radtest test test1 127.0.0.1 0 testing123
Sending Access-Request of id 160 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test1"
NAS-IP-Address = 10.1.1.200
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=160,
length=38
Framed-IP-Address = 192.168.1.60
Framed-Protocol = PPP
Framed-IP-Netmask = 255.255.255.255
[root@bender etc]#
Как видите мы получили данные из базы данных. Запустим mpd5 и
попробуем подключиться. Для подключения я использовал клиенскую машину
под управление OC Windows XP.
Пробуем подключиться, если не проходит, необходимо смотреть логи mpd5
и freeradius2 на предмет ошибок. Если что-то не получается, можно
задавать вопросы мне.
P.S.
1. Ядро для работы mpd5 я не пересобирал, он сам подгрузил все
необходимые модулю для своей работы.
2. Не забываем изменить пароли по умолчанию на более сложные. Так же
настройку подключения клиентов к freeradius2 можно посмотреть в
конфигурационном файле clients.conf
766 Прочтений • [Настройке mpd5 в связке с FreeRadius2 и MySQL во FreeBSD (mpd radius auth aaa ppp pptp mysql freebsd)] [08.05.2012] [Комментариев: 0]