Nginx WAF – Advanced Nginx Management Platform

6 Likes Comment

Trong thời gian qua mình có phát triển một phần mềm Nginx WAF – Advanced Nginx Management Platform dùng để quản lý nginx và cấu hình cho loadbalancer và WAF để đảm bảo an toàn cho hệ thống dịch vụ, với cấu hình giao diện đơn giản dễ sử dụng

I: Hướng dẫn cài đặt

Phần mềm này yêu cầu hệ điều hành là ubuntu tối thiểu là 22.04 và có quyền root, khi đăng nhập ssh các bạn chạy lệnh

# Clone repository
git clone https://github.com/TinyActive/nginx-love.git
cd nginx-love

# Run deployment script (requires root)
bash scripts/deploy.sh

Sau đó chờ cho hệ thống hoàn thiện cài đặt bạn sẽ có thông tin đăng nhập với IP public, quá trình cài đặt có thể lâu chóng tùy vào cấu hình trong quá trình cài mọi thành phần cần thiết sẽ được triển khai và cài đặt đầy đủ

Lúc này bạn vào phần Access the portal để cấu hình với tài khoản mặc định

Username: admin
Password: admin123

Sau khi đăng nhập lần đầu bạn được yêu cầu đổi mật khẩu và bật 2fa cho tài khoản

Bạn cần tiến hành đổi mật khẩu và bật 2FA để đảm bảo an toàn cho hệ thống

Sau khi cấu hình song thì bạn sẽ được chuyển vào Dashboard để sử dụng được phần mềm

II: Cấu hình domain

Để cấu hình domain bạn vào phần domain chọn add domain một giao diện mới sẽ hiện ra

Bạn điền các thông tin cần thiết bao gồm:

  • domain name: domain của bạn là gì
  • status và loadbalancer algorithm các bạn để nguyên cũng được
  • Upstream Backends: là IP và port truy cập tới backend cần điền đầy đủ các thông tin về IP port, bạn có nhiều backend thì chọn add backend để điền thêm
  • Domian các bạn có cần waf không nếu có hãy bật Enables Modsecurity lên

Lưu ý cực quan trọng nếu backend của bạn chạy port có ssl thì cần phải kích hoạt Disable SSL Verification lên như hình thì mới có thể truy cập được

như vậy chúng ta đã cấu hình song domain vào hệ thống

2: Cấu hình ssl

Cấu hình ssl thì có hai phần nếu bạn dùng ssl auto thì bạn cần đảm bảo đang trỏ domian về IP và sau đó vào phần ssl chọn auto ssl chọn domain và điền email vào

sau khi được cấp ssl thành công bạn sẽ thấy giao diện như bên dưới

Bây giờ cần kích hoạt ssl cho domain các bạn quay lại phần domain chọn kích hoạt ssl bằng cách nhấn vào biểu tượng cái khiên chờ một lát là ssl sẽ được áp dụng cho domain

Nhấn xác nhận để kích hoạt ssl

Lúc này sau khi xác nhận các bạn có thể vào được domain có ssl rồi

Tiện đây các bạn có thể kiểm tra luôn waf có hoạt động không với payloads đơn giản như bên dưới

<IMG SRC="javascript:alert('XSS');">

Nếu bạn đã bật modsec từ đầu thì bạn sẽ nhận được thông báo 403

Bây giờ tôi sẽ tắt waf đi để xem có bị chặn nữa không

Chúng ta sẽ thấy không bị chặn nữa như vậy waf đã hoạt động đúng

III: Quản Lý Log

Để xem được log thì cần chọn vào menu log trong này bạn sẽ thấy toàn bộ log được hiển thị có phân loại các log

Bạn có thể chọn domain cụ thể để xem log của chúng cho dễ theo dõi

Phần Details log sẽ có chi tiết về IP, Path truy cập và trạng thái, ví dụ người dùng bị chặn thì bạn có thể thấy log như sau

IP: 103.107.199.90
GET /?adim=%3CIMG%20SRC=%22javascript:alert(%27XSS%27);%22%3E
Status: 403

IV: Cấu hình ALert

Ở đây mình chỉ hướng dẫn cấu hình về Telegram còn Mail thì các bạn cần thêm cấu hình vào file .env backend với các thông số bên dưới sau đó build lại backend và cấu hình tương tự

# SMTP Configuration
SMTP_HOST="smtp.example.com"
SMTP_PORT=587
SMTP_USER="[email protected]"
SMTP_PASS="change-this-to-random-password"

Trong phần Alerts & Notifications chọn add channel

Các bạn điền đầy đủ thông tin kết nối vào đây

Sau khi thêm song bạn qua ALert Rule để cấu hình loại cảnh báo, hệ thống có 4 loại cảnh báo phân thành 2 loại

  • Cảnh báo về hệ thống như RAM, CPU, DISK
  • Cảnh báo về backend: Cert hết hạn, Backend Down

Sau khi thiết lập rule song thì lưu lại khi có vấn đề sẽ nhận được thông báo qua tin nhắn tele như sau ở đây mình ví dụ về backend down

0 0 votes
Article Rating
Avatar

About the Author: Vô Ưu

Xin chào! Tôi là Vouu, người sáng lập blog này. Tôi là một người yêu thích. Tôi có một công việc ban ngày với tư cách là một chuyên viên bơm vá săm xe các loại, và trang web này là một trong những hoạt động yêu thích của tôi, đặc biệt là trong những lúc rảnh rỗi. Hy vọng bạn thích sử dụng trang web này, và nó sẽ mang lại cho bạn nhiều điều bổ ích. Phản hồi từ người đọc sẽ truyền cảm hứng cho tôi để tôi có thể viết được nhiều hơn nữa !. Bạn chỉ cần để lại nhận xét bên dưới nếu bạn thấy bài viết này hữu ích. Chúc bạn ngày mới tốt lành!
Subscribe
Notify of
guest
0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x