Bushi Posted June 5, 2004 Posted June 5, 2004 Всем привет! В домовой сети необходимо поднять концетратор PPPoE на FreeBSD. В принципе стандартный pppoed и ppp работают нормально. Недостатки следующие: 1. ppp работает на пользовательском уровне через устройство tun, из-за этого высокая загрузка процессора. 2. хотелось бы сделать привязку нектороых пользователей к mac-адресу, но непонятно, можно ли это сделать в стандартной связке pppoed-ppp Отсюда вопрос - решит ли проблему использование mpd? Если да, прошу помочь с настройкой. В интернете натыкаюсь только на примеры с использованием mpd и pptp, но про pppoe практически ничего нету. С моими же настройками в момент соединения ядро паникует (FreeBSD 5.2.1, mpd-3.18). mpd.conf: default: load pppoe0 pppoe0: new -i ng0 pppoe0 pppoe0 set ipcp ranges 172.18.1.1/32 172.18.1.2/32 load pppoe_standart pppoe_standart set iface disable on-demand set bundle disable multilink set link yes acfcomp protocomp set link allow pap set link mtu 1492 set iface route default set iface idle 0 set bundle authname MyLogin set link no acfcomp protocomp set link keep-alive 10 60 set ipcp yes vjcomp mpd.links: pppoe0: set link type pppoe set pppoe iface fxp0 set pppoe service "*" set pppoe enable incoming set pppoe disable originate После этих сообщений ядро паникует: [pppoe0:pppoe0] Incoming PPPoE connection request via fxp0: for service "*" from 00:03:47:e1:09:48 [pppoe0] Accepting PPPoE connection И еще вопрос. Работает ли mpd с pppoe на интерфейсах vlan? Вставить ник Quote
Guest Posted June 9, 2004 Posted June 9, 2004 Привязку пользователя к MAC адресу можно сделать стандартными средствами FreeBSD (pppoed + ppp). Демон PPPoE передает переменную среды HISMACADDR процессу ppp. Можно например слегка модифицировать исходник ppp для передачи этого параметра серверу radius. Вставить ник Quote
Bushi Posted June 11, 2004 Author Posted June 11, 2004 Спасибо за ответ, будем разбираться. Хотя можно и плюнуть на привязку. Пусть пользователи следят за своими паролями сами (не делают же dial-up провайдеры привязку логинов к номерам телефонов :) Но вот еще проблема. Сервис PPPoE должен иметь тег имени, по имени тэга клиент выбирает имя. Но что мешает злоумышленику поставить PPPoE-сервер с таким же именем в той же сети. Я попробовал поднять на двух машинах одновременно pppoed (freebsd) с одним именем, и клиент windows (raspppoe) мог присоединиться к серверу злоумышленника (обычно присоединение идет к серверу, у которого повыше быстродействие и он успевает быстрее запустить ppp). Таким образом злоумышленник может быстро собрать чужие пароли? Вставить ник Quote
O6OPMOT Posted June 11, 2004 Posted June 11, 2004 >skip<Таким образом злоумышленник может быстро собрать чужие пароли? помоему там не пароли сравниваются, а их хэши. так что беспокоиться за них не следует. злоумышленик не сможет восстановить по нему исходный пароль. Вставить ник Quote
Bushi Posted June 11, 2004 Author Posted June 11, 2004 помоему там не пароли сравниваются, а их хэши. так что беспокоиться за них не следует. злоумышленик не сможет восстановить по нему исходный пароль. Пользователи хранятся в LDAP, пароли в MD5, а это значит chap и ms-chap работать не будут, остается только pap. :( Как преодолеть проблему? Вставить ник Quote
Guest Posted June 12, 2004 Posted June 12, 2004 Bushi, Если есть возможность привязки физического порта к MAC адресу, то имеет смысл также связать MAC с логином. Во-первых злоумышленник не получит доступа по чужому логину, а во-вторых можно определить на сервере его MAC. К тому же можно завести сканер отправляющий запросы к PPPoE серверам, который получит MACи всех серверов в Вашей сети. Избавиться от двойников можно отфильтровав ответы PPPoE серверов с непредусмотренных портов. Сделать это можно только на управляемых коммутаторах :( Что касается передачи паролей открытым текстом, то следует менять систему хранения, если она не позволяет использовать CHAP, т.к. передача любой важной информации открытым текстом есть огромная дыра в безопасности. Вставить ник Quote
Bushi Posted June 12, 2004 Author Posted June 12, 2004 Bushi, Если есть возможность привязки физического порта к MAC адресу, то имеет смысл также связать MAC с логином. Во-первых злоумышленник не получит доступа по чужому логину, а во-вторых можно определить на сервере его MAC. К тому же можно завести сканер отправляющий запросы к PPPoE серверам, который получит MACи всех серверов в Вашей сети. Проблема в том, что используется LDAP для многих сервисов (единая учетная запись пользователя для входа в интернет по pppoe, доступ к электронной почте, домашнему каталогу файлового сервера, домашняя страничка, instant messenger, etc), в каталоге LDAP хранится информации о пользователе (включая информацию для радиуса), и если злоумышленник не сможет использовать вход в интернет, то он сможет воспользоваться учетной записью для доступа к другим сервисам. А ограничить доступ с одной машины для остальных сервисов нереально (тогда теряется смысл использования учетных записей и паролей). Тем более часть пользователей не хочет привязывать свой логин pppoe к конкретной машине. Избавиться от двойников можно отфильтровав ответы PPPoE серверов с непредусмотренных портов. Сделать это можно только на управляемых коммутаторах :( Используем управляемые коммутаторы (Cisco Catalyst 1900, 3Com 1100), но к сожалению там нет возможности фильтрации кадров. Видать эти функции есть только в новых коммутаторах. Что касается передачи паролей открытым текстом, то следует менять систему хранения, если она не позволяет использовать CHAP, т.к. передача любой важной информации открытым текстом есть огромная дыра в безопасности. Использование LDAP дает кучу удобств (вся информация о пользователях, доступная для сервисов, лежит централизованно), но freeradius при работе с ldap понимает только PAP. Будем думать. Использование LDAP дает кучу удобств (практически вся информация о пользователе лежит в одном месте), но freeradius при работе с LDAP понимает только PAP. Кстати, покопавшись в bug track на freebsd.org нашел, что mpd с pppoe в настоящий момент не работает на ветке 5.x и проблема пока не решена. Вставить ник Quote
Bushi Posted June 28, 2004 Author Posted June 28, 2004 После установки пропатченого ppp (exppp) получил нужные функции: -получение MAC-адреса станции через атрибут Calling-Id-Station и возможность ограничения логина с определенных MAC-адресов на FreeRadius; -работает посылка пакетов acct Alive на radius с нужной переодичностью; -можно задавать лимиты трафика на сессию, клиент теперь никогда не уйдет в "минус"; -можно задать три класса трафика по ip-адресам для тарификации (один класс не учитывается). Наконец и с LDAP разобрался, теперь у меня заработала авторизация PAP, CHAP, MS-CHAP, MS-CHAPv2 (правда пароль пользователя приходится хранить в открытом виде). Просто праздник какой-то. Осталось два вопроса: -все таки, кто как борется с серверами-двойниками PPPoE? Преценденты были? -RASPPPOE: Windows 9x, NT/2000 не умеют "из коробки" работать с PPPoE. В лицензионном соглашении к RASPPPOE говорится, что "бесплатно только для некоммерческого использования". Кто как выходит из положения? Почему утилита RASPPPOE.EXE не находит pppoe-сервера, если у сервера заданы тег имени nas и тег имени провайдера (если тег имени nas не задавать, то raspppoe находит Default Service)? Приходится ручками вбивать номер дозвона ( <имя nas><имя провайдера>). Вставить ник Quote
Barsick Posted June 29, 2004 Posted June 29, 2004 -RASPPPOE: Windows 9x, NT/2000 не умеют "из коробки" работать с PPPoE. В лицензионном соглашении к RASPPPOE говорится, что "бесплатно только для некоммерческого использования" Есть еще WinPOET, но он платный изначально. И местами глючный - не заметно обрыва связи. "Бесплатный" искать на filesearch.ru Вставить ник Quote
Guest Posted July 23, 2004 Posted July 23, 2004 Демон PPPoE не передает переменную среды HISMACADDR процессу ppp... :( cat ppp.linkup MYADDR: ! sh -c "echo `date` 'INTERFACE' 'PROCESSID' 'USER' 'HISADDR' 'HISMACADDR'>> /tmp/ip-up.log" cat /tmp/ip-up.log Fri Jul 23 12:57:48 MSD 2004 tun122 87726 kukushka 10.0.1.15 HISMACADDR где косяк??? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.