1

Я пытаюсь настроить беспроводную сеть, как показано на рисунке, и пытаюсь защитить ее.

Изображение сети Wi-Fi:

Мой основной вопрос: как я могу безопасно хранить пароли в базе данных MySQL, чтобы FreeRADIUS мог их прочитать?

Вот более длинная версия, которую я хочу сделать:

  1. Пользователь подключается к беспроводной сети
  2. Пользователю будет предложено ввести имя пользователя и пароль
  3. При наличии правильных учетных данных сервер RADIUS отправит сертификат, и соединение TLS может быть установлено.

У меня есть настройки, работающие с паролями Cleartext, но, очевидно, я бы хотел защитить пароли каким-то хешем. Теперь пароли хранятся в виде открытого текста даже в базе данных. Из этой таблицы совместимости я понял, что если я использую PEAP с MSCHAPv2, мне нужно использовать NT-хеш-пароли. http://deployingradius.com/documents/protocols/compatibility.html

Когда я добавляю пользователя с помощью daloRADIUS, есть только опции для Cleartext-, User-, Crypt-, MD5-, SHA1- и CHAP-Password. Там нет опции для NT хэш-пароля. Я думаю, это означает, что я не могу использовать daloRADIUS в качестве веб-интерфейса. Я думал, что просто сделаю сценарий оболочки, который будет легко добавлять и удалять пользователей в базе данных.

В FreeRADIUS я настроил /etc/freeradius/mods-available/eap

eap {
    default_eap_type = peap
peap {
    default_eap_type = mschapv2

Если я правильно понял, я сейчас использую EAP-PEAP с MSCHAPv2 и TLS. Я знаю, что использую TLS, потому что при первой попытке входа в беспроводную сеть режим отладки freeradius -X выдает ошибку ниже. После попытки TLS пользователю будет предложено ввести имя пользователя и пароль.

(28) eap_peap: <<< TLS 1.2  [length 0002]
(28) eap_peap: ERROR: TLS Alert read:fatal:unknown CA 
(28) eap_peap: ERROR: TLS_accept: Failed in SSLv3 read client certificate A
(28) eap_peap: ERROR: SSL says: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
(28) eap_peap: ERROR: SSL_read failed inside of TLS (-1), TLS session failed
(28) eap_peap: ERROR: TLS receive handshake failed during operation
(28) eap_peap: ERROR: [eaptls process] = fail
(28) eap: ERROR: Failed continuing EAP PEAP (25) session.  EAP sub-module failed
(28) eap: Sending EAP Failure (code 4) ID 162 length 4
(28) eap: Failed in EAP select

С Cleartext-Password аутентификация работает, но когда я пытаюсь ввести какой-то хешированный пароль, аутентификация завершается неудачно, как показано ниже.

(36)   Found Auth-Type = EAP
(36)   # Executing group from file /etc/freeradius/sites-enabled/inner-tunnel
(36)     authenticate {
(36) eap: Expiring EAP session with state 0x024362c402167826
(36) eap: Finished EAP session with state 0x024362c402167826
(36) eap: Previous EAP request found for state 0x024362c402167826, released from the list
(36) eap: Peer sent packet with method EAP MSCHAPv2 (26)
(36) eap: Calling submodule eap_mschapv2 to process data
(36) eap_mschapv2: # Executing group from file /etc/freeradius/sites-enabled/inner-tunnel
(36) eap_mschapv2:   Auth-Type MS-CHAP {
(36) mschap: WARNING: No Cleartext-Password configured.  Cannot create NT-Password
(36) mschap: WARNING: No Cleartext-Password configured.  Cannot create LM-Password
(36) mschap: Creating challenge hash with username: joujou
(36) mschap: Client is using MS-CHAPv2
(36) mschap: ERROR: FAILED: No NT/LM-Password.  Cannot perform authentication
(36) mschap: ERROR: MS-CHAP2-Response is incorrect
(36)     [mschap] = reject
(36)   } # Auth-Type MS-CHAP = reject
(36) eap: Sending EAP Failure (code 4) ID 85 length 4

Не могли бы вы помочь мне, какие варианты у меня есть для хеширования паролей?

Вот программное и аппаратное обеспечение, которое я использую:

  • В основном ноутбуки с Windows 10
  • Точки беспроводного доступа TP-Link Archer C7 v2, работающие с OpenWRT Chaos Calmer 15.05 / Luci (git-15.248.30277-3836b45)
  • 2 виртуальных машины ESXi: одна работает под управлением PfSense 2.2.6, а другая - под управлением Ubuntu Server 14.04.
  • На сервере Ubuntu я установил FreeRADIUS 3.0.10 с MySQL и daloRADIUS 0.9-9.

0