Loading...

Quản lý Admin FortiGate: Admin Profile, quyền hạn, Trusted Hosts, Admin Lockout, Password Policy & 2FA

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

Sau vụ việc FortiCare ở bài trước, anh Nam được sếp giao thêm việc: tạo tài khoản CLI riêng cho hai bạn kỹ thuật mới vào nghề, nhưng "chỉ cho xem log, đừng cho đụng vào Firewall Policy, lỡ tay xóa nhầm rule là công ty khách hàng sập mạng."

Anh Nam tạo tài khoản xong, đưa cho hai bạn dùng chung một password đơn giản là "Fortinet123" để dễ nhớ. Chị Lan nhìn thấy, lắc đầu: "Anh làm vậy là sai tới ba lỗi cùng lúc đấy. Thứ nhất, không dùng chung tài khoản — mất dấu vết ai làm gì. Thứ hai, password đó chắc chắn bị brute-force chỉ trong vài phút nếu để lộ ra ngoài Internet. Thứ ba, anh chưa giới hạn quyền — hai bạn mới vẫn đang dùng chung accprofile là super_admin, tức là full quyền, kể cả xóa policy."

Anh Nam ngớ người: "Vậy giờ làm sao cho đúng?"

Đây chính là nội dung bài này — cách phân quyền chi tiết theo Admin Profile, giới hạn nguồn đăng nhập bằng Trusted Hosts, chống dò mật khẩu bằng Admin Lockout, ép mật khẩu đủ mạnh bằng Password Policy, và thêm lớp bảo vệ cuối cùng bằng Two-Factor Authentication (2FA).


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

2.1 Admin Profile — phân quyền theo nhóm chức năng

Mỗi tài khoản quản trị trên FortiGate được gán một Admin Profile (accprofile) quyết định họ được xem/sửa những gì. FortiOS có sẵn hai profile mặc định:

  • super_admin — toàn quyền trên mọi thành phần, kể cả tạo/xóa tài khoản admin khác. Đây là profile của tài khoản admin mặc định. Không thể xóa hoặc chỉnh sửa profile này — luôn phải giữ lại ít nhất một tài khoản super_admin để đảm bảo có đường vào quản trị thiết bị.
  • prof_admin — có thể chỉnh sửa được, dùng làm mẫu tùy biến.

Với nhu cầu phân quyền chi tiết hơn, tạo custom accprofile, gán từng nhóm chức năng ở một trong các mức: none(không thấy), read (chỉ xem), read-write (toàn quyền trong nhóm), hoặc custom (phân quyền chi tiết hơn nữa xuống từng mục con).

Admin Profile: phân quyền theo nhóm chức năng (accprofile) Tài khoản admin Gán 1 Admin Profile (accprofile) sysgrp Hệ thống, tài khoản admin khác, backup netgrp Interface, routing, DHCP, DNS fwgrp Firewall Policy, Address, Service Object utmgrp Antivirus, IPS, Web Filter, App Control vpngrp / loggrp VPN, và Log & Report Mỗi nhóm có thể set none / read / read-write / custom — độc lập với các nhóm còn lại VD: tài khoản Helpdesk chỉ cần fwgrp = read, utmgrp = read-write, các nhóm khác = none

Ví dụ tạo một profile chỉ cho xem log và Firewall Policy, không cho sửa gì:

config system accprofile
    edit "readonly_soc"
        set fwgrp read
        set loggrp read
        set ftviewgrp read
    next
end

config system admin
    edit "hotro01"
        set accprofile "readonly_soc"
        set password "..."
        set vdom "root"
    next
end

⚠️ Lưu ý: Trong nhóm sysgrp, mục con admin (quyền tạo/sửa/xóa tài khoản admin khác) là mục nhạy cảm nhất — cấp read-write cho mục này gần như tương đương cấp super_admin, vì tài khoản đó có thể tự tạo thêm tài khoản super_admin khác cho chính mình. Chỉ nên cấp cho người thực sự quản lý toàn bộ hệ thống.

2.2 Trusted Hosts — giới hạn nguồn đăng nhập

Trusted Hosts giới hạn địa chỉ IP/subnet được phép đăng nhập cho một tài khoản admin cụ thể — áp dụng cho hầu hết các hình thức truy cập quản trị: HTTPS, SSH, SNMP. Khi đã khai báo Trusted Hosts cho một tài khoản, FortiGate chỉ chấp nhận đăng nhập từ đúng những host đó — dù gõ đúng usename/password từ nơi khác vẫn bị từ chối. Tối đa khai báo được 10 host/subnet cho mỗi tài khoản.

config system admin
    edit "hotro01"
        set trusthost1 10.0.0.0 255.255.255.0
        set trusthost2 192.168.10.5 255.255.255.255
    next
end

⚠️ Lưu ý: Trusted Hosts không áp dụng cho ping — nếu interface bật cho phép ping, thiết bị vẫn trả lời ping từ bất kỳ địa chỉ IP nào, không phụ thuộc Trusted Hosts đã khai báo.

2.3 Admin Lockout — chống dò mật khẩu (brute-force)

Mặc định, FortiGate cho phép 3 lần nhập sai mật khẩu (admin-lockout-threshold), sau đó khóa tài khoản trong 60 giây (admin-lockout-duration). Cả hai tham số này chỉnh được trong config system global:

config system global
    set admin-lockout-threshold 3
    set admin-lockout-duration 60
end
  • admin-lockout-threshold: từ 1 đến 10 lần thử.
  • admin-lockout-duration: từ 1 giây đến hơn 68 năm (2147483647 giây).

Ví dụ đặt ngưỡng nghiêm ngặt hơn — chỉ cho thử 1 lần, khóa 5 phút:

config system global
    set admin-lockout-threshold 1
    set admin-lockout-duration 300
end

⚠️ Lưu ý: Ngưỡng thử càng cao, rủi ro bị dò mật khẩu càng lớn — nhưng ngưỡng quá thấp (1 lần) dễ khiến chính admin tự khóa tài khoản mình chỉ vì gõ nhầm phím. Cơ chế lockout tính theo từng tài khoản(theo username), không theo địa chỉ IP nguồn, và muốn mở khóa sớm trước khi hết thời gian chờ thì hiện tại không có cách trực tiếp — phải đợi hết admin-lockout-duration hoặc khởi động lại thiết bị.

2.4 Password Policy — ép chuẩn mật khẩu

config system password-policy áp dụng cho mật khẩu admin cục bộ và pre-shared key IPsec, kiểm soát độ dài và độ phức tạp:

config system password-policy
    set status enable
    set apply-to admin-password
    set minimum-length 12
    set min-upper-case-letter 1
    set min-lower-case-letter 1
    set min-number 1
    set min-non-alphanumeric 1
    set expire-status enable
    set expire-day 90
    set reuse-password disable
end

Các tham số chính:

Tham sốÝ nghĩa
minimum-length Độ dài tối thiểu (8–128 ký tự)
min-upper-case-letter / min-lower-case-letter Số ký tự hoa/thường tối thiểu
min-number / min-non-alphanumeric Số chữ số / ký tự đặc biệt tối thiểu
expire-status + expire-day Bật hết hạn mật khẩu sau N ngày (1–999)
reuse-password Cho phép dùng lại mật khẩu cũ hay không

🔄 Khác biệt version FortiOS: Tham số đổi tên qua các bản — bản cũ (6.x) dùng change-4-characters (bật/tắt yêu cầu đổi tối thiểu 4 ký tự so với mật khẩu cũ); từ 7.0 trở lên đổi thành min-change-characters (chỉ định số ký tự cụ thể). Từ 7.6/8.0, thêm reuse-password-limit (giới hạn số mật khẩu cũ được phép tái sử dụng) và login-lockout-upon-weaker-encryption. Khi thao tác trên thiết bị thật, dùng ? để xác nhận tham số đúng theo phiên bản đang chạy.

2.5 Two-Factor Authentication (2FA) — lớp bảo vệ cuối cùng

2FA yêu cầu admin cung cấp thêm một yếu tố xác thực ngoài mật khẩu — thường là mã OTP từ FortiToken (dạng mobile app, phần cứng, hoặc FortiToken Cloud). Mỗi thiết bị FortiGate đã đăng ký được cấp kèm 2 FortiToken mobile miễn phí để dùng thử.

3 lớp phòng thủ khi đăng nhập quản trị FortiGate 1. Trusted Hosts Chặn từ lớp mạng — chỉ IP/subnet khai báo mới được thử đăng nhập Áp dụng: HTTPS, SSH, SNMP (không áp dụng ping) Tối đa 10 host/subnet 2. Password + Lockout Password Policy: độ dài, ký tự hoa/thường/số Sai quá admin-lockout- threshold lần (mặc định 3) → khóa admin-lockout- duration giây (mặc định 60) 3. Two-Factor Auth Đúng mật khẩu vẫn chưa vào được — cần thêm mã OTP từ FortiToken (mobile/ cloud/email) Vượt qua đủ cả 3 lớp mới truy cập được GUI/CLI quản trị

Cấu hình 2FA cho một tài khoản admin qua CLI:

config system admin
    edit "hotro01"
        set two-factor fortitoken
        set fortitoken <serial_number>
        set email-to "hotro01@vnexperts.vn"
    next
end

Sau khi gán, admin có thời hạn mặc định (two-factor-ftm-expiry, tính bằng giờ, 1–168) để kích hoạt token trên app FortiToken Mobile trước khi mã kích hoạt hết hạn.

⚠️ Lưu ý quan trọng: Trước khi bật 2FA cho tài khoản đang dùng, luôn tạo sẵn một tài khoản super_admin dự phòng chưa bật 2FA. Nếu admin làm mất điện thoại, đổi máy, hoặc lỗi đồng bộ thời gian NTP (mã OTP dựa trên time-based OTP nên rất nhạy với sai lệch giờ hệ thống) mà không còn tài khoản dự phòng, sẽ bị khóa hoàn toàn khỏi thiết bị — Fortinet không có cơ chế can thiệp từ xa để gỡ 2FA hộ, phải reset cứng thiết bị.

2.6 Các biện pháp cứng hóa bổ sung khác

Ngoài 4 cơ chế trên, Fortinet khuyến nghị thêm một số biện pháp cứng hóa quyền quản trị:

  • Đổi tên tài khoản admin mặc định — cần tạo sẵn một tài khoản super_admin thứ hai trước, sau đó đổi username của tài khoản admin gốc, gây khó khăn hơn cho kẻ tấn công đoán username.
  • Disclaimer đăng nhập — hiển thị thông báo cảnh báo trước/sau khi đăng nhập GUI hoặc CLI, admin phải xác nhận đọc mới được tiếp tục.
  • Idle timeout — tự động đăng xuất sau một khoảng thời gian không thao tác.
  • Giới hạn thời gian chờ SSH — điều chỉnh khoảng thời gian cho phép giữa lúc mở kết nối SSH và lúc xác thực xong (mặc định 120 giây), rút ngắn lại để giảm khả năng tấn công brute-force qua kết nối treo.

3. Hỏi & Đáp

Nếu cấp sysgrp = read-write cho một tài khoản, họ có thể tự nâng quyền mình lên super_admin không? 

Có khả năng — vì sysgrp bao gồm cả mục con quản lý tài khoản admin (admingrp). Cấp read-write cho toàn bộ sysgrp gần như trao quyền tương đương super_admin. Muốn tránh, dùng mức custom cho sysgrp và chỉ bật đúng mục con cần thiết (ví dụ chỉ mnt để backup/restore, không bật admin).

Trusted Hosts và Admin Lockout, cái nào nên ưu tiên cấu hình trước? 

Nên làm cả hai, không loại trừ nhau — Trusted Hosts chặn ngay từ lớp mạng (kẻ tấn công từ IP lạ thậm chí không gõ được mật khẩu), còn Admin Lockout xử lý trường hợp kẻ tấn công đã ở trong dải IP được tin cậy (ví dụ nội bộ bị chiếm quyền) nhưng vẫn phải dò mật khẩu.

Bật 2FA rồi mà quên mang điện thoại thì làm sao đăng nhập khẩn cấp? 

Đây là lý do bắt buộc phải có sẵn tài khoản super_admin dự phòng chưa bật 2FA, dùng riêng cho tình huống khẩn cấp — không dùng cho công việc hàng ngày để tránh lộ thêm bề mặt tấn công.

Password Policy có áp dụng luôn cho user VPN, hay chỉ admin? 

config system password-policy chỉ áp dụng cho mật khẩu admin cục bộ và pre-shared key IPsec. Muốn áp policy riêng cho local user (VD: user VPN), dùng config user password-policy— cấu trúc tham số tương tự nhưng là một khối cấu hình độc lập, gán riêng cho từng user.


4. Quiz

Câu 1: Profile nào trên FortiGate không thể bị xóa hoặc chỉnh sửa?

  • A. prof_admin
  • B. super_admin
  • C. readonly_soc
  • D. Tất cả profile đều chỉnh sửa được

Câu 2: Theo mặc định, sau bao nhiêu lần nhập sai mật khẩu thì tài khoản admin bị khóa, và khóa trong bao lâu?

  • A. 1 lần, khóa 300 giây
  • B. 3 lần, khóa 60 giây
  • C. 5 lần, khóa 120 giây
  • D. 10 lần, khóa 3600 giây

Câu 3: Trusted Hosts áp dụng cho hình thức truy cập nào sau đây?

  • A. Ping đến interface
  • B. HTTPS, SSH, SNMP
  • C. Chỉ riêng CLI qua cổng console
  • D. Chỉ riêng GUI

Câu 4: Trước khi bật Two-Factor Authentication cho tài khoản admin chính, nên làm gì trước?

  • A. Không cần chuẩn bị gì thêm
  • B. Tắt hết Trusted Hosts để tránh xung đột
  • C. Tạo sẵn một tài khoản super_admin dự phòng chưa bật 2FA
  • D. Đặt admin-lockout-threshold về 10

Câu 5: Mục con nào trong sysgrp được xem là nhạy cảm nhất, vì cấp read-write gần như tương đương quyền super_admin?

  • A. upd (FortiGuard updates)
  • B. mnt (maintenance)
  • C. admin (quản lý tài khoản admin khác)
  • D. cfg (cấu hình hệ thống chung)

👉 Đáp án

Câu 1: B — super_admin là profile mặc định của tài khoản admin, không thể xóa hoặc chỉnh sửa để đảm bảo luôn có đường vào quản trị thiết bị. 

Câu 2: B — Mặc định admin-lockout-threshold là 3 lần, admin-lockout-duration là 60 giây. 

Câu 3: B — Trusted Hosts áp dụng cho HTTPS, SSH, SNMP; riêng ping vẫn được trả lời từ mọi IP nếu interface bật cho phép ping, bất kể Trusted Hosts. 

Câu 4: C — Luôn tạo sẵn tài khoản super_admin dự phòng chưa bật 2FA, để tránh bị khóa hoàn toàn khỏi thiết bị nếu mất token hoặc lỗi đồng bộ thời gian. 

Câu 5: C — Mục con admin trong sysgrp kiểm soát việc tạo/sửa/xóa tài khoản quản trị khác — cấp read-write cho mục này gần như mở đường tự nâng quyền lên super_admin.


📚 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 ➡️
Giao diện quản trị: cấu trúc lệnh CLI và 4 nhóm lệnh cốt lõi Mục lục khóa học FortiGate Backup/Restore cấu hình, Firmware upgrade path, Configuration Revision