При следующей настройке Mikrotik:
И стандартных настройках FreeRadius мы получаем в атрибут User-Name, MAC адрес абонента. А User-Password — пустой. Нужно научить FreeRadius принимать пустые пароли. Самое простое, поправить default секцию authorize следующим образом:
|
authorize { if(User-Name =~ /^([0-9A-F]{2}:?){6}$/ && User-Password == ''){ update request { User-Password = "123" } update control { Auth-Type := Accept } } ... |
, т.е. если мы видим что пришел User-Name MAC адрес, то мы подставляем ему пароль 123 и проводим авторизацию в любом случае, даже если данный MAC адрес не найден в базе (в этом случае ответ придет Accept, но без IP, который будет автоматом выдан из пула свободных DHCP).
При этом в БД в таблицу radreply нужно добавить строки следующего вида:
|
+----------+-------------------+---------------------+----+-------------+ | id | username | attribute | op | value | +----------+-------------------+---------------------+----+-------------+ | 33727393 | 18:D6:C7:2A:5E:F5 | Mikrotik-Rate-Limit | := | 10M | | 33727396 | 18:D6:C7:2A:5E:F5 | Framed-IP-Address | := | 10.30.100.3 | +----------+-------------------+---------------------+----+-------------+ |
radtest b8:69:f4:5a:45:5b «» localhost 1812 secret123