Palo Alto [III.3][Lab] Cấu hình MFA cho VPN Remote với Palo Alto NGFW

hiep03

Intern

Cấu hình VPN Remote cho phép người dùng kết nối vào hệ thống nội bộ sử dụng AD (Active Directory) kết hợp với MFA

Mục lục:
I. Mở đầu​
II. Lý thuyết​
A. Xác thực đa yếu tố (Multi-Factor Authentication – MFA)​
1. Khái niệm xác thực đa yếu tố​
2. Các loại phương pháp xác thực MFA chính​
B. Giao thức RADIUS​
1. Khái niệm RADIUS​
2. Chức năng của RADIUS​
3. Mô hình hoạt động của RADIUS​
3.1. RADIUS Client / NAS​
3.2. RADIUS Server​
3.3. User Database / Identity Store​
III. Triển khai​
A. Mô hình triển khai​
B. Luồng xác thực MFA​
C. Cấu hình​
1. Cấu hình Firewall Palo Alto​
2. Cấu hình RADIUS Server​
IV. Kiểm tra​
V. Tổng kết​

I. Mở đầu​

Tiếp tục sau bài trước Remote Access VPN sử dụng AD và User Local mình đã sử dụng tài khoản và mật khẩu cấp phát cho remote user để đăng nhập. Tuy nhiên để tăng cường bảo mật người ta thường triển khai xác thực đa yếu tố (Multi-Factor Authentication – MFA) nhằm bổ sung thêm một lớp bảo vệ thứ hai cho người dùng truy cập từ xa. Palo Alto NGFW hỗ trợ nhiều giải pháp MFA khác nhau như Azure AD kết hợp SAML, RADIUS Server, hoặc các hệ thống xác thực bên thứ ba.

Trong bài viết này, mình sẽ hướng dẫn triển khai MFA cho Remote Access VPN trên Palo Alto NGFW bằng cách tích hợp RADIUS Server sử dụng FreeRADIUS kết hợp OTP, giúp nâng cao tính bảo mật cho người dùng Remote Access VPN.

II. Lý thuyết​

A. Xác thực đa yếu tố
  1. Xác thực đa yếu tố - Multi-factor Authentication (MFA) là gì ?
Xác thực đa yếu tố (MFA) là một hệ thống bảo mật yêu cầu người dùng cung cấp từ 2 yếu tố xác minh trở lên mới được phép truy cập vào hệ thống (VPN, Mail, Server,...). Quy trình đăng nhập tài khoản bao gồm nhiều bước, trong đó yêu cầu người dùng xác minh thêm thông tin khác ngoài mật khẩu.
Ví dụ: sau khi đăng nhập bằng mật khẩu người dùng có thể được yêu cầu nhập mã qua mail, OTP, từ ứng dụng Authenticator, từ điện thoại, câu hỏi bí mật, quét vân tay,...

2. Các loại phương pháp xác thực MFA chính​
Hầu hết các phương pháp xác thực MFA cần xác thực ít nhất 2 trong 3 loại sau:
  • Thứ người dùng biết (Something you know): người dùng phải chứng minh danh tính của họ bằng cách tiết lộ những thông tin mà không một ai khác biết. Chẳng hạn như mật khẩu, câu hỏi xác minh, OTP.
  • Thứ người dùng có (Something you have): người dùng chứng minh danh tính của mình bằng một thứ chỉ riêng họ sở hữu. Ví dụ: Điện thoại di động, Smart Card (Thẻ bảo mật), ID Card (Thẻ định danh), Hardware key fobs (Chuỗi khóa phần cứng), Security keys (Khóa bảo mật), các tài sản kỹ thuật số như tài khoản email và ứng dụng trình xác thực (Authenticator).
  • Thứ vốn thuộc về người dùng (Something you are): Xác minh danh tính bằng các đặc điểm sinh trắc học của người dùng. Sau đây là một số ví dụ về các yếu tố xác thực như vậy:
    • Quét vân tay
    • Quét võng mạc
    • Nhận dạng giọng nói
    • Nhận dạng khuôn mặt
B. RADIUS Protocol
1. Khái niệm
Remote Authentication Dial-In User Service (RADIUS) là một giao thức mạng có chức năng xác thực (authentication) và phân quyền (authorization) cho người dùng truy cập vào mạng từ xa. Giao thức (protocol) về cơ bản là một tập hợp các quy tắc điều khiển cách thức giao tiếp và vận hành của hệ thống.
RADIUS được sử dụng để tạo kết nối giữa các máy tính và cung cấp:
  • Authentication (xác thực)
  • Authorization (phân quyền)
  • Accounting (ghi nhật ký sử dụng tài nguyên)
RADIUS rất quan trọng trong quản lý truy cập mạng vì nó giúp ngăn chặn người dùng trái phép hoặc kẻ tấn công xâm nhập hệ thống.

2. Chức năng
3 chức năng chính của RADIUS:
  • Authentication – xác thực người dùng/thiết bị trước khi truy cập mạng.
  • Authorization – phân quyền dịch vụ, thời gian truy cập, địa chỉ IP…
  • Accounting – ghi nhận thời gian sử dụng, số byte trao đổi, gói tin…
3. Mô hình hoạt động

RADIUS sử dụng mô hình RADIUS client/NAS → RADIUS server, hoạt động tương tự LDAP và có thể lưu trữ thông tin người dùng cục bộ. Về bảo mật, RADIUS có độ an toàn tương đương TCP. Nó thường dùng cổng 1812 (auth) và 1813 (accounting).

3.1 RADIUS client/NAS (Network Access Server)
Thiết bị trung gian nhận yêu cầu từ người dùng và gửi lên RADIUS server. Được gọi là Radius Client mặc dù không phải là người dùng cuối (end user)
Ví dụ:
  • Wireless Controller / Access Point
  • VPN Gateway
  • Firewall
  • Dial-up Server
  • Switch cấp access (802.1X)
Nhiệm vụ của RADIUS client: Thu thập thông tin xác thực từ người dùng cuối (End User Device), tạo RADIUS Access-Request và gửi về RADIUS server qua UDP/1812

3.2 RADIUS Server

RADIUS server dựa trên giao thức UDP chạy trên Linux hoặc Windows như một daemon (tiến trình nền). Server lưu trữ thông tin người dùng và phản hồi NAS khi có yêu cầu.
RADIUS server:
  • Nhận thông tin xác thực từ NAS
  • Kiểm tra chứng thực
  • Trả lại thông tin cấu hình để NAS cấp quyền truy cập.
3.3 User Data Base/ Identity Store

Nguồn thông tin người dùng để server so sánh:Local user DB Active Directory / LDAP, MySQL, SQLToken server, PKI Certificate Authority,...

RADIUS server không nhất thiết tự lưu tất cả user, nó có thể query ra nơi khác.

II. Triển khai​

A. Mô hình triển khai

1767025487814.png


Để xác thực từ xa cho người dùng Remote Access VPN mình sẽ triển khai mô hình như trên bao gồm các thành phần chính như sau

  • Win Remote làm End User Remote Access
  • Palo Alto NGFW (PAN 9.1) làm RADIUS Client
  • AD Server Window (Win Server 2019) chứa thông tin xác thực user
  • RADIUS Server (Ubuntu Desktop 18.04) làm trung gian và xác thực MFA

B. Luồng xác thực

Luồng xác thực sẽ như sau:
  • Remote User đăng nhập tài khoản được cấp trong AD
  • Firewall nhận thông tin đăng nhập và chuyển thông tin tới RADIUS Server theo phương thức PAP
  • RADIUS Server chuyển yêu cầu tới AD Server thông qua LDAP để xác thực người dùng
  • Nếu thành công gửi challenge về lại Firewall hỏi mã OTP
  • Người dùng sử dụng App Authenticator trong điện thoại và nhập mã.
  • Nếu đúng sẽ đăng nhập thành công.

C. Cấu hình​

1. Firewall Palo Alto
a. Tạo RADIUS Profile
Device > Server Profile > RADIUS

1767025487820.png


Ghi nhớ secret để cấu hình radius server

b. Chuyển giao thức Radius sang cổng e1/3
1767025487838.png


c. Tạo Authentication Profile
1767025487845.png


d. Gán Authen Profile vào Portal và Gateway
Vào phần authentication và Add thêm Profile

1767025487852.png


1767025487859.png


1767025487867.png


2. RADIUS Server
a. Tải các gói tin cần thiết
sudo apt install freeradius freeradius-ldap libpam-google-authenticator realmd adcli krb5-user samba-common-bin

b. Join Domain vào AD
Cấu hình để thấy AD

1767025487876.png

Kiểm tra
1767025487883.png

Join Domain
sudo realm join poptech.vn -U administrator -v
1767025487892.png


c. Chỉnh NTP
Vì Authenticator sinh mã dựa theo thời gian nên cần đồng bộ thời gian chuẩn cho server. Tránh lệch thời gian gây lỗi xác thực
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
sudo timedatectl set-ntp no
sudo ntpdate -u pool.ntp.org
sudo timedatectl set-ntp yes

d. Cấu hình LDAP cho freeradius để xác thực user
sudo ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/
sudo nano /etc/freeradius/3.0/mods-enabled/ldap

1767025487901.png

Trỏ về máy AD
1767025487911.png

e. Cấu hình PAM (Pluggable Authentication Modules) để xác thực user bằng OTP
Cấu hình sử dụng module Google Authenticator PAM
Và thư mục chứa Secret của User
1767026517555.png

  • Tạo thư mục chứa secret của user
sudo mkdir -p /etc/freeradius/3.0/otp
sudo chown freerad:freerad /etc/freeradius/3.0/otp
sudo chmod 750 /etc/freeradius/3.0/otp
  • Tạo secret cho user tvro
sudo google-authenticator -t -d -f -r 3 -R 30 -w 3 -l "tvro" -i "Poptech" -s /etc/freeradius/3.0/otp/tvro
1767025487926.png

Mở App Authenticator scan mã
1767026593900.png

sudo chown freerad:freerad /etc/freeradius/3.0/otp/tvro
sudo chmod 600 /etc/freeradius/3.0/otp/tvro

Tạo thêm cho user lvbao
sudo google-authenticator -t -d -f -r 3 -R 30 -w 3 -l "lvbao@poptech.vn" -i "Poptech-Radius" -s /etc/freeradius/3.0/otp/lvbao
sudo chown freerad:freerad /etc/freeradius/3.0/otp/lvbao
sudo chmod 600 /etc/freeradius/3.0/otp/lvbao

f. Cấu hình để xác thực MFA
Sudo nano /etc/freeradius/3.0/sites-enabled/dedault

authorize {
if (!&request:State) {
update control {
Auth-Type := LDAP
}
}
# lop hai user vua nhap otp xong

else {
update control {
Auth-Type := PAM
}
}
}

authenticate {
authenticate {

Auth-Type LDAP {
ldap
if (ok || updated) {
update reply {
Reply-Message := "Vui lòng nhập mã OTP Google Authenticator của bạn:"
State := "%{randstr:aaaaaaaaaaaaaaaa}"
}
noop
challenge
}
}

Auth-Type PAM {
pam
}
}

g. Chạy service RADIUS
sudo systemctl enable freeradius
sudo systemctl start freeradius
sudo systemctl enable freeradius
1767025487972.png


III. Kiểm tra​

Tiến hành đăng nhập bằng tài khoản tvro
1767025487979.png

Sau khi đăng nhập đúng nhập mã OTP
1767025487986.png

Sau khi thành công
1767025487993.png

1767025488000.png

Thử với user lvbao
1767025488008.png

1767025488014.png

IV. Tổng kết​

Trong bài viết này, giải pháp Remote Access VPN sử dụng Active Directory kết hợp MFA đã được triển khai thành công trên Palo Alto NGFW thông qua việc tích hợp RADIUS Server sử dụng FreeRADIUS và OTP. Mô hình cho phép tăng cường bảo mật bằng cách bổ sung lớp xác thực thứ hai bên cạnh cơ chế username/password truyền thống.
Việc triển khai RADIUS đóng vai trò trung gian giúp tách biệt rõ ràng giữa firewall và hệ thống xác thực, đồng thời tăng khả năng mở rộng và quản lý tập trung.
Qua mô hình này có thể thấy, việc kết hợp Remote VPN + AD + MFA là một giải pháp phù hợp và thực tế cho các hệ thống doanh nghiệp hiện nay, đặc biệt trong bối cảnh làm việc từ xa ngày càng phổ biến. Giải pháp không chỉ nâng cao mức độ bảo mật mà còn linh hoạt, dễ mở rộng và có thể tích hợp thêm các phương thức xác thực khác trong tương lai.
 

Đính kèm

  • 1767025487918.png
    1767025487918.png
    60.1 KB · Lượt xem: 0
  • 1767025487959.png
    1767025487959.png
    1.9 MB · Lượt xem: 0
Sửa lần cuối:
Back
Top