Я установил freeradius на Centos.
База данных MySQL заполнена некоторыми данными для тестирования, а также настроены файлы freeradiusd.conf и sql.conf.
Сервер RADIUS может подключаться к базе данных MySQL, и я могу аутентифицировать пользователей с его помощью. У меня также настроен удаленный клиент RADIUS, который работает с моим администрируемым порталом и сервером RADIUS, однако он работает только тогда, когда у меня настроен IP-адрес клиента в /etc/raddb/clients.conf
. Это не работает с таблицей MySQL 'nas'.
Другими словами, freeradius, похоже, не запрашивает мою таблицу nas из базы данных MySQL.
В моем /etc/raddb/mods-enabled/sql
файл у меня следующий:
# Table to keep radius client info
nas_table = "nas"
# Set to 'yes' to read radius clients from the database ('nas' table)
read_clients = yes
В моей таблице nas у меня есть следующее:
id nasname shortname type ports secret server community description
1 xx.xx.xx.xx NULL other NULL testing123
default NULL RADIUS Client
... где xx.xx.xx.xx - правильный IP-адрес моего клиента RADIUS.
Когда я пытаюсь войти через портал авторизации, когда freeradius работает в режиме отладки, я получаю следующее:
Wed Aug 8 06:39:11 2018 : Info: Ready to process requests
Wed Aug 8 06:39:19 2018 : Error: Ignoring request to auth address * port 1812 bound to server default from unknown client xx.xx.xx.xx port 55546 proto udp
Wed Aug 8 06:39:19 2018 : Info: Ready to process requests
Wed Aug 8 06:39:21 2018 : Error: Ignoring request to auth address * port 1812 bound to server default from unknown client xx.xx.xx.xx port 55546 proto udp
Wed Aug 8 06:39:21 2018 : Info: Ready to process requests
Wed Aug 8 06:39:24 2018 : Error: Ignoring request to auth address * port 1812 bound to server default from unknown client xx.xx.xx.xx port 55546 proto udp
Wed Aug 8 06:39:24 2018 : Info: Ready to process requests
eWed Aug 8 06:39:28 2018 : Error: Ignoring request to auth address * port 1812 bound to server default from unknown client xx.xx.xx.xx port 55546 proto udp
Я заметил в выводе отладки, что данные в nas загружаются
Wed Aug 8 09:07:58 2018 : Debug: rlm_sql (sql): Reserved connection (0)
Wed Aug 8 09:07:58 2018 : Debug: rlm_sql (sql): Executing select query: SELECT id, nasname, shortname, type, secret, server FROM nas
Wed Aug 8 09:07:58 2018 : Debug: rlm_sql (sql): Adding client xx.xx.xx.xx (xx.xx.xx.xx) to default clients list
Wed Aug 8 09:07:58 2018 : Debug: Adding client xx.xx.xx.xx/32 (xx.xx.xx.xx) to prefix tree 32
Wed Aug 8 09:07:58 2018 : Debug: rlm_sql (xx.xx.xx.xx): Client "xx.xx.xx.xx" (sql) added
Wed Aug 8 09:07:58 2018 : Debug: rlm_sql (sql): Released connection (0)
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "pap" from file /etc/raddb/mods-enabled/pap
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "reject" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "fail" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "ok" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "handled" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "invalid" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "userlock" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "notfound" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "noop" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "updated" from file /etc/raddb/mods-enabled/always
Wed Aug 8 09:07:58 2018 : Debug: # Instantiating module "monthlycounter" from file /etc/raddb/mods-enabled/sqlcounter
Любая помощь будет принята с благодарностью! PS: Я попытался изменить короткое имя в таблице nas так же, как и ip, но это все равно не сработало
Итак, проблема в том, что вы указываете виртуальный сервер для добавления клиентов. По всем правилам он должен действительно выйти из строя, потому что виртуальный сервер "по умолчанию" на самом деле не существует, но я думаю, что код клиента SQL прощает.
Путаница понятна, потому что есть файл freeradius/sites-available/default
, но, если вы посмотрите на начало раздела сервера server {
на самом деле он не указывает имя, виртуальный сервер в этом файле не имеет идентификатора. Если вы хотите, чтобы это работало так, как вы планировали, вам нужно было бы назвать виртуальный сервер чем-нибудь, например server default {
.
Таким образом, у вас есть два варианта: либо установить для этого поля значение NULL, чтобы все клиенты добавлялись в глобальную таблицу клиентов, либо указать идентификатор для виртуального сервера.