+1

Hướng dẫn chi tiết cách thiết lập mô hình VPN Server đơn giản với OpenVPN (Phần 2)

Mở đầu

Ở phần trước mình đã hướng dẫn các bạn cách cài đặt cũng như cấu hình cơ bản của OpenVPN Access Server. Vậy tiếp theo ở phần này mình sẽ hướng dẫn cách tạo users mới trực tiếp trên web và trên Okta.


Tạo và cấu hình tài khoản users

Local users

Những tài khoản users này sẽ được tạo trực tiếp trên Web của Access Server và được lưu tại local database của máy chủ.
Việc thực hiện tạo user này khá là đơn giản. Các bạn click vào mục User Management, sau đó chọn User Permisions. Ở mục New Username, sau khi đã nhập tên user các bạn chọn vào More Settings.
image.png
Ở đây các bạn chọn Auth Method là local, và nhập password vào. Đối với phần Access Control, đây là mục mà bạn sẽ cấu hình xem liệu khi user kết nối VPN thì họ sẽ có quyền được truy cập vào những lớp mạng nội bộ nào. Ví dụ như công ty bạn có nhiều lớp mạng thuộc nhiều phòng ban, thì nhân viên thuộc phòng A chỉ có thể kết nối đến lớp mạng của phòng mình, và mục Access Control này sẽ giúp ta cấu hình điều đó.
image.png

Xác thực và quản lí users với Okta's LDAP

Việc sử dụng Okta để quản lý users là để tránh các trường hợp ví dụ như khi công ty của bạn có 1000 nhân viên, bạn không thể nào với mỗi hệ thống, mỗi ứng dụng đều phải thêm thủ công tài khoản của họ vào được vì thế các công cụ như Okta là một giải pháp rất tốt để quản lý tập trung thông tin người dùng.
Đi vào cụ thể hơn, nếu bạn đang có tài khoản Work Email ví dụ như tài khoản mail của sinh viên hay tài khoản mail công ty thì các bạn có thể đăng ký bản trial 30 days. Sau khi đã có tài khoản xong các bạn đăng nhập vào Okta Admin Console cho mình và thực hiện các bước sau:

  1. Vào Directory chọn mục People và nhấn Add person, tài khoản này sẽ dùng làm Bind User cho LDAP.
    image.png
  2. Sau khi đã active tài khoản, nhấn vào user mới và chọn mục Admin Roles, chọn Add individual admin privileges.
    image.png
  3. Các bạn chọn role là Read-Only Administrators và bấm Save changes.
    image.png
  4. Tiếp theo ta sẽ thêm LDAP Interface dùng cho kết nối giữa Access Server và Okta. Các bạn nhất vào mục Directory Integrations và chọn Add LDAP Interface.
    image.png
  5. Sau đó LDAP Interface sẽ cung cấp cho ta các thông tin cần thiết để cấu hình Access Server.
    image.png
  6. Các bạn vào mục Authentication/LDAP và enable LDAP Authentication lên, và thêm các thông tin cấu hình cần thiết vào như hình:
    image.png
    - Lưu ý rằng ở mục Bind DN, thay uid và password bằng thông tin tài khoản ta vừa tạo ở trên
  7. Chuyển qua mục Settings và chọn Default Authentication SystemLDAP, sau đó enable mục TOTP MFA. Việc enable MFA lên giúp tăng cường thêm một lớp bảo mật khi ta đăng nhập vào Access Server.
    image.png
  8. Tiếp theo ta sẽ thử đăng nhập vào Web bằng tài khoản trên LDAP. Đối với tài khoản mới lần đầu đăng nhập, Access Server sẽ yêu cầu ta dùng các ứng dụng Authenticator để quản lý mã OTP dùng cho MFA, các bạn muốn dùng ứng dụng nào cũng được nhé, ở đây mình sử dụng Okta Verify.
    image.png
  9. Sau khi đăng nhập thành công, Access Server sẽ tự động thêm user mới này vào User Permissions để chúng ta có thể chỉnh sửa các cấu hình cho nó.
    image.png

Groups permissions

Việc tạo groups cho users là điều khá cần thiết nếu khi số lượng users của bạn quá lớn, bạn không thể nào chỉnh tay từng tài khoản users được, điều này là không hợp lí. Vì thế ta sẽ gom các users thành các groups khác nhau sau đó chỉ cần cấu hình Access Control cho groups là được.
image.png
Như ở phần trên đã thấy, khi mỗi lần ta đăng nhập bằng tài khoản do Okta quản lí thì user sẽ được thêm vào hệ thống của Access Server. Nhưng group sẽ không tự động thêm vào được, vì thế nếu muốn thêm user vào group một cách tự động ta phải sử dụng một script để ánh xạ group của user trên Okta sang group trên Access Server. Nghĩa là trên Okta nếu userA thuộc phòng KinhDoanh thì khi đăng nhập vào web của Access Server nó cũng sẽ được thêm vào group KinhDoanh của máy chủ VPN.
Cụ thể script này gọi là Post-Auth Script, và các bước để thêm script này vào server như sau:

  1. Vào trang console của máy ảo chạy Access Server
    image.png
  2. Chạy quyền root và thực hiện lệnh tải Script: wget https://packages.openvpn.net/as/scripts/post_auth_ldap_autologin_dbsave.py -O /root/ldap.py
  3. Chạy lệnh nano ldap.py
  4. Ở mục bên dưới này các bạn có thể chỉnh cụ thể group mapping theo ý của mình. Ở đây mình sẽ tạo 2 Group PhongA, PhongB để làm ví dụ
    image.png
  5. Sau đó ta sẽ chạy các lệnh sau để reload lại script và restart Access Server:
    cd /usr/local/openvpn_as/scripts
    ./sacli -k auth.module.post_auth_script --value_file=/root/ldap.py ConfigPut
    ./sacli start

    image.png
    Nguyên lý hoạt động của Post-Auth Script

    Tiếp theo mình sẽ test xem script có hoạt động không. Ở đây mình đã tạo sẵn 2 group trên Access Server và cũng như Okta.
    image.png
    image.png
    image.png
    Ban đầu chưa có các user ở trên.
    image.png
    Sau khi ta tiến hành đăng nhập, thì user đã được thêm vào mục user permissions cùng với thông tin groups tương ứng.
    image.png
    Như vậy, các setting cơ bản cho một VPN Server đã hoàn thành, tiếp theo mình sẽ tiến hành thử kết nối và ping đến các lớp mạng đã config cho các groups.
    image.png
    Group PhongA

    image.png
    Group PhongB

    image.png
    Máy ảo thuộc hai lớp mạng

    image.png
    Kết nối bằng profile user thuộc PhongA

    image.png
    Kết nối bằng profile user thuộc PhongB


Kết

Như vậy mình đã hướng dẫn xong các bạn cách thiết lập một mô hình VPN Server với OpenVPN Access Server. Còn một số các cấu hình nâng cao như Cluster, DMZ Settings... các bạn có thể tự tìm hiểu thêm. Sau khi các bạn nắm về cách vận hành và xây dựng của mô hình VPN các bạn có thể tìm hiểu thêm về các mô hình như ZTNA hay cao cấp hơn như SASE, đây đều là các mô hình ứng dụng nhiều vào thời điểm hiện tại hơn và cũng có nhiều ưu điểm vượt trội hơn VPN. Cảm ơn các bạn đã đọc!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí