1.Mục đích bài viết
Chuỗi bài viết này sẽ cung cấp cho các bạn chi tiết các bước cần thực hiện cũng như cách triển khai toàn diện giải pháp Sophos Zero Trust Network Access.
2.Sơ đồ mạng
Chi tiết:
Chúng ta sẽ thiết bị tường lửa Sophos được kết nối với internet tại Port 2 với IP WAN tĩnh là 115.78.x.x.
Mạng nội bộ sẽ được cấu hình tại Port 1 của thiết bị Sophos Firewall với IP 172.16.31.1/24 và đã được cấu hình DHCP.
Trong mạng nội bộ sẽ có một máy chủ chạy hạ tầng ảo hóa VMWware Esxi có IP 172.16.31.11/24 và có các máy ảo như sau:
- Active Directory kiêm DNS server có hostname là pdc.valab.xyz với IP 172.16.31.250/24.
- Sophos ZTNA Gateway có hostname là ztna.valab.xyz với IP 172.16.31.251/24.
Ở phía ngoài internet chúng ta sẽ có các thành phần dùng để triển khai Sophos ZTNA như sau:
- Public domain: đang sử dụng domain của Mắt Bảo.
- Identity Provider: Okta.
- Sophos Central: nơi quản lý các policy, user, logs.
- Hai máy tính Windows 10 với 1 máy đã được cài Agent và 1 máy không cài Agent.
3.Tình huống cấu hình
Trong phần 1 của series này thegioifirewall sẽ hướng dẫn các bạn cấu hình 3 thành phần đầu tiên của là khai báo record trên public domain trỏ FQDN của Sophos ZTNA Gateway về IP WAN của Sophos Firewall, cấu hình Wildcard certificate và cấu hình Okta.
4.Các bước thực hiện
Public Domain:
- Tạo record.
Cấu hình Wildcard certificate:
- Get wildcard certificate cho domain valab.xyz.
Identity Provider Okta:
- Sync user từ Active Directory
- Tạo Application cho Sophos ZTNA.
- Tạo Authorization Server cho Sophos ZTNA.
- Khai báo Identity Provider Okta trên Sophos Central.
5.Hướng dẫn cấu hình
5.1.Public Domain
5.1.1.Tạo record.
Do Sophos ZTNA hoạt động bằng tên miền nên thegioifirewall đã chuẩn bị sẵn một tên miền được mua từ Mắt Bảo là valab.xyz.
Việc đầu tiên chúng ta cần làm với tên miền này là trỏ FQDN của Sophos ZTNA về IP WAN của Sophos Firewall.
Để làm chúng ta cần đăng nhập vào trang quản trị DNS cho tên miền valab.xyz trên trang web của Mắt Bảo.
Chúng ta sẽ tạo các record trỏ FQDN của Sophos ZTNA Gateway về IP WAN của Sophos Firewall như hình sau:
Để kiểm tra xem record đã hoạt động chưa chúng ta bật Command Prompt trên máy tính.
Nhập lệnh nslookup > gõ vào tên miền ztna.valab.xyz và chúng ta sẽ thấy tên miền này sẽ được phân giải thành địa chỉ IP 115.78.x.x.
5.2.Cấu hình Wildcard certificate
5.2.1.Đăng kí wildcard certificate cho domain valab.xyz.
Do giải pháp Sophos ZTNA sẽ sử dụng tất cả các subdomain của domain valab.xyz và kết nối mà nó sử dụng là https nên chúng ta cần phải có một wildcard certificate về https để áp dụng cho tất cả subdomain của domain valab.xyz.
Trong bài viết này chúng ta sẽ đăng kí wildcard certificate miễn phí từ Let’s Encrypt.
Đầu tiên chúng ta cần tải xuống phần mềm Certbot client về máy tính cá nhân.
Vào link phía dưới để download.
https://dl.eff.org/certbot-beta-installer-win32.exe
Tiếp theo thực hiện cài đặt phần mềm certbot client vào máy và mở nó lên.
Khi mở lên thì nó sẽ có giao diện như hình dưới đây.
Chúng ta sẽ nhập câu lệnh sau để đăng kí wild certificate cho tên miền valab.xyz.
certbot certonly –manual –preferred-challenges=dns –server https://acme-v02.api.letsencrypt.org/directory –agree-tos –domain valab.xyz
Sau khi chạy dòng lệnh certbot sẽ yêu cầu chúng ta tạo DNS TXT record trên domain valab.xyz với các thông số phía dưới.
Chúng ta cần đăng nhập vào trang quản trị của domain valab.xyz và thêm TXT record như sau.
Sau đó chúng ta vào https://toolbox.googleapps.com/apps/dig/#TXT/ để kiểm tra xem TXT record đã hoạt động hay chưa.
Nhập _acme-challenge.valab.xyz vào ô và nhấn enter, chúng ta sẽ thấy kết quả là TXT record đã hoạt động.
Quay trở lại certbot client nhấn Enter để tiếp tục.
Chúng ta thấy việc đăng kí wild certfificate đã thành công.
Hai file certificate có tên là fullchain.pem và file key có tên là privkey.pem được lưu tại ổ C:/Certbot/Archive/valab.xyz-0001
Lưu ý: chúng ta cần giữ 2 file này để dùng cho việc triển khai Sophos ZTNA Gateway ở phần sau.
5.3.Identity Provider Okta
5.3.1.Sync user từ Active Directory
Mục đích của việc sync user này là để Okta sẽ sử dụng trực tiếp user từ Active Directory cho bước xác thực người dùng.
Hình dưới đây là danh sách các user và groups sẽ được sync lên Okta.
Để sync chúng ta truy cập vào trang quản trị của Okta.
Vào Directory > Directory Integrations > nhấn Add Active Directory.
Nhấn Set Up Active Directory.
Nhấn Download Agent.
Chúng ta sẽ cài đặt file OktaADAgentSetup vừa tải vừa và chúng ta cần copy thông số Your Okta Orgnization URL để sử dụng cho quá trình cài đặt.
Nhấn Next.
Nhấn Install.
Okta AD Agent sẽ tự động phát hiện được tên domain trên máy chủ Active Directory.
Nhấn Next.
Chọn Create or use the OktaService account (recommended), với lựa chọn này Okta Agent sẽ tạo ra một tài khoản với username OktaService chỉ dùng để chạy cho duy nhất dịch vụ của Okta.
Nhấn Next.
Chúng ta nhập password cho tài khoản OktaService và nhấn Next.
Nhấn Next nếu chúng ta không sử dụng proxy trong hệ thống.
Copy Okta Organization URL mà chúng ta đã lưu tại bước download Okta Agent vào ô Enter Organization URL.
Một cửa sổ đăng nhập hiện ta, chúng ta cần đăng nhập tài khoản quản trị của Okta và nhấn Sign in.
Nhấn Allow Access để cho phép các service cần thiết Okta Agent có thể hoạt động.
Quá trình đăng kí Okta Agent và cài đặt sẽ diễn ra trong khoảng 5 giây.
Chúng ta nhấn Finish để hoàn thành việc cài đặt Okta Agent.
Quay trở lại trang quản trị chúng ta sẽ tiếp tục phần cấu hình còn lại.
Tại Basic Settings, chúng ta sẽ chọn OU mà chúng ta sẽ sync lên Okta.
Ở đây chúng ta sẽ chọn OU valab vì đây là nơi chứa users và group.
Tại Okta username format, chúng ta sẽ chọn Email Address và nhấn Next.
Nhấn Next.
Tại Build User Profile nhấn Next.
Nhấn Done để hoàn thành.
Vào Directory > Directory Integrations và chúng ta sẽ thấy Okta đã kết nối với máy chủ Active Directory thành công.
Tiếp theo chúng ta sẽ import users và groups lên Okta, để import chúng ta nhấn chuột trái vào Active Directory.
Tại tab Import nhấn Import Now.
Chọn Incremental import (fastest) và nhấn Next.
Quá trình import sẽ diễn ra trong vài giây.
Okta đã scan thành công 7 user và 2 group.
Để import user lên Okta chúng ta tích chọn tất cả user và nhấn Confirm Assignments.
Tích chọn Auto-active users after confirmation và nhấn Confirm.
Với việc tích chọn Auto-active users after confirmation thì sau khi confirm thành công Okta sẽ gửi email đến cho từng người dùng thông báo về việc tài khoản Okta của user đó đã được tạo và username và mật khẩu sẽ tương tự như của tài khoản domain mà user đang dùng.
Email được gửi đến người dùng sẽ có nội dung như hình sau.
Để xem danh sách user vừa được import vào Directory > People, chúng ta sẽ thấy danh sách user đã được import như hình dưới đây.
Để xem các group đã được import vào Directory > Groups.
5.3.2.Tạo Application cho Sophos ZTNA
Chúng ta cần tạo một Application cho Sophos ZTNA để khi người dùng truy cập và xác thực thì sẽ được chuyển hướng tới trang xác thực của Okta.
Để tạo vào trang quản trị của Okta > Applications > Applications > Create App Integration.
- Sign-in method: chọn OIDC – OpenID Connect.
- Application type: chọn Web Application.
App integration name: Sophos ZTNA.
Tại Grand type: tích chọn Client Credentials và Refresh Token.
Tại Sign-in redirect URIs chúng ta nhập vào đường dẫn, đây là đường dẫn mà người dùng sẽ được chuyển hướng tới để thực hiện xác thực.
Đường dẫn này sẽ có định dạng là https://FQDN<Sophos ZTNA Gateway>/oauth2/callback.
Ví dụ: FQDN của Sophos ZTNA Gateway sẽ được triển khai trong phần sau là ztna.valab.xyz => đường dẫn sẽ là https://ztna.valab.xyz/oauth2/callback.
Tại Assignments chọn Skip group assignment for now và nhấn Save.
Quay lại Applications > Applications chúng ta sẽ thấy Sophos ZTNA đã được tạo.
Chúng ta sẽ cần assign group và điều chỉnh scope cho app Sophos ZTNA này.
Để điều chỉnh nhấn chuột trái vào tên Sophos ZTNA.
Tại tab General chúng ta sẽ cần phải nhấn vào biểu tượng copy tại Client ID và Client Secrets và lưu chúng lại để sử dụng ở phần khai báo Identity Okta trên Sophos Central.
Tại tab Okta API Scopes chúng ta nhấn Grant tại okta.idps.read.
Tại tab Assignments, nhấn Assign > Assign to Groups để chỉ định các groups nào sẽ được sử dụng app Sophos ZTNA này.
Tại Assign Sophos ZTNA to Groups nhấn Assign 2 group SALE TEAM và TECHNICAL TEAM.
Chúng ta sẽ thấy phía bên phải của 2 group hiện chữ Assigned tức đã chỉ định thành công.
Nhấn Done.
Quay trở lại với trang quản trị tại Assignments > Groups, chúng ta sẽ thấy 2 group mà chúng ta vừa Assign đã được liệt kê.
Tại Assignments > People chúng ta cũng sẽ thấy các các user thuộc 2 group đã được liệt kê.
5.3.3.Tạo Authorization Server cho Sophos ZTNA.
Để tạo chúng ta truy cập trang quản trị Okta vào Security > API > Nhấn Add Authorization Server
Bảng Add Authorization Server hiện ra, điền ZTNA vào Name và Audience và nhấn Save.
Chúng ta sẽ thấy là Authorization Server ZTNA đã được tạo, chúng ta cần lưu lại thông tin Issuer URI để phục vụ cho việc khai báo Identity Provider Okta trên Sophos Central.
Tiếp theo chúng ta nhấn vào tên ZTNA để điều chỉnh một vài thông số.
Đầu tiên chúng ta cần tạo Scope tên làm customScope với mục đích duy nhất là kiểm tra kết nối giữa Okta và Sophos Central.
Để tạo vào tab Scope > nhấn Add Scope.
Tại Name điền vào customScope và nhấn Save.
Trên Claim tab, nhấn Add Claim. Một Claim cho phép ZTNA xem các nhóm để xác thực. Nhập các thông tin chi tiết như sau:
- Name: groups.
- Inlcude in token type: ID Token – Iserinfo / id_token request.
- Value type: chọn Expression.
- Value: Arrays.isEmpty(Arrays.toCsvString(Groups.startsWith(“active_directory”,””,100))) ? Groups.startsWith(“OKTA”,””,100) : Arrays.flatten(Groups.startsWith(“OKTA”,””,100), Groups.startsWith(“active_directory”,””,100))
- Include in: chọn Any scope.
- Nhấn Save.
Để mà Sophos Central có thể kết nối đến customScope trên Okta chúng ta cần phải tạo policy cho phép.
Tại tab Access Policies nhấn Add New Access Policy và cấu hình theo thông số sau:
- Name: ZTNA.
- Description: ZTNA.
5.3.4.Khai báo Identity Provider Okta trên Sophos Central,
Để khai báo chúng ta truy cập vào trang quản trị của Sophos Central bằng quyền admin.
Vào ZTNA > Identity Providers > nhấn Add identity provider.
- Name: Okta.0
- Provider: Okta
- Client ID: nhập vào Client ID đã copy ở bước tạo App Integration Sophos ZTNA.
- Client secret: nhập vào Client secrets đã copy ở bước tạo App Integration Sophos ZTNA.
- Issue URI: nhập vào Issue URI đã copy ở bước tạo Authorization Server ZTNA.
- Scope: nhập vào customScope và nhấn Test connection để kiểm tra kết nối giữa Sophos Central và Okta.
- Nhấn Save.