การเชื่อมต่อ wifi ที่ปลอดภัยด้วย FreeRADIUS, MySQL, EAP-PEAP, TLS


1

ฉันกำลังพยายามติดตั้งเครือข่ายไร้สายตามที่แสดงในภาพและฉันกำลังดิ้นรนวิธีการรักษาความปลอดภัย

รูปภาพของเครือข่าย Wifi:

ป้อนคำอธิบายรูปภาพที่นี่

คำถามพื้นฐานของฉันคือฉันจะเก็บรหัสผ่านในฐานข้อมูล 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 เป็นเว็บ GUI ได้ ฉันคิดว่าฉันจะสร้างเชลล์สคริปต์ซึ่งจะเพิ่มและลบผู้ใช้ในฐานข้อมูลได้อย่างง่ายดาย

ใน FreeRADIUS ฉันได้กำหนดค่าแล้ว /etc/freeradius/mods-available/eap

eap {
    default_eap_type = peap
peap {
    default_eap_type = mschapv2

หากฉันเข้าใจถูกต้องฉันกำลังใช้ EAP-PEAP กับ MSCHAPv2 และ TLS ฉันรู้ว่าฉันกำลังใช้ TLS เพราะด้วยความพยายามครั้งแรกในการเข้าสู่-Xโหมด debug เครือข่ายไร้สายฟรีดีราดีอัสจะให้ข้อผิดพลาดด้านล่าง หลังจากพยายาม 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 แต่เมื่อฉันพยายามใส่รหัสผ่านแบบแฮชบางอย่างการตรวจสอบความถูกต้องจะล้มเหลวตามที่เห็นด้านล่าง

(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 Server ฉันได้ติดตั้ง FreeRADIUS 3.0.10 พร้อม MySQL และ daloRADIUS 0.9-9

สำหรับ MSCHAPv2 เช่นเดียวกับตารางที่บอกว่าคุณมีสองตัวเลือก: unhashed หรือ NT hashed
grawity

มีวิธีการเก็บรหัสผ่านในฐานข้อมูลอย่างปลอดภัยมากกว่าเพียงแค่แฮช NT (aka NTLM) หรือไม่? ไม่สำคัญว่ารหัสผ่านจะชัดเจนหรือ NT แฮชเนื่องจากการแฮช NT แตกง่ายมาก เมื่อผู้ใช้เชื่อมต่อกับ wifi รหัสผ่านจะถูกแปลงเป็น NT hash สำหรับการตรวจสอบสิทธิ์ดังนั้นหากใครบางคนกำลังดมรหัสผ่านในขณะที่ตรวจสอบความถูกต้องพวกเขาจะได้รับรหัสผ่านเพียงครั้งเดียว
Eastman

คุณจะ "แปลง" แฮชหนึ่งไปยังอีกวิธีหนึ่งได้อย่างไร
grawity

ฉันคิดว่าอาจแฮช NT อาจแฮชและเค็มด้วยวิธีการเข้ารหัสลับอื่นและแฮชใหม่นี้จะถูกเก็บไว้ในฐานข้อมูล แน่นอนว่าจะต้องมีซอฟต์แวร์บางตัวที่อ่านรหัสผ่านที่แฮชเพิ่มเติม แต่ฉันคิดว่าไม่มีซอฟต์แวร์สำหรับการทำเช่นนี้ หมายเหตุด้านข้าง: ฉันได้รับรหัสผ่านแฮช NT ที่ทำงานกับการตั้งค่าของฉันโดยเพิ่มลงในฐานข้อมูลด้วยตนเอง daloRADIUS ไม่รองรับแฮช NT (หรือ NT-Password เนื่องจากมันถูกเรียกว่า FreeRADIUS) ดังนั้นฉันจะทิ้งมันจากการตั้งค่าของฉัน
Eastman

และเมื่อคุณต้องการแฮช NT สำหรับ MS-CHAPv2 คุณจะแยกมันออกจากแฮช "ใหม่" ได้อย่างไร
grawity
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.