Tài liệu này hướng dẫn các bước onboarding cho Polaris dùng cho các supporter L1/L2. Các bước on-boarding một site trên Polaris và các điểm lưu ý như trong hình sau. ![](https://hackmd.io/_uploads/B1BprAotn.png) # Các bước On-boarding cho site trên Polaris ## 1. Cài đặt site ### a. Cài đặt site với Name servers Cài đặt bằng Name servers là một trong hai cách để đăng ký tên miền web của bạn để được bảo vệ với WAAP của Polaris. Đây là cách dễ thực hiện nhất và phổ biến với người dùng thông thường. Với cách này, người dùng cần **chuyển NameServer về NameServer của Polaris**, và cấu hình các NS Record tương ứng. Để đăng ký tên miền web với tùy chọn Name server, trình hướng dẫn cài đặt sẽ hướng dẫn bạn qua các bước sau đăng ký. ![](https://hackmd.io/_uploads/BkyoB0sY2.png) #### Bước 1: Nhấp vào nút `+` Trên bảng điều khiển bên dưới nút Bảng điều khiển, có một danh sách các trang web (danh sách này trống đối với bạn). Vui lòng bấm vào nút `+` (tham khảo hình bên dưới). Thao tác này sẽ mở bảng điều khiển 'Add site'. ![](https://hackmd.io/_uploads/H1rMhxtth.png) #### Bước 2: Nhập tên miền Nhập tên miền của bạn vào trường văn bản và nhấp vào nút Add Site màu xanh dưới trường văn bản. Tên miền của bạn là cách mà người dùng hoặc khách hàng của bạn truy cập trang web của bạn. Một ví dụ về tên miền sẽ là "www.example.com". #### Bước 3: Thiết lập NS Record Bây giờ khi trang web của bạn đã được thêm vào trung tâm Bảo mật, bạn sẽ được đưa đến trình hướng dẫn Thiết lập Trang web, giúp cấu hình DNS của bạn. Để tìm hiểu thêm về DNS, vui lòng tham khảo bài viết này: [Hệ thống Tên miền (DNS)](https://support.polarisec.com/docs/security-center/dns/dns-record). Polaris tự động thêm các bản ghi DNS dựa trên phân tích của chúng tôi về trang web của bạn. Vui lòng xác minh chúng và nếu thiếu bất kỳ bản ghi nào, vui lòng nhập chúng thủ công theo [bài viết](https://support.polarisec.com/docs/security-center/dns/dns-record) này. <!-- Nếu bạn muốn nhập hoặc xuất các bản ghi DNS của mình, điều này cũng có thể được thực hiện thông qua các nút Nhập và Xuất. Lưu ý rằng định dạng tệp cho cả nhập và xuất là .TXT. Lưu ý rằng các bản ghi này cũng có thể được chỉnh sửa sau này. --> Khi bạn hoàn thành, nhấp vào nút `Next`. ![](https://hackmd.io/_uploads/ByXuWZYF3.png) *Lưu ý: Ở bước này, hệ thống của khách hàng vẫn chưa chuyển về Polaris.* #### Bước 4: Xác minh Name servers Ở bước này, bạn sẽ chuyển các name servers của mình từ đăng ký tên miền của bạn sang Polaris. Một số ví dụ về đăng ký tên miền bao gồm GoDaddy, Wix.com và Namecheap, các công ty lưu trữ trang web của bạn trên internet. Theo hướng dẫn trên trình hướng dẫn thiết lập, bạn sẽ phải đăng nhập vào trang web của nhà đăng ký và xóa các name servers được đề cập. Nếu bạn gặp khó khăn, vui lòng tham khảo trang FAQ của nhà đăng ký. Sau khi hoàn thành, thêm những gì được hiển thị trên màn hình bằng cách sao chép và dán thông tin đó. Lưu các thay đổi đã được thực hiện và phần còn lại của quá trình sẽ được tự động hóa. Khi bạn hoàn thành bước này (bạn không cần phải đợi email xác nhận), hãy nhấp vào nút `Mark Done`. ![](https://hackmd.io/_uploads/SyfMm-FKh.png) Khi các thay đổi đã được hoàn thành và name servers đã được chuyển sang Polaris, bạn sẽ nhận được một email xác nhận. Bạn cũng có thể sử dụng chức năng kiểm tra lại trên trình hướng dẫn để kiểm tra xem việc chuyển đã được thực hiện thành công hay chưa. ![](https://hackmd.io/_uploads/H1TdXWtt2.png) Bạn không cần phải đợi email xác nhận, hãy nhấp vào nút `Next` hoặc bạn nhấp vào nút `Re-Check` để kiểm tra trạng thái server của bạn đã được xác minh ở Polaris hay chưa. #### Bước 5: Các bước bổ sung Bạn có thể upload SSL Cert của mình sau khi hoàn thành tất cả các bước trên. *Nếu site của bạn đang chạy và muốn zero downtime thì nên liên hệ với support để được nâng cấp site của bạn lên gói Professional và hoàn thành upload SSL Cert trước khi hoàn thành bước 4.* Bạn đã hoàn thành thiết lập ban đầu cho trang web của mình. Bây giờ bạn có thể cấu hình các cài đặt khác. ### b. Setup site với CNAME Thiết lập với bản ghi CNAME là một trong hai cách mà bạn có thể đăng ký tên miền của mình để bảo vệ với WAAP của Polaris. Đây là phương pháp được khuyến nghị cho phần lớn người dùng vì phương pháp Nameserver là phức tạp hơn. Bạn có thể tìm hiểu [tại đây](https://support.polarisec.com/docs/quick-start/setup-cname) ## 2. Setup bổ sung Một số tính năng bạn có thể thiết lập thêm cho site của mình như: - [ ] [Setup SSL](https://support.polarisec.com/docs/security-center/ssl) - [ ] [Add custome rule](https://support.polarisec.com/docs/security-center/rules/custom-rules) - [ ] [Add Whitelist IP Address](https://support.polarisec.com/docs/security-center/access-control/whitelist-ip) - [ ] [Add Blacklist IP Address](https://support.polarisec.com/docs/security-center/access-control/blacklist-ip) - [ ] [Config Geo Access](https://support.polarisec.com/docs/security-center/access-control/geo-access) - [ ] [Edge Caching](https://support.polarisec.com/docs/security-center/access-control/edge-caching) - [ ] [Dos](https://support.polarisec.com/docs/security-center/dos) - [ ] [API Endpoints](https://support.polarisec.com/docs/security-center/api-security/api-endpoints) - [ ] [Tính năng Behavior Learning Mode](https://support.polarisec.com/docs/security-center/overview/behavior-learning-mode) - [ ] [Tính năng Under Attack Mode](https://support.polarisec.com/docs/security-center/overview/under-attack-mode) - [ ] [Bật tắt tính năng Browser Integrity Check](https://support.polarisec.com/docs/security-center/access-control/browser-integrity-check) ## 3. Kiểm tra site onboarding ### a. Kiểm tra DNS Domain - Mở của sổ cmd - Gõ lệnh `nslookup -type=ns your_domain` để kiểm tra các record ![](https://hackmd.io/_uploads/B1EB5QFFh.png) *Kết quả hiển thị site của bạn đã được chuyển sang Polaris* # III. Vấn đề onboarding ## 1. Same-origin policy (SOP) ### Same-origin policy (SOP) là gì? **Same-origin policy (SOP)** là một trong những chính sách bảo mật quan trọng nhất trên trình duyệt hiện đại, nhằm ngăn chặn JavaScript code có thể tạo ra những request đến những nguồn khác với nguồn mà nó được trả về. Ba tiêu chí chính để so sánh request bao gồm: - Domain (tên miền) - Protocol (giao thức) - Port (cổng kết nối) Nói đơn giản thì request sẽ được coi là hợp lệ chỉ khi nó thỏa mãn 3 tiêu chí ở trên (cùng domain, cùng protocol và cùng port) ### Cách khắc phục Chúng ta có nhiều cách để giải quyết trong trường hợp này, thường dùng nhất là: - Cross Origin Resource Sharing (CORS) - Thêm [quy tắc tuỳ chỉnh](https://support.polarisec.com/docs/security-center/rules/custom-rules) ## 2. CORS ### CORS là gì? **CORS (Cross-origin resource sharing)** là một cơ chế cho phép nhiều tài nguyên khác nhau (fonts, Javascript, v.v…) của một trang web có thể được truy vấn từ domain khác với domain của trang đó. ### Lỗi CORS policy là gì? Khi bạn call API tới server mà không có header `Access-Control-Allow-Origin` hoặc giá trị của nó không hợp lệ thì sẽ phát sinh lỗi này và không lấy được dữ liệu từ API. `Access to XMLHttpRequest at 'API_URL' from origin 'FRONTEND_URL' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource`. ### Cách khắc phục Để khắc phục, bạn cần cài đặt tính năng CORS Policy tại **Site của bạn** > **Settings** > **Rules** > **CORS Policy** ## 3. Chậm khi load website ### Một số nguyên nhân phổ biến dẫn đến tốc độ load web chậm - Mã HTML, CSS, JS chưa được tối ưu - Không gzip source code - Không xóa ghi chú - Dung lượng hình ảnh/video... quá cao và nặng - Chất lượng Hosting kém ### Cách khắc phục - Để khắc phục vấn đề này bạn có thể bật tính năng Edge Caching. Để biết thêm về Edge Caching, bạn có thể tìm hiểu [tại đây](https://support.polarisec.com/docs/security-center/access-control/edge-caching). - Hoặc bạn có thể sử dụng CDN để khắc phục. ## 4. False Positive ### False Positive là gì? Thuật ngữ “false positive” được hiểu như một báo động giả, giống như việc báo động nhà của bạn được kích hoạt mà lại không có một tên trộm nào cả. Trong bảo mật ứng dụng web, một False Positive được dùng khi khi một trình quét bảo mật ứng dụng web phát hiện một lỗ hổng trên trang web của bạn, chẳng hạn như SQL Injection, nhưng thực tế không hề có lỗi đó. ### Các khắc phục Có 2 cách để khắc phục vấn đề này ở Polaris: - Bạn có thể đánh dấu lỗi đó là False Positive ở [Security Event](https://support.polarisec.com/docs/security-center/incidents/security-events) - Hoặc bạn có thể thêm [quy tắc tuỳ chỉnh](https://support.polarisec.com/docs/security-center/rules/custom-rules) ## 5. Một số vấn đề khi thiết lập _DNS_ - **Sai cấu hình DNS**: Lỗi này xảy ra khi bạn nhập sai thông tin cấu hình DNS, chẳng hạn như sai địa chỉ IP của máy chủ DNS hoặc sai cú pháp của các bản ghi DNS. - **Thời gian cập nhật DNS**: Khi bạn thay đổi cấu hình DNS, có thể mất thời gian để các thay đổi được lan truyền và cập nhật trên các máy chủ DNS trên toàn cầu. Do đó, các lỗi có thể xảy ra khi thay đổi không được hiển thị ngay lập tức. - **Lỗi trỏ DNS**: Khi cấu hình DNS không đúng, trang web hoặc ứng dụng có thể không được trỏ đúng địa chỉ IP của máy chủ mà bạn mong muốn. Điều này có thể dẫn đến việc không thể truy cập được trang web hoặc ứng dụng. - **Lỗi cache DNS**: Các máy tính và thiết bị mạng có thể lưu trữ thông tin DNS trong bộ nhớ cache để tăng tốc độ truy cập. Tuy nhiên, nếu thông tin trong cache không được cập nhật hoặc không đồng bộ với các thay đổi DNS, có thể xảy ra lỗi khi truy cập vào trang web hoặc ứng dụng. - **Lỗi tương tác giữa tên miền và DNS**: Khi bạn cài đặt DNS cho tên miền, có thể xảy ra lỗi trong quá trình tương tác giữa tên miền và máy chủ DNS. Điều này có thể là do các vấn đề về cấu hình, quyền truy cập, hoặc các vấn đề kỹ thuật khác. - **Để tránh các lỗi khi setup DNS**, hãy kiểm tra và xác nhận thông tin cấu hình DNS chính xác, đảm bảo thời gian cập nhật DNS đủ cho các thay đổi được lan truyền, kiểm tra lại các bản ghi DNS và làm sạch cache DNS trên các thiết bị. Nếu gặp phải vấn đề, hãy liên hệ với nhà cung cấp dịch vụ DNS để được hỗ trợ. ## 6. Một số vấn đề khi thiết lập _SSL_ trên _Polaris_ - **Lỗi không khớp chứng chỉ SSL**: Chứng chỉ SSL không khớp với tên miền trên Polaris. - **Lỗi không thiết lập chuyển hướng HTTPS**: Chưa thiết lập chuyển hướng từ HTTP sang HTTPS sau khi cấu hình SSL trên Polaris. Điều này hay xảy ra khi khách hàng chọn giữa 2 options là "Full" và "Flexible". - **Lỗi không cài đặt chính xác chứng chỉ SSL**: Cài đặt chứng chỉ SSL không đúng hoặc thiếu thông tin trên Polaris. - **Lỗi không hỗ trợ TLS**: Phiên bản Polaris không hỗ trợ giao thức TLS hoặc cấu hình không đúng. - **Để khắc phục các lỗi liên quan đến cấu hình SSL** trên **Polaris**, bạn nên kiểm tra và đảm bảo rằng chứng chỉ SSL được cài đặt đúng và khớp với tên miền, thiết lập chuyển hướng từ HTTP sang HTTPS, và đảm bảo rằng Polaris hỗ trợ phiên bản TLS được sử dụng. Nếu vấn đề vẫn tiếp tục, hãy liên hệ với hỗ trợ của Polaris để được hỗ trợ chi tiết và giải quyết lỗi.0 # Phụ lục I: Một số khái niệm cơ bản - **HTTP (Hypertext Transfer Protocol)**: là giao thức để truy cập internet. Thông thường, dữ liệu được truyền qua giao thức **_HTTP_** không được mã hóa. - **HTTPS (Hypertext Transfer Protocol Secure)**: là một phiên bản an toàn và bảo mật hơn của giao thức HTTP được sử dụng để truyền tải thông tin qua mạng Internet. Nó sử dụng giao thức SSL/TLS (Secure Sockets Layer/Transport Layer Security) để mã hóa dữ liệu và bảo vệ tính riêng tư và toàn vẹn của thông tin trong quá trình truyền tải. ![](https://hackmd.io/_uploads/S1o9AJJ_n.png) - **SSL (Secure Sockets Layer)**: là một giao thức bảo mật được sử dụng để bảo vệ việc truyền tải thông tin qua mạng. - **SSL Certificate**: là một tệp dữ liệu được sử dụng để bảo mật trang web. Nó xác thực tính hợp lệ của trang web và mã hóa dữ liệu khi truyền qua mạng. - Một ví dụ phổ biến nhất về hai hệ thống giao tiếp với nhau mà có sử dụng **_SSL_** là giao tiếp giữa trình duyệt và máy chủ web. - Nếu ta truy cập một trang web mà ta thấy giao thức của nó là **_HTTP_**, thì giao tiếp giữa trình duyệt và máy chủ đang **_không được bảo mật_**, dữ liệu đang được truyền đi theo dạng văn bản thô. Còn nếu ta truy cập một trang web mà thấy giao thức của nó là HTTPS, có nghĩa là nó đang có sử dụng **_SSL_** và dữ liệu truyền đi giữa trình duyệt và máy chủ đã được mã hóa. ![](https://hackmd.io/_uploads/H1wLIeyd3.png) - Cách thức hoạt động của giao thức **_HTTPS_**: ![](https://hackmd.io/_uploads/ByCMKJ1O2.png) - **Origin Server (Máy chủ gốc)**: là một thuật ngữ để chỉ máy chủ chứa nguồn gốc của một trang web, ứng dụng hoặc tài nguyên trực tuyến. Khi một người dùng truy cập vào một trang web, yêu cầu truy cập đó được gửi đến **_Origin Server_** để lấy nội dung cần thiết và trả về cho người dùng. - **Domain (Tên miền)**: là một địa chỉ duy nhất trên Internet được sử dụng để xác định và truy cập đến các nguồn tài nguyên trực tuyến, chẳng hạn như trang web, dịch vụ email, máy chủ và nhiều hơn nữa. Nó là một phần quan trọng của hệ thống tên miền (Domain Name System - DNS) và được sử dụng để thay thế các địa chỉ IP phức tạp bằng các tên dễ nhớ và nhận dạng. - **Subdomain (Tên miền phụ)**: là phần mở rộng của một **_tên miền_**. **_Subdomain_** có thể được tạo hoàn toàn miễn phí và nó có thể hoạt động như một tên miền thực thụ. - Ví dụ: subdomain.example.com - "subdomain" là subdomain và "example.com" là tên miền chính. - Subdomain thường được sử dụng để chỉ đến các phần khác nhau của một trang web hoặc để tạo ra các dịch vụ con riêng biệt. Ví dụ, một công ty có thể sử dụng subdomain như "blog.example.com" cho blog của họ, "store.example.com" cho cửa hàng trực tuyến và "mail.example.com" cho dịch vụ email. ![](https://hackmd.io/_uploads/BkNculyun.png) - **DNS (Domain Name System)**: là một hệ thống cơ sở dữ liệu phân tán và giao thức mạng được sử dụng để chuyển đổi các địa chỉ IP (Internet Protocol) thành tên miền và ngược lại. ![](https://hackmd.io/_uploads/HJRMKlJu3.png) - **IPv4 (Internet Protocol version 4)** là một giao thức phổ biến trong truyền thông dữ liệu. Nó được phát triển như một giao thức không hướng kết nối (connectionless). Dùng trong các mạng chuyển mạch gói (network packet switching) như Ethernet. Nó có nhiệm vụ cung cấp kết nối logic giữa các thiết bị mạng. Trong đó bao gồm cả việc cung cấp nhận dạng cho các thiết bị. - **Internet Protocol version 6 (IPv6)**: là phiên bản IP mới hơn, hay còn được gọi là Internet Protocol Next Generation (IPng) (Giao thức thế hệ tiếp theo).Hoạt động tương tự như là (IPv4), cung cấp các địa chỉ duy nhất cho tất cả các thiết bị được kết nối với internet. Tuy vậy, không giống như IPv4, IPv6 sử dụng địa chỉ 128 bit thay vì định dạng địa chỉ 32 bit. ![](https://hackmd.io/_uploads/ryQHYzgdn.png) - **Các loại bản ghi của DNS**: - **A record** (viết tắt của **_Address record_**) là DNS record cơ bản và quan trọng nhất dùng để truy cập web. Nó giúp trỏ tên miền (domain) của website tới một địa chỉ IP cụ thể. **A record** được dùng để chuyển tên miền sang địa chỉ **_IPv4_** và có cú pháp như sau: - [Tên miền] IN A [địa chỉ IP của máy] - Ví dụ: ![](https://hackmd.io/_uploads/Bkax1meu2.png) - **AAAA record**: là một bản ghi DNS được sử dụng để ánh xạ địa chỉ IPv6 cho một tên miền. Nó cho phép kết nối mạng thông qua IPv6. Địa chỉ IPv6 là phiên bản tiếp theo của địa chỉ IP và sử dụng 128-bit. AAAA record tương tự như bản ghi A, nhưng ánh xạ địa chỉ IPv6 thay vì IPv4 cho tên miền. Mỗi AAAA record cho phép kết nối mạng thông qua địa chỉ IPv6 cụ thể. - Ví dụ: ![](https://hackmd.io/_uploads/S1vV0fld2.png) - **CNAME record**: được sử dụng trong DNS để ánh xạ một tên miền thay thế (alias) đến một tên miền chính (canonical name). Khi một truy vấn DNS được thực hiện cho tên miền có **_CNAME record_**, nó sẽ điều hướng truy vấn đến tên miền chính được chỉ định trong **_bản ghi CNAME_**. Điều này cho phép tạo liên kết giữa các tên miền và tiện lợi trong việc thay đổi hoặc chuyển hướng tên miền. - Ví dụ: ![](https://hackmd.io/_uploads/Sy-mLQgu3.png) - **MX record (Mail Exchanger record)**: là một bản ghi DNS dùng để chỉ định máy chủ email chịu trách nhiệm nhận và xử lý thư cho một tên miền. Nó xác định máy chủ email được sử dụng để gửi thư tới. - Ví dụ: ![](https://hackmd.io/_uploads/SJBLaXed3.png) ![](https://hackmd.io/_uploads/SJpPp7gu2.png) - Trong đó số 1 là giá trị ưu tiên. Các số này có thể là các số nguyên bất kì từ 1 đến 255, số càng nhỏ thì độ ưu tiên càng cao. - **TXT record**: là một loại DNS record giúp tổ chức các thông tin dạng text (văn bản) của tên miền. Một domain (tên miền) có thể có nhiều bản ghi TXT và chúng chủ yếu được dùng cho các Sender Policy Framework (SPF) codes, giúp email server xác định các thư được gửi đến có phải từ một nguồn đáng tin hay không. Ngoài ra, loại bản ghi DNS này còn dùng để xác thực máy chủ của một tên miền, xác minh SSL... - Ví dụ: ![](https://hackmd.io/_uploads/B1tUCQguh.png) - **NS record (Name Server record)**: là một loại DNS record giúp xác định thông tin của một tên miền cụ thể được khai báo và quản lý trên máy chủ nào. - [Tên miền] IN NS [tên máy chủ tên miền] ``` Ví dụ: example.com IN NS ns1.example.vn example.com IN NS ns2.example.vn ``` - **CAA record (Certification Authority Authorization record)**: là một bản ghi DNS được sử dụng để xác định quyền ủy quyền cho các nhà cung cấp chứng chỉ SSL/TLS phát hành chứng chỉ cho tên miền. Nó giúp chủ sở hữu tên miền kiểm soát và giới hạn các CA được phép cung cấp chứng chỉ cho tên miền của họ, đảm bảo an toàn và đáng tin cậy trong việc cấp chứng chỉ bảo mật. - **SRV record**: là bản ghi DNS tùy chỉnh. SRV được dùng để liên kết dịch vụ và tên máy chủ. Khi một ứng dụng cần tìm vị trí của một dịch vụ cụ thể, nó sẽ tìm kiếm một SRV record có liên quan. Nếu SRV record được tìm thấy, ứng dụng sẽ lọc qua danh sách các dịch vụ và tên máy chủ kết nối của SRV để tìm những thứ sau: - Hostname - Ports - Priority and Weight - IP Addresses (nếu có) ![](https://hackmd.io/_uploads/H1CjyBxOn.png)