User Tools

Site Tools


связка_freeradius_active_directory

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
связка_freeradius_active_directory [2022/11/02 14:27] jpсвязка_freeradius_active_directory [2022/11/09 15:35] (current) jp
Line 91: Line 91:
 /etc/freeradius/3.0/sites-enabled/inner-tunnel /etc/freeradius/3.0/sites-enabled/inner-tunnel
 </code> </code>
 +
 +{{::freeradius_ntlm_auth_sites_enabled.jpg?direct&400|}}
  
 14. Для тестов можно добавить в файл: 14. Для тестов можно добавить в файл:
Line 96: Line 98:
    /etc/freeradius/3.0/mods-config/files/authorize    /etc/freeradius/3.0/mods-config/files/authorize
  
-Строчку, чтобы все реквесты шли через ntlm_auth+Строчку, чтобы все реквесты шли через ntlm_auth:
  
    DEFAULT   Auth-Type = ntlm_auth    DEFAULT   Auth-Type = ntlm_auth
 +После чего выполнить проверку: 
  
-{{::freeradius_ntlm_auth_sites_enabled.jpg?direct&400|}}+   radtest user password localhost 0 testing123 
 +Успешный результат сообщит нам о предоставлении доступа: 
 +   Received Access-Accept Id 88 from 127.0.0.1:1812 to 127.0.0.1:40492 length 20 
 + 
 +15. Если мы проводили тест, то удаляем строку из п. 14 в файле //authorize//
 + 
 +16. В файле модуля mschap: 
 + 
 +   /etc/freeradius/3.0/mods-enabled/mschap 
 +Конфигурируем ntlm_auth следующим образом: 
 + 
 +    ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --allow-mschapv2 --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --domain=%{%{mschap:NT-Domain}:-ARASAKA.LOCAL} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"     
 +17. Перезапускаем freeradius и проверяем авторизацию с явным указанием mschap: 
 + 
 +   systemctl restart freeradius 
 +   radtest -t mschap user password localhost 0 testing123    
 +18. Скорее всего мы получим ошибку примерно следующего содержания: 
 + 
 +   MS-CHAP-Error = "\000E=691 R=1 C=33540d6659c2d6d1 V=2" 
 +   (0) -: Expected Access-Accept got Access-Reject 
 +При этом, в логе freeradius скорее всего будет сообщение: 
 + 
 +   /var/log/freeradius/radius.log 
 +   Reading winbind reply failed!    
 +19. В этом случае нам нужно поправить права модуля ntlm_auth на pipe winbindd. Останавливаем freeradius, добавляем его пользователя в группу winbindd, корректируем права и снова запускаем freeradius и прогоняем тест.  
 + 
 +<code> 
 +systemctl stop freeradius 
 +usermod -a -G winbindd_priv freerad 
 +chown root:winbindd_priv /var/lib/samba/winbindd_privileged/ 
 +service freeradius start 
 +</code> 
 +   radtest -t mschap user password localhost 0 testing123 
 +В этот раз тест должен быть успешным: 
 +<code> 
 +Received Access-Accept Id 167 from 127.0.0.1:1812 to 127.0.0.1:48218 length 84 
 +        MS-CHAP-MPPE-Keys = 0x0000000000000000650992b66359427b440e9ac81b8f305b 
 +        MS-MPPE-Encryption-Policy = Encryption-Allowed 
 +        MS-MPPE-Encryption-Types = RC4-40or128-bit-Allowed 
 +</code>         
 +20. Теперь самое время сконфигурировать файл clients.conf, чтобы добавить какого-нибудь клиента. Например pfSense.  
 +В файле указываем ip-адрес RADIUS-клиента, секрет и другие параметры.  
 + 
 +<code> 
 +client arasaka-pfsense { 
 +        ipaddr = 10.88.88.2 
 +        proto = * 
 +        secret = secret 
 +        require_message_authenticator = no 
 +        nas_type         = other 
 + 
 +        limit { 
 +                max_connections = 1024 
 +                lifetime = 0 
 +                idle_timeout = 30 
 +        } 
 +
 +</code> 
 +21. Добавим наш RADIUS-сервер на pfSense, который мы только что сконфигурировали в качестве клиента как показано на скриншоте. 
 + 
 +{{:pfsense_radius_client_freeradius.jpg?direct&400|}} 
 + 
 +22. Проверим аутентификацию через добавленный RADIUS прямо с pfSense, чтобы убедиться в том, что всё сделано верно.  
 + 
 +Открываем в главном меню: //Diagnostics -> Authentication// и вводим данные пользователя AD. 
 + 
 +{{::pfsense_radius_diag.jpg?direct&400|}} 
 + 
 +23. Для дебага можно запускать freeradius с ключом X: 
 + 
 +   freeradius -X 
 +Логи можно почитать в папке: 
 + 
 +   /var/log/freeradius/ 
 +Если запуск службы будет неудачным, полезной также может оказаться команда: 
 + 
 +   journalctl -xe 
 +{{tag>Debian Linux FreeRADIUS RADIUS Samba ActiveDirectory}}
связка_freeradius_active_directory.1667399257.txt.gz · Last modified: 2022/11/02 14:27 by jp