Freeradius и проверка подлинности внешнего сценария с помощью CHAP / MS-CHAP

Я использую Freeradius для аутентификации пользователей с помощью внешнего скрипта, как здесь, который возвращает Accept или Отклонить при передаче пары имени пользователя и пароля.

authorize{
    update control { 
        Auth-Type := `/usr/bin/php -f /etc/raddb/yourscript.php '%{User-Name}' '%{User-Password}' '%{Client-IP-Address}'`
    }

Это работает должным образом, когда клиент использует PAP. Пароль отправляется в %{User-Password}.

Однако при использовании CHAP или MS-CHAP это не работает, поскольку %{User-Password} остается пустым.

Как я могу получить пароль в виде открытого текста для отправки в мой скрипт? В качестве альтернативы, есть ли другой способ поддержки CHAP / MS-CHAP?


person Pranab    schedule 20.04.2015    source источник


Ответы (1)


Поле %{CHAP-Password} содержит хеш пароля и вызов, который представляет собой какое-то магическое число.

Поле %{CHAP-Challenge} содержит вызов, использованный в этом сеансе.

Хотя вы не можете получить простой текстовый пароль из этого простым способом в реальном времени, если у вас есть открытый текстовый пароль, вы можете хешировать его с помощью CHAP-Challenge, как показано здесь с использованием md5. Тогда это должно быть равно значению вашего CHAP-пароля.

person Pranab    schedule 21.04.2015
comment
Не могли бы вы добавить код к тому, что я должен сделать Auth-Type: = /usr/bin/php -f /etc/raddb/yourscript.php '%{User-Name}' '%{CHAP-Password}' это отправит пароль ?? - person Ahmed Al Bermawy; 19.04.2016