MikroTik Home Zalo 0917516878 Email
HoaTranLab MikroTik
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 ánMô tảƯu điểmPhù hợp
User Manager (Built-in)RADIUS tích hợp sẵn RouterOSKhông cần server riêng, dễ setupLab, SME < 50 user
FreeRADIUS (Linux)Open-source RADIUS đầy đủMạnh, tích hợp DB/LDAP/ADDoanh nghiệp
NPS (Windows Server)Network Policy ServerTích hợp AD sâu, GUI đẹpMô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 -v

Bướ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 freeradius

Bướ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 once

Bướ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:

← Chương 5Chương 7: Firewall