Hướng dẫn sử dụng FreeRADIUS để xác thực Wi-Fi – Phần 1

Quản trị mạngCác mạng không dây cho các doanh nghiệp, dù lớn hay nhỏ, luôn phải được bảo vệ bằng chế độ enterprise của Wi-Fi Protected Access (WPA hoặc WPA2). Đây là chế độ cung cấp khả năng mã hóa mạnh hơn để bảo vệ mạng của bạn chống lại các tấn công Wi-Fi. Nó cũng có thể ẩn các khóa mã hóa đối với người dùng của bạn, chính vì vậy người dùng sẽ khó khăn hơn trong việc thỏa hiệp, không giống như chế độ (PSK) (personal hoặc pre-shared key) của WPA hoặc WPA2, chế độ phân phối các khóa mã hóa dễ bị tấn công, vì người dùng có thể tiết lộ các khóa của họ cho các chương trình mã độc mặc dù không chủ tâm.

Mặc dù vậy phiên bản enterprise lại yêu cầu bạn sử dụng một máy chủ RADIUS. Máy chủ này sẽ giúp người dùng tự xác thực họ để có thể truy cập vào mạng. Thay vì phải nhập vào khóa mã hóa, người dùng đăng nhập vào mạng bằng username và password. Các khóa thực sẽ được trao đổi mà người dùng không hề biết và khóa của người dùng là khác nhau cũng như được cập nhật thường xuyên.

Chúng ta có thể sử dụng máy chủ FreeRADIUS làm máy chủ xác thực người dùng, đây là một dự án mã nguồn mở, được phát triển trong GNU General Public License Version 2 (GPLv2). Nó quả thực là một máy chủ RADIUS đã được sử dụng rộng khắp trên toàn thế giới. Ngoài việc thực hiện thẩm định 802.1X/PEAP, thẩm định mà chúng ta sẽ thiết lập, máy chủ này còn hỗ trợ nhiều kiểu thẩm định khác đối với một loạt kiểu mạng khác nhau. Nó cũng có khả năng tự động chuyển đổi dự phòng, cân bằng tải và hỗ trợ nhiều cơ sở dữ liệu backend.

Trước tiên bạn cần cài đặt một phân phối Linux. Hướng dẫn này được dựa trên hệ điều hành CentOS, một hệ điều hành mã nguồn mở miễn phí. Bên cạnh đó các hệ điều hành Mac OS X và Windows cũng được hỗ trợ, cũng như các phân phối Linux.

Mẹo: Nếu không thực hiện một cài đặt mới mặc định của CentOS 5.3, bạn cần bảo đảm đã cài đặt gói OpenSSL trước khi thực hiện.

Bạn có thể cài đặt FreeRADIUS trên bất cứ PC cũ nào. Chỉ cần bảo đảm rằng máy tính FreeRADIUS có một kết nối chạy dây với mạng. Thêm vào đó cũng bảo đảm rằng nó có một địa chỉ IP tĩnh chứ không phải là một địa chỉ động. Gán địa chỉ này cho adapter mạng trong CentOS hoặc dự trữ một địa chỉ khác thông qua các thiết lập DHCP của router.

Lưu ý: Hướng dẫn cài đặt được dựa tên phiên bản 5.3 của hệ điều hành CentOS và phiên bản FreeRADIUS 2.1.6. Lúc này các gói phần mềm FreeRADIUS hiện hành không được cung cấp thông qua địa chỉ lưu trữ CentOS thông thường mà chỉ có các gói phần mềm phiên bản cũ 1.x.x. Chính vì vậy chúng ta sẽ sử dụng một location của nhóm thứ ba. Mặc dù vậy sau này bạn vẫn có thể cài đặt phiên bản hiện hành (2.x.x) của FreeRADIUS bằng cách sử dụng các gói phần mềm thông qua Package Manager hoặc một cách nào đó.

  • Sử dụng CentOS, download file freeradius2.repo và lưu nó vào desktop.
  • Mở một Terminal và đánh "su", nhập vào mật khẩu gốc của bạn. Sau đó đánh "cp /home/yourusername/Desktop/freeradius2.repo /etc/yum.repos.d".
  • Tiếp tục đánh "yum install freeradius2", và khi được nhắc nhở, nhập "y" để bắt đầu quá trình cài đặt.
  • Nếu cần đến các dependency, hãy chọn để cài đặt chúng.

Mẹo: Nếu bạn gặp lỗi "Package is not signed", hãy đánh "gedit" và sử dụng trình soạn thảo văn bản (text editor) để thay đổi "gpgcheck=1" thành "gpgcheck=0" trong file /etc/yum.conf, sau đó lưu và đóng trình soạn thảo văn bản. Sau khi cài đặt hoàn tất, đảo ngược các thiết lập này. Hãy đánh vào dòng cài đặt lần nữa trong cửa sổ terminal đang tồn tại.

Bạn có thể cài đặt các gói phần mềm FreeRADIUS bổ sung, chẳng hạn như gói phần mềm hỗ trợ cho cơ sở dữ liệu backend. Để thấy được danh sách các gói, hãy đánh "yum info freeradius2*". Trong hướng dẫn này, chúng tôi chỉ sử dụng MySQL, vì vậy chúng tôi cài đặt nó bằng câu lệnh "yum install freeradius2-mysql". Tiếp đến, chọn cài đặt các dependency bằng cách đánh “y”.

Khởi động cấu hình file

Nếu bạn chưa làm việc với các máy chủ Unix/Linux hoặc các ứng dụng dòng lệnh thì FreeRADIUS có thể khá khó hiểu đối với bạn lúc này. Mặc dù có một vài tiện ích GUI có sẵn nhưng nó thường được cấu hình thông qua các file văn bản cấu hình.

Việc cài đặt FreeRADIUS rất đơn giản. Các file cấu hình mặc định được cấu hình trước để chạy hầu hết các giao thức thẩm định mà không cần nhiều hay bất cứ thay đổi nào.

Không thay đổi hoặc xóa các thiết lập mà bạn không hiểu những gì về nó và những gì nó thực hiện. Một lỗi đơn giản có thể phá hỏng cấu hình và có thể tốn nhiều thời gian để khắc phục sự cố. Nếu bạn có bất cứ thay đổi nào bên ngoài hướng dẫn này, hãy thực hiện từng bước một. Thay đổi một thiết lập hoặc một phần chứa các thiết lập, sau đó test xem điều gì đã xảy ra với thay đổi của bạn.

Tạo các chứng chỉ tự ký cho PEAP

Mặc dù các chứng chỉ SSL được yêu cầu cho PEAP nhưng TLS hiện được tạo một cách tự động bởi FreeRADIUS, vì vậy bạn vẫn phải tùy chỉnh các thuộc tính nhận dạng và mật khẩu. Thực hiện điều này trước khi chạy máy chủ lần đầu và đây là cách thực hiện những thay đổi.

  • Mở một terminal, đánh "su" cho root mode, và chạy "gedit" để mở trình soạn thảo văn bản. Sau đó mở các file ca, clientserver cnf từ /etc/raddb/certs. Trong mỗi một file cấu hình, hãy chỉnh sửa như sau:
    • Thay đổi "default_days" trong phần CA Default thành con số lớn hơn một năm, vì vậy bạn không phải tạo và nâng cấp chứng chỉ ngay.
    • Thay đổi "input_password" và "output_password" trong phần Req để các chứng chỉ được bảo vệ thay cho mật khẩu mặc định.
    • Thay đổi 6 giá trị cho các trường nhận dạng trong các phần Certificate Authority, ClientServer.
  • Lưu các file nhưng không đóng trình soạn thảo lúc này.
  • Bạn cần nâng cấp mật khẩu trong file etc/raddb/eap.conf bằng cách thay đổi giá trị "private_key_password" trong phần TLS.
  • Lưu file và đóng trình soạn thảo.

Trong root terminal đang tồn tại, đánh "/usr/sbin/radiusd -X". Lệnh này sẽ tạo các chứng chỉ tự ký của bạn và bắt đầu máy chủ trong chế độ gỡ rối để bạn có thể thấy những gì đang xảy ra. Nếu mọi thứ diễn ra như kế hoạch thì bạn sẽ thấy dòng chữ "Ready to process requests" cuối cùng.

Mặc dù máy chủ hiện đã được cài đặt và có thể chạy, nhưng các phần tiếp theo sẽ hướng dẫn bạn cách cấu hình một vài thiết lập khác trước khi sẵn sàng thẩm định người dùng Wi-Fi của bạn.

Cài đặt các thiết lập EAP

Có nhiều kiểu EAP, vì vậy bạn phải chỉ định kiểu nào mình muốn sử dụng. Trong hướng dẫn này chúng ta sẽ thảo luận về việc sử dụng PEAP, đây là một kiểu EAP không yêu cầu bạn tạo các chứng chỉ bảo mật cho mỗi người dùng. Họ kết nối và mạng bằng cách sử dụng username và password của họ.

Khi bạn sẵn sàng, hãy tạo một thay đổi nhỏ đối với file cấu hình EAP:

  • Mở Terminal, đánh "su" cho root mode, và chạy "gedit" để mở Text Editor. Sau đó mở etc/raddb/eap.conf.
  • Trong phần đầu tiên của phần EAP, thay đổi "default_eap_type" từ "md5" thành "peap".
  • Lưu và đóng file, tuy nhiên vẫn để mở Text Editor.

Tạo tài khoản người dùng

Tiếp đến bạn cần tạo các username và password mà người dùng sẽ nhập vào khi kết nối đến mạng Wi-Fi. Đầu tiên chúng ta sẽ tạo một tài khoản người dùng trong file cấu hình để test máy chủ. Sau đó chúng ta sẽ sử dụng cơ sở dữ liệu MySQL để lưu thông tin người dùng, đây là một giải pháp tuyệt vời nếu bạn có nhiều người dùng hoặc cần thay đổi các thông tin về mật khẩu của họ một cách thường xuyên.

Trong trình soạn thảo văn bản root đang tồn tại, mở etc/raddb/users. Sau đó đánh vào username, nhấn Tab và đánh Cleartext-Password := "thepassword".

Đây là một ví dụ:

egeier Cleartext-Password := "pass123"

Lưu và đóng file, tuy nhiên vẫn để mở trình soạn thảo.

Nhập vào các thông tin chi tiết của AP (client)

Lúc này bạn phải nhập vào địa chỉ IP và bí mật đã chia sẻ (mật khẩu) của tối thiểu một AP không dây, thứ được gọi là client đối với FreeRADIUS. Tiếp đến bạn có thể lưu trữ các thông tin chi tiết của client trong một cơ sở dữ liệu, chẳng hạn như MySQL. Mặc dù vậy nếu bạn đang làm việc trong một mạng nhỏ, thì bạn có thể dễ dàng sử dụng phương pháp file văn bản.

Trên một trình soạn thảo văn bản root đang tồn tại, mở etc/raddb/clients.conf và nhập vào các thông tin chi tiết ở đâu đó cho mỗi một AP theo ví dụ dưới đây:

client 192.168.0.1 {
secret = testing123
shortname = private-network-1
}

Thay đổi địa chỉ IP, nhập vào bí mật duy nhất cho mỗi AP và có thể nhập cả tên mô tả. Sau đó không quên lưu file khi bạn đã thực hiện xong các thay đổi.

Thứ Tư, 20/11/2019 16:04
2,65 👨 9.093
0 Bình luận
Sắp xếp theo