Безопасное соединение Wi-Fi с FreeRADIUS, MySQL, EAP-PEAP, TLS

2673
Eastman

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

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

Безопасное соединение Wi-Fi с FreeRADIUS, MySQL, EAP-PEAP, TLS

Мой основной вопрос: как я могу безопасно хранить пароли в базе данных 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, потому что при первой попытке входа в беспроводную сеть -Xрежим отладки freeradius выдает ошибку ниже. После попытки 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.
1
Для MSCHAPv2, как указано в таблице, у вас есть ровно две опции: хеширование или хэширование NT. grawity 8 лет назад 0
Есть ли способ хранить пароли в базе данных более безопасно, чем просто NT-хэш (иначе NTLM)? На самом деле не имеет значения, являются ли пароли чистыми или хешированы NT, потому что взломать хеш NT так просто. Когда пользователь подключается к Wi-Fi, пароли будут преобразованы в хэш NT для аутентификации, поэтому, если кто-то будет перехватывать пароль во время аутентификации, он получит только один пароль. Eastman 8 лет назад 0
Как именно вы «конвертируете» один хеш в другой? grawity 8 лет назад 0
Я думал, что, возможно, хэш NT можно хэшировать и посолить другим криптографическим методом хэширования, и этот новый хэш будет храниться в базе данных. Конечно, должно быть какое-то программное обеспечение, читающее дополнительный хешированный пароль, но я думаю, что для этого не существует программного обеспечения. Примечание: хэш-пароли NT работают с моей настройкой, добавляя их вручную в базу данных. daloRADIUS не поддерживает хэш NT (или NT-пароль, как он называется в FreeRADIUS), поэтому я просто опущу его из своей настройки. Eastman 8 лет назад 0
И, когда вам нужен хэш NT для MS-CHAPv2, как вы собираетесь извлечь его из «нового» хэша? grawity 8 лет назад 0
Это то, что я спрашиваю, если есть какой-то метод для этого. Я думаю, что хранение паролей в виде NT-хэша (NTLM-хэш NT-Password) в базе данных - большой недостаток безопасности. Но, может быть, мне просто нужно с этим смириться и проверить, что пользователи не используют один и тот же пароль для Wi-Fi и более критичных систем. Eastman 8 лет назад 0
Если вы используете MS-CHAPv2, то действительно нет. Ваш единственный другой вариант - запрашивать PAP через EAP-TTLS. grawity 8 лет назад 0

0 ответов на вопрос

Похожие вопросы