Ключевые слова:pptp, ppp, pppoe, linux, radius, (найти похожие документы)
From: Alex Kuklin <alex@kuklin.ru>
Newsgroups: email
Date: Mon, 14 Oct 2003 14:31:37 +0000 (UTC)
Subject: Запуск pptp/pppoe linux-сервера с авторизацией с внешнего radius-сервера
Сегодня совершил $subj.
По дороге были найдены следующие грабли:
Плагин для radius есть в pppd 2.4.2b3
В pppd 2.4.2b2 таким образом сломано согласование параметров LCP, что
образовывалась сдедующая картинка:
Oct 13 23:38:33 192.168.2.100 pppd[35]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x51b71c83>]
Oct 13 23:38:33 192.168.2.100 pppd[35]: sent [LCP ConfReq id=0x1 <magic 0xd91c053a>]
Oct 13 23:38:33 192.168.2.100 pppd[35]: sent [LCP ConfRej id=0x1 <asyncmap 0x0>]
Oct 13 23:38:36 192.168.2.100 pppd[35]: sent [LCP ConfReq id=0x1 <magic 0xd91c053a>]
Oct 13 23:38:36 192.168.2.19 pppd[4206]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x51b71c83>]
повторялось до обрыва
192.168.2.100 - это сервер (виртуальная машина под vmware), 192.168.2.19 - клиент
В pppd 2.4.1 отсутствует ряд хуков (например, chap_auth), необходимых для radius.so.
Использовался сервер pppoe-server из rp-pppoe (http://www.roaringpenguin.com/products/rp-pppoe/).
За ним замечено маниакальное желание выставлять самому peerIP.
В результате доработки напильником, было получено:
1. промежуточная версия pppd, в которой есть все необходимое для компиляции radius.so
2. чуть урезаный radius.so - убрана поддержка авторизации по телефонному номеру.
Впрочем, при необходимости оно может быть доделано добавлением соответствующих хуков в pppd.
3. версия rp-pppoe-server, не скармливающая peerIP в командной строке pppd
4. версия freeradius с расширенным набором sql-запросов (авторство -
Александр Романов)
В результате, оно взлетело. Все патчи доступны по запросу.
В дальнейших творческих планах:
- приведение патчей в вид, пригодный для публикации и отправка их
девелоперам и мантейнерам
- допилка pptpd для того, чтобы на radius-сервер отдавался ip-адрес клиента
- отлов бага в 2.4.2b3 в части работы с pppoe
- расширение статистики соединения в pppd в части разделения классов трафика