Я пытаюсь настроить беспроводную сеть, как показано на рисунке, и пытаюсь защитить ее.
Изображение сети Wi-Fi:
Мой основной вопрос: как я могу безопасно хранить пароли в базе данных MySQL, чтобы FreeRADIUS мог их прочитать?
Вот более длинная версия, которую я хочу сделать:
- Пользователь подключается к беспроводной сети
- Пользователю будет предложено ввести имя пользователя и пароль
- При наличии правильных учетных данных сервер 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.