HoaTran Logo
VIE | ENG

📘 Tuần 11 – User Authentication, LDAP/AD và FortiAuthenticator

Kết nối FortiGate với Active Directory qua LDAP, tạo user group IT-STAFF, áp dụng firewall policy theo danh tính người dùng thay vì địa chỉ IP.

🗺️ Sơ đồ – Xác thực người dùng qua Active Directory

sequenceDiagram
    participant User as User - PC VLAN10
    participant FGT as FortiGate
    participant AD as Active Directory DC 10.10.20.50

    User->>FGT: Truy cap web HTTP/HTTPS
    FGT->>User: Hien trang dang nhap Captive Portal
    User->>FGT: Nhap username + password
    FGT->>AD: LDAP Query - User nay co ton tai khong?\nBind: [email protected] port 389
    AD->>FGT: Xac nhan user nguyen.van.a\nThuoc nhom CN=IT,OU=Groups
    FGT->>FGT: Tim policy khop nhom IT-STAFF
    FGT->>User: Cho phep truy cap Server VLAN20
            

🗺️ Sơ đồ – Các loại xác thực

graph LR
    subgraph AuthTypes["Cac loai xac thuc trong FortiOS"]
        Local["Local User\nTao truc tiep tren FortiGate\nPhu hop lab/nho"]
        LDAP_box["LDAP/AD Remote\nKet noi Active Directory\nPhu hop doanh nghiep"]
        RADIUS["RADIUS\nChuan xac thuc tap trung\nHo tro 2FA"]
        Cert_auth["Certificate-based\nDung chung chi so\nBao mat cao nhat"]
    end

    Policy["Firewall Policy\nAp dung theo User/Group"]
    Local --> Policy
    LDAP_box --> Policy
    RADIUS --> Policy
    Cert_auth --> Policy
            

📚 Lý thuyết cơ bản

🔰 Xác thực (Authentication) là gì?

Xác thực = Kiểm tra "Bạn là ai?" trước khi cho phép truy cập.

💡 Giống như bảo vệ kiểm tra thẻ nhân viên ở cổng:

- Có thẻ hợp lệ, tên đúng nhóm được phép → vào được.

- Không có thẻ, thẻ hết hạn, không thuộc nhóm → chặn lại.

🔰 Active Directory (AD) là gì?

Active Directory = Hệ thống quản lý tài khoản người dùng tập trung của Microsoft Windows.

💡 Giống như bộ phận HR của công ty: biết danh sách nhân viên, biết ai thuộc phòng ban nào. Khi nhân viên nghỉ việc → xóa khỏi AD → mất quyền truy cập tất cả hệ thống.

🔰 LDAP là gì?

LDAP (Lightweight Directory Access Protocol) = Giao thức để FortiGate "hỏi" Active Directory.

FortiGate gửi câu hỏi qua LDAP: "User 'nguyen.van.a' có tồn tại không? Họ thuộc nhóm nào?"

CổngBảo mậtDùng khi
389Không mã hóa (plain text)Lab, mạng nội bộ kín
636Mã hóa TLS (LDAPS)Production, khuyến nghị

🔰 Policy theo User vs Policy theo IP

Policy theo IPPolicy theo User/Group
Kiểm soátTheo địa chỉ IP máy tínhTheo danh tính người dùng
Vấn đềUser ngồi máy khác = bị chặnTheo dõi theo tên thật
Linh hoạtÍt linh hoạtLinh hoạt hơn
Ví dụPC 10.10.10.100 → cho phépUser "IT-STAFF" → cho phép

🛠️ Thực hành

Cấu hình kết nối LDAP đến Active Directory

config user ldap
    edit "AD-CORP"
        set server "10.10.20.50"
        set port 389
        set type regular
        set username "cn=svc_fgt,ou=serviceaccount,dc=lab,dc=local"
        set password svc_SecretP@ss
        set cnid "sAMAccountName"
        set dn "dc=lab,dc=local"
        set member-attr "memberOf"
    next
end

Tạo User Group từ LDAP

config user group
    edit "IT-STAFF"
        set member "AD-CORP"
        config match
            edit 1
                set server-name "AD-CORP"
                set group-name "CN=IT,OU=Groups,DC=lab,DC=local"
            next
        end
    next
end

Áp dụng Group vào Firewall Policy

config firewall policy
    edit 10
        set name "IT_to_SERVER"
        set srcintf "port3.10"
        set dstintf "port3.20"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set users "IT-STAFF"
        set logtraffic all
    next
end

Test kết nối LDAP

# Test LDAP từ CLI
diagnose test authserver ldap AD-CORP nguyen.van.a MyPassword

🔒 Bảo mật cần nhớ

  • ✅ Dùng service account riêng (không phải domain admin) để FortiGate bind LDAP.
  • ✅ Bật LDAPS (port 636) thay vì LDAP plain text (port 389).
  • ✅ Service account chỉ cần quyền read-only trong AD.
  • ✅ Đặt mật khẩu mạnh cho service account và quay vòng định kỳ.

📖 Case thực tế

Công ty muốn: nhóm IT truy cập server VLAN20, nhóm HR không được.

Trước đây: Dùng policy theo IP → HR ngồi máy IT = vào được server.

Sau khi dùng LDAP + AD Group:

- User HR dù ngồi máy nào cũng bị chặn.

- User IT dù ngồi máy nào cũng được phép.

- Nhân viên HR nghỉ việc → xóa khỏi AD → tự động mất quyền.


📅 Tuần 11/12 – FortiOS 7.6.6 Administration Lab

Z