Настройка FreeRadius для авторизации по DCHP Option 82 через Mikrotik

На микротике должен быть поднят DHCP сервер, который обращается к Radius клиенту, который обращается к Radius серверу.

queries.conf :

В sites-enabled/default :

Новый проект. DHCP сервер с выборкой из БД на Python

Задачей было написать аналог проекта DHCP2DB , но только на Python вместо C.

В принципе уже как прототип работает. Может отдавать IP адрес как обычным устройствам, так и свичам работающим по опции 82.

Ссылка на GIT: https://github.com/donpadlo/dhcp2dbpy

Полное описание проекта тут

Пример простого DHCP сервера на Python

В целях самообразования, написал скрипт на Python, который выдает запрашивающему IP адрес. Всё жестко прибито гвоздями. Делал для изучения работы DHCP /  Python не более того.

dhcp_parse_packet.py:

 

Настройка FreeRadius3 для авторизации Mikrotik DHCP+Radius Client

При следующей настройке Mikrotik:

И стандартных настройках FreeRadius мы получаем в атрибут User-Name, MAC адрес абонента. А User-Password — пустой. Нужно научить FreeRadius принимать пустые пароли. Самое простое, поправить default секцию authorize следующим образом:

, т.е. если мы видим что пришел User-Name MAC адрес, то мы подставляем ему пароль 123 и проводим авторизацию в любом случае, даже если данный MAC адрес не найден в базе (в этом случае ответ придет Accept, но без IP, который будет автоматом выдан из пула свободных DHCP).

При этом в БД в таблицу radreply нужно добавить строки следующего вида:

radtest b8:69:f4:5a:45:5b «» localhost 1812 secret123