Используйте два Auth-Type PAP и EAP с FreeRadius

У меня есть сервер freeradius, который использует MySQL для хранения данных.

ниже моя база данных

radcheck table
+-----+----------+--------------------+----+--------------+
| id  | username | attribute          | op | value        |
+-----+----------+--------------------+----+--------------+
| 474 | varun    | Cleartext-Password | := | sunshine3003 |
+-----+----------+--------------------+----+--------------+


radreply table
+----+----------+--------------+----+-------+
| id | username | attribute    | op | value |
+----+----------+--------------+----+-------+
|  1 | varun    | Fall-Through | =  | Yes   |
+----+----------+--------------+----+-------+


radgroupcheck table
+----+-----------+-----------+----+-------+
| id | groupname | attribute | op | value |
+----+-----------+-----------+----+-------+
|  1 | group1    | Auth-Type | := | PAP |
|  2 | eapgroup  | Auth-Type | := | EAP   |
+----+-----------+-----------+----+-------+


radusergroup table
+----------+-----------+----------+
| username | groupname | priority |
+----------+-----------+----------+
| varun    | eapgroup  |        1 |
| varun    | group1    |        2 |
+----------+-----------+----------+

У нас есть два разных клиента, которые используют два разных типа аутентификации со свободным радиусом. Один использует PAP и отправляет пароль в атрибуте User-Password.

и другой клиентский пользователь EAP и отправляет пароль в EAP-Message и Message-Authenticator

Я хочу, чтобы при неудачной аутентификации PAP или при отсутствии атрибута User-Password он должен использовать EAP как Auth-Type, а если EAP и Message-Authenticator не присутствуют в атрибуте радиуса, он должен ответить сообщением об отказе в доступе или об ошибке аутентификации.

Любая помощь будет оценена по достоинству


person Varun Taliyan    schedule 10.08.2017    source источник


Ответы (1)


Не следует устанавливать control:Auth-Type вручную. Этот атрибут нужен для того, чтобы модули в разделе authorize могли связываться с остальной частью сервера, тип аутентификации, который должен быть запущен в разделе authenticate.

Чтобы установить Auth-Type на основе атрибутов, вы должны перечислить модули pap, eap и т. Д. По очереди в разделе авторизации, они проверит, были ли необходимые атрибуты в запросе, и определят правильное значение Auth-Type.

Если вы хотите создать политику, ограничивающую определенных пользователей определенными типами аутентификации, установите Auth-Type в списке ответов (таблица radgroupreply) и проверьте, какой Auth-Type был установлен в конце раздела авторизации.

authorize {
    eap
    pap
    sql

    if (control:Auth-Type != reply:Auth-Type) {
        reject
    }
}
person Arran Cudbard-Bell    schedule 18.08.2017