Kết nối wifi an toàn với FreeRADIUS, MySQL, EAP-PEAP, TLS


1

Tôi đang cố gắng thiết lập một mạng không dây như trong hình và tôi đang đấu tranh làm thế nào để bảo mật nó.

Hình ảnh của Mạng Wifi:

nhập mô tả hình ảnh ở đây

Câu hỏi cơ bản của tôi là: Làm thế nào tôi có thể lưu trữ mật khẩu vào cơ sở dữ liệu MySQL một cách an toàn để FreeRADIUS có thể đọc nó?

Đây là phiên bản dài hơn những gì tôi muốn thực hiện:

  1. Người dùng kết nối với mạng không dây
  2. Người dùng sẽ được nhắc nhập tên người dùng và mật khẩu
  3. Với thông tin xác thực, máy chủ RADIUS sẽ gửi chứng chỉ và kết nối TLS có thể được hình thành.

Tôi đã thiết lập làm việc với Cleartext-password, nhưng rõ ràng tôi muốn bảo mật mật khẩu bằng một số loại băm. Bây giờ mật khẩu được lưu trữ dưới dạng văn bản rõ ràng ngay cả trong cơ sở dữ liệu. Từ bảng tương thích này, tôi đã hiểu nếu tôi sử dụng PEAP với MSCHAPv2, tôi cần sử dụng mật khẩu băm NT. http://deployingradius.com/document/prot Protocol / compabilities.html

Khi tôi thêm người dùng bằng daloRADIUS, chỉ có các tùy chọn cho Cleartext-, User-, Crypt-, MD5-, SHA1- và CHAP-Password. Không có tùy chọn cho mật khẩu băm NT. Tôi đoán điều này có nghĩa là tôi không thể sử dụng daloRADIUS làm GUI web. Tôi đã nghĩ rằng tôi sẽ tạo một tập lệnh shell sẽ dễ dàng thêm và xóa người dùng trong cơ sở dữ liệu.

Trong FreeRADIUS tôi đã cấu hình /etc/freeradius/mods-available/eap

eap {
    default_eap_type = peap
peap {
    default_eap_type = mschapv2

Nếu tôi hiểu đúng, tôi hiện đang sử dụng EAP-PEAP với MSCHAPv2 và TLS. Tôi biết tôi đang sử dụng TLS vì với lần thử đăng nhập đầu tiên vào -Xchế độ gỡ lỗi mạng không dây freeradius sẽ đưa ra lỗi bên dưới. Sau khi thử TLS, người dùng sẽ được hỏi tên người dùng và mật khẩu.

(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

Với xác thực Cleartext-Password hoạt động nhưng khi tôi cố gắng đặt một số loại mật khẩu băm, xác thực thất bại như được thấy dưới đây.

(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

Vì vậy, bạn có thể giúp tôi, tôi có những lựa chọn nào để băm mật khẩu?

Đây là phần mềm và phần cứng tôi đang sử dụng:

  • Chủ yếu là máy tính xách tay Windows 10
  • Điểm truy cập không dây TP-Link Archer C7 v2, chạy với OpenWRT Chaos Calmer 15.05 / Luci (git-15.248.30277-3836b45)
  • 2 máy ảo ESXi: một máy đang chạy PfSense 2.2.6 và máy còn lại đang chạy Ubuntu Server 14.04.
  • Trên máy chủ Ubuntu, tôi đã cài đặt FreeRADIUS 3.0.10 với MySQL và daloRADIUS 0.9-9.

Đối với MSCHAPv2, giống như bảng đã nói, bạn có chính xác hai tùy chọn: không băm hoặc NT băm.
grawity

Có cách nào để lưu trữ mật khẩu trong cơ sở dữ liệu một cách an toàn hơn là chỉ băm NT (còn gọi là NTLM) không? Sẽ không có vấn đề gì nếu mật khẩu rõ ràng hoặc NT bị băm vì việc băm NT rất dễ dàng. Khi người dùng kết nối với wifi, mật khẩu sẽ được chuyển đổi thành NT băm để xác thực, vì vậy nếu ai đó sẽ đánh hơi mật khẩu trong khi xác thực họ sẽ chỉ nhận được một mật khẩu.
Eastman

Làm thế nào chính xác bạn sẽ "chuyển đổi" một băm sang một băm khác?
grawity

Tôi đã nghĩ rằng có thể băm NT có thể được băm và được xử lý bằng phương pháp băm mật mã khác và băm mới này sẽ được lưu trữ trong cơ sở dữ liệu. Tất nhiên sẽ cần có một số phần mềm đọc mật khẩu băm bổ sung, nhưng tôi đoán không có phần mềm nào để làm việc này. Lưu ý bên lề: Tôi đã nhận được mật khẩu băm NT làm việc với thiết lập của mình bằng cách thêm chúng bằng tay vào cơ sở dữ liệu. daloRADIUS không hỗ trợ hàm băm NT (hoặc Mật khẩu NT như được gọi trong FreeRADIUS) vì vậy tôi sẽ bỏ nó khỏi thiết lập của mình.
Eastman

Và, ừm, khi bạn cần hàm băm NT cho MS-CHAPv2, bạn sẽ trích xuất nó từ hàm băm "mới" như thế nào?
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.