Xây dựng WiFi Doanh nghiệp Bảo mật với WPA3 và 802.1X trên Linux: Hướng dẫn về hostapd và VLAN

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

Vấn đề của việc dùng chung mật khẩu WiFi

Bước vào hầu hết các văn phòng nhỏ hoặc startup, bạn có thể dễ dàng bắt gặp một mảnh giấy ghi chú dán trên tường ghi mật khẩu WiFi. Đây chính là WPA2-Personal (PSK). Dù tiện lợi nhưng nó lại là một lỗ hổng bảo mật đối với các doanh nghiệp đang phát triển. Khi một nhân viên nghỉ việc, bạn buộc phải thay đổi mật khẩu cho mọi thiết bị trong tòa nhà để đảm bảo an toàn. Thực tế là hầu hết các nhóm không bao giờ làm điều này, khiến mạng nội bộ luôn mở cửa cho nhân viên cũ hoặc bất kỳ ai vô tình nhìn thấy mảnh giấy ghi chú đó.

Đa số các thiết lập văn phòng cơ bản đều gộp chung nhân viên, máy in và khách vào cùng một mạng “phẳng” (flat network). Đây là một rủi ro cực lớn. Tôi đã từng chứng kiến cảnh một chiếc laptop của khách bị nhiễm ransomware mã hóa toàn bộ ổ cứng mạng (NAS) của công ty chỉ trong chưa đầy 30 phút. Chi phí khắc phục trong những trường hợp đó thường vượt quá 10.000 USD—cao hơn nhiều so với chi phí thiết lập một hệ thống mạng chuẩn chỉnh ngay từ đầu.

Nguyên nhân gốc rễ: Danh tính và Sự cô lập

WiFi tiêu chuẩn thất bại vì nó thiếu Danh tính và Sự cô lập. WPA2-PSK xác thực mật khẩu chứ không phải xác thực con người. Bạn không thể biết liệu “Người dùng A” hay “Người dùng B” đang chiếm dụng băng thông hoặc đang tò mò xem các tệp tin nhân sự nhạy cảm.

Ngoài vấn đề danh tính, còn có vấn đề về phạm vi truy cập. Nếu không có gắn thẻ VLAN (Virtual Local Area Network), Điểm truy cập (AP) của bạn chỉ hoạt động như một cầu nối đơn giản, đổ toàn bộ lưu lượng vào cùng một giỏ. Chúng ta cần một kiến trúc có thể xác thực thông tin đăng nhập cá nhân và phân chia lưu lượng vào các “làn đường” cụ thể dựa trên vai trò của người dùng.

So sánh các cách tiếp cận WiFi Enterprise và Personal

Trước khi đi sâu vào cấu hình, hãy xem WPA3-Enterprise so với các lựa chọn thay thế tiêu chuẩn như thế nào.

WPA2/WPA3-Personal (PSK)

  • Cơ chế: Mọi thiết bị dùng chung một Khóa chia sẻ trước (Pre-Shared Key).
  • Đối tượng: Người dùng gia đình hoặc các cửa hàng nhỏ dưới 5 người.
  • Điểm yếu: Không có trách nhiệm giải trình cá nhân. Chỉ cần một lần rò rỉ là toàn bộ ranh giới bảo mật bị xâm phạm.

Phần cứng quản lý qua Cloud (Ubiquiti, Cisco Meraki)

  • Cơ chế: Các AP độc quyền được quản lý thông qua cổng web.
  • Đối tượng: Các doanh nghiệp vừa có ngân sách cho trải nghiệm quản lý qua giao diện đồ họa (GUI).
  • Điểm yếu: Chi phí phần cứng cao và phí bản quyền định kỳ.

Linux Software AP (hostapd + FreeRADIUS)

  • Cơ chế: Một máy chủ Linux tiêu chuẩn with card WiFi tương thích. 802.1X xử lý việc xác thực.
  • Đối tượng: Các đội ngũ IT yêu cầu sự kiểm soát tuyệt đối và không mất phí bản quyền.
  • Thế mạnh: Tính linh hoạt vô đối trong định tuyến, ghi nhật ký và thiết lập tường lửa.

Ưu và nhược điểm của phương pháp Linux hostapd

Tôi đã triển khai hệ thống này trong môi trường thực tế với hơn 50 người dùng và độ ổn định rất ấn tượng. Tuy nhiên, nó yêu cầu một bộ kỹ năng cụ thể. Dưới đây là thực tế:

Ưu điểm:

  • Kiểm soát chi tiết: Bạn có thể lập kịch bản cho các hành động cụ thể ngay khi người dùng kết nối.
  • Không phí bản quyền: Không có phí hàng tháng cho mỗi AP hoặc mỗi người dùng.
  • Hỗ trợ WPA3 thuần túy: Dễ dàng triển khai SAE và GCMP-256 cho bảo mật hiện đại.
  • Chủ quyền dữ liệu: Bạn sở hữu các bản nhật ký; không có dữ liệu đo lường nào được gửi đến nhà cung cấp đám mây.

Nhược điểm:

  • Gánh nặng kỹ thuật: Bạn sẽ phải quản lý các tệp văn bản thay vì nhấp chuột trên bảng điều khiển.
  • Kén phần cứng: Bạn phải chọn card WiFi hỗ trợ “AP Mode” trên Linux.

Thiết lập khuyến nghị

Đối với hướng dẫn này, hãy sử dụng bản cài đặt sạch của Ubuntu 22.04 hoặc 24.04 LTS. Bạn cần một card WiFi hỗ trợ nl80211 và chế độ AP mode. Hãy tìm các dòng chip Atheros như ath9k hoặc ath10k—đây là tiêu chuẩn vàng cho các AP trên Linux. Chúng ta sẽ sử dụng FreeRADIUS cho logic xử lý và hostapd để quản lý sóng radio.

Hướng dẫn triển khai

Bước 1: Cài đặt các thành phần cốt lõi

Bắt đầu bằng cách cập nhật hệ thống và cài đặt các công cụ cần thiết.

sudo apt update
sudo apt install hostapd freeradius freeradius-utils bridge-utils -y

Bước 2: Cấu hình FreeRADIUS (Bộ não)

FreeRADIUS xác minh thông tin đăng nhập. Chúng ta sẽ sử dụng mật khẩu đơn giản cho ví dụ này, mặc dù sau này bạn có thể liên kết nó với Active Directory. Chỉnh sửa cấu hình khách (clients) để hostapd có thể giao tiếp với máy chủ RADIUS:

# /etc/freeradius/3.0/clients.conf
client localhost {
    ipaddr = 127.0.0.1
    secret = testing123
}

Bây giờ, hãy định nghĩa người dùng và gán cho họ ID VLAN. Chúng ta sẽ sử dụng VLAN 10 cho Nhân viên (Staff) và VLAN 20 cho Khách (Guests).

# /etc/freeradius/3.0/users
"john_doe" Cleartext-Password := "staff_password"
    Tunnel-Type = 13,
    Tunnel-Medium-Type = 6,
    Tunnel-Private-Group-Id = "10"

"guest_user" Cleartext-Password := "guest_password"
    Tunnel-Type = 13,
    Tunnel-Medium-Type = 6,
    Tunnel-Private-Group-Id = "20"

Áp dụng các thay đổi: sudo systemctl restart freeradius.

Bước 3: Cấu hình hostapd (Sóng Radio)

Tiếp theo, chúng ta cấu hình sóng WiFi. WPA3-Enterprise yêu cầu Bảo vệ khung quản trị (Management Frame Protection – MFP) để ngăn chặn các cuộc tấn công ngắt xác thực (de-authentication).

# /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=nl80211
ssid=Corporate_WiFi
hw_mode=g
channel=6

# Cấu hình WPA3-Enterprise
ieee8021x=1
wpa=3
wpa_key_mgmt=WPA-EAP
dynamic_vlan=1
vlan_file=/etc/hostapd/hostapd.vlan
vlan_tagged_interface=eth0

# Thông tin máy chủ RADIUS
auth_algs=1
wpa_eap_reauth_period=3600
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123

# Bảo vệ khung quản trị (Bắt buộc cho WPA3)
ieee80211w=2

Ánh xạ các VLAN trong tệp hỗ trợ:

# /etc/hostapd/hostapd.vlan
*   wlan0.#

Điều này yêu cầu hostapd tự động tạo các giao diện ảo như wlan0.10 khi người dùng đăng nhập.

Bước 4: Cô lập mạng

Tạo các cầu nối (bridge) trên máy chủ Linux để xử lý lưu lượng. Bạn có thể sử dụng iproute2 để tạo br10 (Nhân viên) và br20 (Khách).

# Tạo bridge thủ công
sudo ip link add br10 type bridge
sudo ip link set br10 up

sudo ip link add br20 type bridge
sudo ip link set br20 up

Để khóa mạng, hãy sử dụng iptables. Điều này ngăn chặn br20 (Khách) truy cập vào br10 (Nhân viên).

# Chặn lưu lượng từ VLAN Khách sang VLAN Nhân viên
sudo iptables -A FORWARD -i br20 -o br10 -j REJECT
sudo iptables -A FORWARD -i br20 -d 192.168.10.0/24 -j REJECT

Bước 5: Kiểm tra kết nối

Chạy hostapd ở chế độ gỡ lỗi để theo dõi quá trình bắt tay (handshake) trong thời gian thực:

sudo hostapd -dd /etc/hostapd/hostapd.conf

Trên điện thoại hoặc laptop của bạn, chọn mạng WiFi. Chọn “EAP” và nhập thông tin đăng nhập cho john_doe. Nếu thành công, hostapd sẽ tạo giao diện wlan0.10 và kết nối nó vào br10 ngay lập tức.

Tổng kết

Chuyển sang WPA3-Enterprise có vẻ như là hơi quá mức cần thiết đối với một nhóm nhỏ, nhưng tỷ suất lợi nhuận trên đầu tư (ROI) về bảo mật là rất lớn. Bằng cách cô lập người dùng vào các VLAN ngay tại điểm truy cập, bạn sẽ thu hẹp bề mặt tấn công của mình. Nếu một khách mang thiết bị bị nhiễm mã độc vào văn phòng, thiết bị đó vẫn bị kẹt trong VLAN 20. Nó không thể nghe lén lưu lượng hoặc quét cổng trên các máy chủ sản xuất của bạn. Thiết lập này là một cách đáng tin cậy, tiết kiệm chi phí để xây dựng hạ tầng chuyên nghiệp mà không bị ràng buộc vào bất kỳ nhà cung cấp phần cứng nào.

Share: