Гостевая книгаНовое сообщение.Записи гостевой книги(15.10.2009 17:49:41) nicolas> Добрый день! я новичек..пытаюсь реализовать Вашу схему (DHCP+SQL БД)...не совсем получается... поставил postgresql 8.3, freeradius 2.1.4..ноут отслыает запрос. В логах dhcp вижу: dhcpd: Convert DHCPDISCOVER 00:1d:60:02:59:c0/10.1.10.253 to RADIUS and forwarded to 127.0.0.1 В логах радиуса вижу: Auth: Login incorrect: [001d600259c0/!п╛\313e\232C\335\376v\223\002K,Q\350] (from client localhost port 167840509) Совсем не понимаю, почему подставляется МАК ноута((( Разъясните пожалуйста. Спасибо Admin> Доброго времени, вижу вы написали на мыло. В ближайшее время отвечу. Но на первый взгляд - проблема с параметром radius-secret либо radius-password. (26.08.2009 19:55:53) Энон> dhcdrop просто сказка. очень помогает в борьбе с абонентскими роутерами. огромное вам спасибо... (26.08.2009 13:19:19) Sin> отписал на почту Admin> Кстати разобрался почему тормозило выполнение запросов. Проблема появлялась при выполнении запроса authorize_check_query из-за не правильного вызова функции get_id(). Следует вызывать функцию через подзапрос, т.е. ...WHERE id = (SELECT get_id(...)), а не непосредственно WHERE id = get_id(...). В последнем случае функция выполнялась столько раз, сколько проводилась проверка условия. Следовательно общее время выполнения запроса вырастало в линейной зависимости от числа записей в БД. Исправил запрос.
(24.08.2009 18:32:45) Sin> dhcp2radius. Понравилась идея, переделал под свою сеть, интегрировал в биллинг, все отлично. Клиентов порядка 4500. И вот проблема - запросы выполняются по 25-40 секунд :( это естественно не приемлемо.. не знаю что делать, есть идеи? ЗЫ: концепция проекта переделана под vlan id, который прилетает в option 82, server_addr полностью убран. Прошу помощи!!! Admin> Доброго времени. На данный момент идея перетекла в новое воплощение. Пока практических результатов нет, но будут в обозримом будущем. От Вас было бы интересно узнать некоторую подробность касательно опции 82. Как будет время - напишите пожалуйста на почту. (24.08.2009 10:49:54) anonymous> В скрипте на странице http://netpatch.ru/dhcdrop.html нашел ошибку вместо 08 $DROPPER -i eth1 -l $LEGAL_SERVER -y надо 08 $DROPPER -i $IFNAME -l $LEGAL_SERVER -y Admin> Спасибо, исправлено. (20.08.2009 02:46:41) slepnoga> Gentoo ebuild: in rion overlay :) , version up (19.08.2009 03:53:57) krushik> Доброй ночи. Спасибо за dhcdrop. Хотел уточнить насчет "агрессивного режима получения адресов": в случае, когда нелегальный dhcpd не реагирует на поддельный DHCPRELEASE от уже получивших неверный адрес клиентов из-за возможной проверки их доступности в сети ( "WARNING: Failed to take away all the IP addresses assigned by DHCP server. Perhaps DHCP server checks availability of IP addresses by sending ARP-request before assigning them. Try to restart dhcpdrop later. If it doesn't help try to disconnect problem hosts temporarily, then send manually DHCPRELEASE from address of this hosts (use option -R) and restart dhcdrop." ), не поможет ли arp-poisoning клиента/сервера/их обоих с целью создания в арп-таблице клиента записи о соответствии IP-адреса сервера собственному маку клиента (и наоборот в случае с сервером), и как следствие, невозможности их дальнейшего диалога на уровне IP-пакетов. Тогда, даже если dhcpd не проведет DHCPRELEASE, последующая перевыдача адреса клиенту от нелегального сервера не произойдет, и клиент получит адрес от легального сервера. Не уверен, что правильно промоделировал ситуацию (да и если правильно, то нужно будет периодически продолжать делать repoison), но если это все же окажется чем-то полезно, то подобный arppoisoning реализует ettercap, из которого и можно взять необходимый код. Если адрес нелегального сервера 192.168.1.1, а клиент получил адрес 192.168.1.3, то ettercap бы нужным образом модифицировал арп-кэш клиента в результате исполнения команды ettercap -TP isolate /192.168.1.3/ /192.168.1.1/ (man ettercap_plugins) Также хотел сообщить об опечатках: на сколько я понимаю, в качестве названия продукта было выбрано dhcdrop, однако в хелпе употребляется dhcpdrop (Usage: dhcpdrop [-h]...) И если я правильно понял, в "1. Got BOOTREPLY (DHCPACK) for client ether: 00:BC:BF:D6:39:2E You IP: 192.168.1.5/24" вместо "You" должно стоять "Your". С уважением, Виталий. Admin> Здравствуйте. arp-poisoning делу не поможет, ибо отравление кэша действенно только для IP уровня и работать будет пока ложный DHCP сервер не пошлёт ARP who-has. После этого таблица будет скорректированна и ARP-ответ уйдёт по правильному MAC адресу. К сожалению это необоримо - только если перекрыть порт на свитче например, или вовсе физически отключить хост. Понятное дело что ни о каких arptables в данном случае речи быть не может. По поводу опечаток - спасибо, поправлю но вероятно выложу в виде архива только в следующем релизе, т.к. программу планируют включить в порты/пакеты ОС и для архива расчитаны контрольные суммы, менять которые сейчас нельзя. Изменения будут отображены в SVN. (13.08.2009 18:05:27) ibmed> Доброго дня. Спасибо за подробный пример программного создания VPN-подключения из-под С++. Столкнулся с тем, что если на момент запуска оной программы на С++ на машинке не было созданных РРТР подключений, то оно работает через раз. Подключение создается, а вот rasdial может послать нафиг. Может установит, может нет - с ошибкой 678 (нет ответа). При этом ни оного пакета на РРТР сервер не приходит от клиента. Так что проблема явно в виндовз. Наверняка сталкивались? Как лечится?.. Admin> Честно говоря не сталкивался никогда, и даже не слышал. Вроде бы народ не жалуется на подобное. Обычно такая ошибка возникает когда есть проблемы либо с сетью, либо с VPN сервером. Попробуйте потестировать на другом компьютере, может поможет какие-то проблемы с локальным фаерволлом. Кстати код примера написан когда я был совсем начинающим, и нуждается в массе корректировок, некогда исправить пока что. (01.08.2009 22:59:30) Anonymous> >01.08.2009 22:58:04 Убитое форматирование, чтоб его! http://paste2.org/p/355514 Admin> По поводу форматирования согласен, как будет время - переделаю. По поводу сути - у вас в примере кстати ошибка. В строке 4 используется непосредственно имя интерфейса а не переменная $INTERFACE, но суть понятна. Возможно в ближайшее время выложу пример скрипта реально применяемого на практике - он поддерживает автоконфигурирование списка интерфейсов на которых нужно запустить dhcdrop. (01.08.2009 22:58:04) Anonymous> >00 #!/bin/bash >01 LEGAL_SERVER="00:11:22:33:44:55" >02 DROPPER="/usr/sbin/dhcdrop" > >03 $DROPPER -i eth1 -t -l $LEGAL_SERVER -m 3 > >04 if [ $? = 200 ] >05 then >06 echo Illegal server found\! Dropping him\! >07 $DROPPER -i eth1 -l $LEGAL_SERVER -y >08 else >09 echo Illegal server not found. >10 fi лучше переписать на: 00 #!/bin/sh 01 LEGAL_SERVER="00:11:22:33:44:55" 02 INTERFACE="eth1" 03 DROPPER="/usr/sbin/dhcdrop" 04 $DROPPER -i eth1 -t -l "$LEGAL_SERVER" -m 3 05 if [ "$?" -eq 200 ]; then 06 echo 'Illegal server found! Dropping him!' 07 $DROPPER -i "$INTERFACE" -l "$LEGAL_SERVER" -y 08 else 09 echo 'No illegal servers found.' 10 fi (27.07.2009 13:32:10) Денис> Включив более подробную отладку выяснилось следущее: rad_recv: Access-Request packet from host 127.0.0.1 port 67, id=34, length=73 User-Name = "00:e0:4c:ff:f5:a3" User-Password = "dhcpuser" NAS-Port = 2887059438 Vendor-Specific = 0x0000003600350403 +- entering group authorize {...} ++[preprocess] returns ok [sql] expand: %{User-Name} -> 00:e0:4c:ff:f5:a3 [sql] sql_set_user escaped user --> '00:e0:4c:ff:f5:a3' rlm_sql (sql): Reserving sql socket id: 1 [sql] WARNING: Unknown module "DHCP-Message-Type" in string expansion "%{DHCP-Message-Type}', '0x')::int2) ORDER BY id" [sql] expand: SELECT id, UserName, Attribute, Value, ':=' AS Op FROM dhcpcheck WHERE id = get_id('%{SQL-User-Name}', %{NAS-Port}, btrim('%{DHCP-Message-Type}', '0x')::int2) ORDER BY id -> SELECT id, UserName, Attribute, Value, ':=' AS Op FROM dhcpcheck WHERE id = get_id('00:e0:4c:ff:f5:a3', 2887059438, btrim('', '0x')::int2) ORDER BY id rlm_sql_postgresql: query: SELECT id, UserName, Attribute, Value, ':=' AS Op FROM dhcpcheck WHERE id = get_id('00:e0:4c:ff:f5:a3', 2887059438, btrim('', '0x')::int2) ORDER BY id rlm_sql_postgresql: Status: PGRES_FATAL_ERROR rlm_sql_postgresql: Error неве▒?н▒?й в▒?одной ▒?ин▒?ак▒?и▒? дл▒? integer: "" rlm_sql_postgresql: Postgresql Fatal Error: [22P02: INVALID TEXT REPRESENTATION] Occurred!! rlm_sql_getvpdata: database query error Admin> Явно что-то не то с настройками FreeRADIUS. Файл dictionary.dhcp заменили? Со стандартным, идущем в поставке - работать не будет. Пишите на e-mail, постараюсь помочь по возможности. (24.07.2009 10:16:13) Денис> Здравствуйте не как не получается запустить систему в радиусе валятся следующие ошибки: rad_recv: Access-Request packet from host 127.0.0.1 port 67, id=2, length=73 User-Name = "00:e0:4c:ff:f5:a3" User-Password = "dhcpuser" NAS-Port = 2887059438 Vendor-Specific = 0x0000003600350403 +- entering group authorize {...} ++[preprocess] returns ok rlm_sql (sql): Reserving sql socket id: 3 [sql] expand: -> [sql] Error generating query; rejecting user rlm_sql (sql): Released sql socket id: 3 ++[sql] returns fail Using Post-Auth-Type Reject +- entering group REJECT {...} [attr_filter.access_reject] expand: %{User-Name} -> 00:e0:4c:ff:f5:a3 attr_filter: Matched entry DEFAULT at line 11 ++[attr_filter.access_reject] returns updated Delaying reject of request 1 for 1 seconds Going to the next request В чем проблема ума не прилажу... Admin> Судя по этому логу - возникает ошибка при генерации запроса. Запустите freeradius с параметром -X, попытайтесь получить адрес - вам выдастся список запросов которые пытается выполнить FreeRADIUS. Выполняйте эти запросы вручную, через psql например - поймёте где вылезает ошибка. Скорее всего что-то не правильно в конфигурационном файле FreeRADIUS для PostgreSQL. (23.07.2009 17:11:23) Евгений> День добрый! Используем DHCP сервер для передачи информации об opt82 (hex - 52 в конфиге) в том числе radius-серверу. В логах radius видим: Jul 23 17:12:57 IN[1] 127.0.0.1:67 145 User-Name="0013d4b4d909"&Password="dhcpuser\000\000\000\000\000\000\000\000"&NAS-Port=2886860802&Vendor-Specific-54-0="\025\001\006\000\004\003\217\0002\002\010\000\006\000\036X\237C\300\000\000\000\367uT\0118\326Q\011\001\000\212\261\001\000\000\000\3001\001\000\000\000\212\261\374uT\011\000\000\000\000\200\000\000\000!\000\000\000hWR\011\000\000\000\000\005\000\000\000\000\000\000\000\013\000"&D-Recv-Port="1645"&D-APID=495741&D-NAS-Name="DHCP Test"&D-User-Name="0013d4b4d909"&D-Domain="enter"&D-Service-Id=0&D-NAS-Port="2886860802" Как это можно распарсить? Или прилетает совсем не то? Admin> Доброго времени. Действительно - что-то совсем не то вы передаёте/принимаете. Может версия FreeRADIUS не та? Если не разобрались - лучше пишите на e-mail. (15.07.2009 16:20:55) BSA> 2 slepnoga Для новых ибилдов есть специальный сайт: http://bugs.gentoo.org (15.07.2009 13:26:59) slepnoga> Написал гентушный ебилд для dhcdrop. Вас он интересует? spamslepnoga [at]inbox[dot]ru |