Loading...

Local User & User Group trên FortiGate — Nền tảng quản lý danh tính người dùng

1. Liên hệ thực tế

Công ty khách hàng của VNExperts vừa triển khai xong hạ tầng mạng cơ bản với FortiGate, và giờ đến bước mà anh Nam luôn thấy "nhức đầu" nhất khi mới vào nghề: quản lý ai được phép truy cập gì.

Sếp yêu cầu: "Phòng Kế toán chỉ được ra Internet trong giờ hành chính, phòng IT thì không giới hạn, còn khách đến làm việc thì cho một tài khoản dùng tạm một ngày rồi thôi." Anh Nam định tạo một Firewall Policy riêng cho từng người, nhưng với gần 40 nhân viên thì rõ ràng không ổn — sửa quyền một phòng ban là phải sửa hàng chục policy.

Chị Lan giải thích: "Đừng gắn user trực tiếp vào Policy. Cách làm chuẩn là tạo user, gom các user có cùng quyền vào một user group, rồi Policy chỉ tham chiếu tới group. Sau này thêm hay bớt người, em chỉ cần sửa group — không đụng vào Policy."

Đây chính là chủ đề mở đầu Nhóm 6 của khóa học: cách FortiGate quản lý danh tính người dùng cục bộ (local user) và cách nhóm họ lại để áp dụng chính sách hiệu quả — nền tảng bắt buộc trước khi học tới LDAP, RADIUS, SSO ở các bài sau.


2. Kiến thức cốt lõi

2.1 Local User là gì và khi nào nên dùng

Local user là tài khoản người dùng được định nghĩa và lưu trữ trực tiếp trên FortiGate (không qua máy chủ xác thực bên ngoài). Đây là hình thức xác thực đơn giản nhất, phù hợp cho:

  • Văn phòng nhỏ, chưa có Active Directory/LDAP
  • Tài khoản kỹ thuật dùng riêng cho VPN (SSL-VPN, IPsec Dialup XAUTH)
  • Tài khoản khách (guest) dùng tạm thời

🔄 Khác biệt version FortiOS: Cấu trúc config user local cơ bản không đổi giữa 7.0/7.2/7.4. Từ 7.2 trở đi, FortiGate hỗ trợ thêm một số tùy chọn kiểm soát mật khẩu nâng cao (password policy áp cho local user) — bài này tập trung vào phần nền tảng dùng chung.

Local user có 4 kiểu xác thực (type) chính:

TypeMô tả
password Xác thực bằng username/password lưu cục bộ trên FortiGate
radius User cục bộ nhưng xác thực qua RADIUS server (sẽ học ở bài sau)
tacacs+ Tương tự, xác thực qua TACACS+
ldap Tương tự, xác thực qua LDAP server

Trong bài này ta tập trung vào type password — hình thức thuần cục bộ.

Cấu hình CLI tạo một local user:

config user local
    edit "nam.nv"
        set type password
        set passwd ********
        set email-to "nam.nv@company.local"
        set two-factor disable
        set status enable
    next
end

Một số tham số đáng chú ý:

  • set status enable/disable — tạm khóa tài khoản mà không cần xóa, hữu ích khi nhân viên nghỉ phép dài hạn.
  • set email-to — dùng khi bật FortiToken/email-based 2FA (sẽ nói kỹ ở bài Two-Factor Authentication trong Nhóm 6).
  • set two-factor — bật xác thực 2 lớp cho riêng user này.

Trên GUI: User & Authentication > User Definition > Create New > Local User, làm theo wizard 4 bước (thông tin đăng nhập → xác thực 2 yếu tố → thông tin liên hệ → gán vào group).

⚠️ Lưu ý: Local user tạo xong chưa có quyền gì cả nếu chưa thuộc group nào và group đó chưa được tham chiếu trong Firewall Policy. Đây là lỗi anh Nam hay gặp: tạo user xong, test không vào được mạng, mất cả buổi mới nhớ ra quên add vào group.

2.2 User Group — vì sao không gắn thẳng user vào Policy

FortiOS không cho phép Firewall Policy tham chiếu trực tiếp tới một local user riêng lẻ để làm điều kiện "Source" theo danh tính — việc match theo user luôn đi qua user group. Đây là thiết kế có chủ đích, giúp:

  • Thay đổi thành viên (thêm/bớt người) mà không phải sửa Policy
  • Một user có thể thuộc nhiều group, dùng cho nhiều mục đích khác nhau (VD: vừa thuộc group truy cập Internet, vừa thuộc group truy cập SSL-VPN)
  • Là điều kiện bắt buộc để dùng user trong nhiều tính năng khác: Firewall Policy, Traffic Shaping Policy, Proxy Policy, SSL-VPN portal, IPsec XAUTH, ZTNA, SSID (wifi), Web Filter theo profile riêng, Identity-based routing, và cả xác thực admin từ xa.

Có 4 loại group-type chính trong config user group:

group-typeỨng dụng
firewall Dùng cho Firewall Policy, SSL-VPN, Proxy Policy — loại phổ biến nhất
fsso-service Dùng cho Fortinet Single Sign-On (học ở bài FSSO cuối Nhóm 6)
rsso RADIUS Single Sign-On
guest Nhóm tài khoản khách với cơ chế tạo/hết hạn tự động

Cấu hình CLI tạo group loại firewall và thêm thành viên:

config user group
    edit "GRP_NHANVIEN"
        set group-type firewall
        set member "nam.nv" "lan.tc"
    next
end

Một firewall user group có thể chứa 2 loại thành viên:

  • member: các local user (hoặc user xác thực remote nhưng được định nghĩa entry local) — như ví dụ trên.
  • remote server group (qua config match): tham chiếu tới một group có sẵn trên RADIUS/LDAP, không cần khai từng user — sẽ đi sâu ở các bài LDAP/RADIUS trong Nhóm 6.

Ví dụ tham chiếu group vào Firewall Policy (GUI): tại mục Source của Policy, ngoài Address, ta chọn thêm User(s) trỏ tới group vừa tạo. Khi đó FortiGate sẽ yêu cầu client xác thực trước khi cho traffic đi qua — cơ chế này gọi là Identity-based Policy, sẽ được trình bày chi tiết trong Identity Policy & Authentication Rule.

Sơ đồ dưới đây tóm tắt toàn bộ luồng: từ local user, gom vào group, group được Policy tham chiếu, và cách FortiGate xử lý xác thực khi có traffic khớp policy dạng này.

Quan hệ Local User – User Group – Firewall Policy user: nam.nv user: lan.tc user: guest01 config user local User Group type: firewall "GRP_NHANVIEN" config user group Guest Group "GRP_GUEST" Firewall Policy Source: GRP_NHANVIEN Action: ACCEPT + Auth Rule Luồng xác thực khi traffic khớp Firewall Policy có user group Client gửi traffic Policy Lookup: group nào match? Yêu cầu đăng nhập (username/password) Check local user → RADIUS/LDAP

2.3 Guest User — tài khoản dùng tạm thời

Đây là tình huống thực tế của chị Lan trong phần mở đầu: khách đến làm việc chỉ cần một tài khoản có hiệu lực trong thời gian ngắn. FortiOS hỗ trợ sẵn cơ chế config guest, lồng bên trong config user group khi group-type là guest:

config user group
    edit "GRP_GUEST"
        set group-type guest
        config guest
            edit 1
                set user-id auto-generate
                set password auto-generate
                set expiration 2026-09-01 18:00:00
                set sponsor "lan.tc"
                set company "Khach vang lai"
            next
        end
    next
end

Với user-id auto-generate và password auto-generate, FortiGate tự sinh username/password ngẫu nhiên — rất tiện khi lễ tân cần cấp nhanh nhiều tài khoản khách trong ngày mà không cần nhớ đặt tên. Trường sponsor ghi lại ai là người bảo lãnh tài khoản khách đó, phục vụ truy vết khi cần.

Trên GUI, phần này nằm ở User & Authentication > Guest Management, cho phép in phiếu tài khoản (username/password) để đưa trực tiếp cho khách.

⚠️ Lưu ý: expiration là bắt buộc phải đặt hợp lý — tài khoản guest quên không hết hạn là một trong những lỗ hổng bảo mật phổ biến nhất bị các đội pentest phát hiện khi audit hệ thống doanh nghiệp.

2.4 Kiểm tra và debug user/group qua CLI

Một số lệnh get/diagnose hữu ich khi troubleshoot:

get user local
get user group

diagnose firewall auth list
diagnose firewall auth clear <IP hoặc all>
  • get user local / get user group — liệt kê nhanh cấu hình hiện có, không cần vào từng edit.
  • diagnose firewall auth list — xem danh sách các phiên đã xác thực thành công đang active trên FortiGate (rất hữu ích khi user báo "sao vẫn bị chặn dù đã đăng nhập" — có thể do session auth cũ chưa hết hạn với quyền cũ).
  • diagnose firewall auth clear — buộc xác thực lại, dùng khi vừa đổi group/quyền cho user mà session cũ vẫn còn hiệu lực.

3. Hỏi & Đáp

Một user có thể thuộc nhiều user group cùng lúc không?

Có. Một local user hoàn toàn có thể là thành viên của nhiều group khác nhau, ví dụ vừa thuộc group được phép SSL-VPN, vừa thuộc group được phép truy cập Internet theo Firewall Policy riêng. FortiGate sẽ áp policy tương ứng khi user đó khớp điều kiện Source User của từng Policy.

Tại sao tạo user xong mà Policy vẫn không nhận diện được?

Trường hợp phổ biến nhất là user chưa được thêm vào group nào, hoặc group đã tạo nhưng chưa được gán vào mục Source User của Firewall Policy. Ngoài ra cần kiểm tra set status của user có đang enable không, và Policy có bật đúng chế độ Identity-based (yêu cầu xác thực) hay chưa.

Guest user có cần đặt password thủ công không?

Không bắt buộc. Với set password auto-generate, FortiGate tự sinh mật khẩu ngẫu nhiên mỗi lần tạo tài khoản khách, giúp tránh việc dùng lại password yếu hoặc trùng lặp giữa các khách.

Xóa một local user đang thuộc group thì có lỗi không?

FortiGate sẽ không cho xóa trực tiếp nếu user đang được tham chiếu trong group (và group đó đang được Policy sử dụng) — cần gỡ user ra khỏi member của group trước, hoặc dùng -f filter để kiểm tra reference trước khi xóa nhằm tránh gián đoạn Policy đang hoạt động.


4. Quiz

Câu 1: Trong FortiOS, Firewall Policy tham chiếu user bằng cách nào?

  • A. Gán trực tiếp local user vào trường Source của Policy
  • B. Luôn phải thông qua user group, không gán trực tiếp user lẻ
  • C. Chỉ gán được qua địa chỉ IP cố định của user
  • D. Không thể dùng user trong Firewall Policy

Câu 2: Lệnh CLI nào dùng để tạo local user mới trên FortiGate?

  • A. config user radius
  • B. config user local
  • C. config firewall user
  • D. config system admin

Câu 3: Group-type nào phù hợp để cấp tài khoản dùng tạm thời cho khách vãng lai?

  • A. firewall
  • B. fsso-service
  • C. guest
  • D. rsso

Câu 4: Lệnh nào giúp buộc một user xác thực lại ngay sau khi vừa đổi quyền group?

  • A. diagnose firewall auth clear
  • B. get user local
  • C. execute reboot
  • D. diagnose sys top

👉 Đáp án

Câu 1: B FortiOS thiết kế theo hướng bắt buộc user phải nằm trong một user group thì mới dùng được trong Firewall Policy, giúp việc quản lý quyền linh hoạt hơn khi số lượng user tăng lên.

Câu 2: B config user local là lệnh cấu hình tài khoản người dùng cục bộ trên FortiGate.

Câu 3: C Group-type guest đi kèm khối config guest hỗ trợ tự sinh username/password và đặt thời hạn hết hạn, phù hợp cho khách vãng lai.

Câu 4: A diagnose firewall auth clear xóa phiên xác thực đang active, buộc FortiGate yêu cầu user đăng nhập lại và áp quyền mới ngay lập tức.


📚 Bài viết thuộc khóa học FortiGate của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
REST API FortiGate — hướng đi tự động hóa Mục lục khóa học FortiGate LDAP/AD Integration trên FortiGate