Chương 6
🔐 RADIUS – WiFi Authentication
Triển khai FreeRADIUS trên Linux, cấu hình MikroTik làm NAS, tích hợp WPA2-Enterprise và Active Directory.
⏱ 40 phút🔐 Security🏢 Enterprise🎯 Core Lab
📚
6.1 Lý thuyết RADIUS & 802.1X
Luồng xác thực 802.1X RADIUS
[Laptop/Phone] [MikroTik AP] [RADIUS Server] [AD/LDAP]
(Supplicant) (Authenticator) (Auth Server)
│ │ │ │
│──EAP-Start──────▶│ │ │
│◀─EAP-Request─────│ │ │
│──EAP-Response────▶│ │ │
│ (user/password) │──RADIUS Access-────▶│ │
│ │ Request │──LDAP Bind───────▶│
│ │ │◀─Bind OK──────────│
│ │◀─RADIUS Access-────│ │
│ │ Accept/Reject │ │
│◀─WiFi Connected──│ │ │
| Phương án | Mô tả | Ưu điểm | Phù hợp |
|---|---|---|---|
| User Manager (Built-in) | RADIUS tích hợp sẵn RouterOS | Không cần server riêng, dễ setup | Lab, SME < 50 user |
| FreeRADIUS (Linux) | Open-source RADIUS đầy đủ | Mạnh, tích hợp DB/LDAP/AD | Doanh nghiệp |
| NPS (Windows Server) | Network Policy Server | Tích hợp AD sâu, GUI đẹp | Môi trường Windows AD |
🐧
6.2 Phương án A: FreeRADIUS trên Ubuntu (Khuyến nghị)
📍 Server: Ubuntu 20.04/22.04 LTS – IP: 192.168.99.10 (VLAN 99 Management)
Bước 1 – Cài đặt FreeRADIUS
# Trên Ubuntu Server (192.168.99.10) – RADIUS-SRV
sudo apt update && sudo apt upgrade -y
# Cài FreeRADIUS
sudo apt install freeradius freeradius-mysql freeradius-utils -y
# Kiểm tra service
sudo systemctl status freeradius
sudo systemctl enable freeradius
# Kiểm tra version
freeradius -vBước 2 – Cấu hình NAS Client
# Cấu hình NAS client (MikroTik AP)
sudo nano /etc/freeradius/3.0/clients.conf
# Thêm vào CUỐI file:
client mikrotik-office {
ipaddr = 192.168.10.1 # IP MikroTik
secret = "R@dius_S3cr3t!" # Shared secret – phải khớp với MikroTik
shortname = MikroTik-Office
nas_type = other
require_message_authenticator = no
}⚠️ Shared Secret phải HOÀN TOÀN KHỚP giữa FreeRADIUS clients.conf và MikroTik /radius config. Đây là lỗi phổ biến nhất.
Bước 3 – Thêm Users test
# Thêm test users (dùng cho lab – production dùng DB hoặc LDAP)
sudo nano /etc/freeradius/3.0/users
# Thêm vào CUỐI file:
"staff001" Cleartext-Password := "Staff@2025!"
Reply-Message = "Welcome staff001 to OFFICE-WIFI"
"staff002" Cleartext-Password := "Staff@2025!"
Reply-Message = "Welcome staff002"
"mgmt-admin" Cleartext-Password := "Mgmt@Admin2025"
Reply-Message = "Management Access Granted" Bước 4 – Test FreeRADIUS
# Debug mode để test (dừng service trước)
sudo systemctl stop freeradius
sudo freeradius -X # Chạy foreground với debug output đầy đủ
# Mở terminal khác – test authentication
radtest staff001 "Staff@2025!" 127.0.0.1 0 "R@dius_S3cr3t!"
# Kết quả thành công:
# Sent Access-Request Id 0 from 0.0.0.0:xxxxx to 127.0.0.1:1812
# Received Access-Accept Id 0 from 127.0.0.1:1812
# Sau khi test OK:
sudo systemctl start freeradiusBước 5 – Cấu hình MikroTik kết nối RADIUS
# Trên MikroTik – Thêm RADIUS Server
/radius add \
service=wireless,hotspot \
address=192.168.99.10 \
secret="R@dius_S3cr3t!" \
authentication-port=1812 \
accounting-port=1813 \
timeout=3000 \
comment="FreeRADIUS-Office"
# Kiểm tra kết nối RADIUS
/radius monitor 0 onceBước 6 – Cấu hình WiFi WPA2-Enterprise
# Security Profile – WPA2-Enterprise (EAP)
/interface wireless security-profiles
add name=prof-enterprise \
mode=dynamic-keys \
authentication-types=wpa2-eap \
eap-methods=passthrough \
tls-mode=no-certificates \
comment="WPA2-Enterprise RADIUS Auth"
# Áp dụng cho SSID doanh nghiệp
/interface wireless set wlan1 \
ssid="CORP-WIFI-SECURE" \
security-profile=prof-enterprise \
mode=ap-bridge
# Bật RADIUS Accounting (ghi log user kết nối/ngắt)
/interface wireless security-profiles set prof-enterprise \
radius-mac-accounting=yes💡 Trong production, dùng EAP-TLS hoặc PEAP-MSCHAPv2 thay vì PAP để mã hóa credential trong quá trình xác thực.
🔧
6.3 Phương án B: User Manager (Built-in RouterOS)
# ══ Phương án 2: User Manager (Built-in) ══
# Dành cho lab hoặc SME không muốn dùng Linux server
# Upload package user-manager (nếu chưa có)
# Download từ: mikrotik.com/download → Extra packages → chọn đúng version
# Upload vào Winbox → Files → rồi /system package update
# Kích hoạt User Manager
/user-manager set enabled=yes
# Thêm RADIUS Client trỏ về chính router
/radius add \
service=hotspot,wireless \
address=127.0.0.1 \
secret="LocalRadius123" \
authentication-port=1812
# Truy cập User Manager UI:
# http://192.168.10.1/userman
# → Routers → Add → IP: 127.0.0.1, Secret: LocalRadius123
# → Users → Add → Username: user01, Password: Pass@123🏢
6.4 Nâng cao: Tích hợp Active Directory qua LDAP
# ══ Tích hợp FreeRADIUS với Active Directory (LDAP) ══
# Cài module LDAP
sudo apt install freeradius-ldap -y
# Sửa file ldap config
sudo nano /etc/freeradius/3.0/mods-available/ldap
# Cấu hình trong block ldap { ... }:
server = "192.168.99.20" # IP Domain Controller
port = 389
identity = "CN=radius-svc,OU=Service Accounts,DC=company,DC=local"
password = "SvcAccPass@2025!"
base_dn = "DC=company,DC=local"
user {
base_dn = "OU=Users,DC=company,DC=local"
filter = "(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})"
}
group {
base_dn = "OU=Groups,DC=company,DC=local"
filter = "(objectClass=group)"
membership_attribute = "memberOf"
}
# Enable LDAP module
sudo ln -s /etc/freeradius/3.0/mods-available/ldap \
/etc/freeradius/3.0/mods-enabled/ldap
# Sửa sites-enabled/default để dùng ldap
sudo nano /etc/freeradius/3.0/sites-enabled/default
# Trong section "authenticate", uncomment dòng: ldap
sudo systemctl restart freeradius
# Test với AD user
radtest john.doe "ADPass@2025" 127.0.0.1 0 "R@dius_S3cr3t!" ℹ️ Nên tạo Service Account AD riêng cho FreeRADIUS với quyền Read-only trên AD OU Users/Groups.
✅
6.5 Checklist RADIUS Lab
✅ Checklist hoàn thành lab RADIUS:
- ☐ FreeRADIUS cài thành công, service running
- ☐ clients.conf có entry cho MikroTik IP với đúng secret
- ☐ Test radtest từ server thành công (Access-Accept)
- ☐ MikroTik /radius add với đúng IP + secret
- ☐ Security profile WPA2-EAP áp dụng cho SSID
- ☐ Kết nối WiFi từ laptop với username/password RADIUS thành công
- ☐ Kiểm tra /radius monitor thấy Access-Accept counter tăng