Hướng dẫn cài đặt ModSecurity với Nginx trên Debian/Ubuntu

ModSecurity là một ứng dụng tường lửa web (Web Application Firewall – WAF) mã nguồn mở, giúp bảo vệ các ứng dụng web khỏi các cuộc tấn công phổ biến như SQL injection, cross-site scripting (XSS), và nhiều loại tấn công khác. Kết hợp với Nginx, nó cung cấp một lớp bảo mật mạnh mẽ cho server của bạn.

Trong bài viết này, chúng ta sẽ thực hiện các bước cài đặt ModSecurity với Nginx trên hệ điều hành Debian/Ubuntu.

Bước 1: Cập nhật hệ thống

Trước khi bắt đầu, hãy đảm bảo rằng hệ thống của bạn được cập nhật các gói phần mềm mới nhất:

sudo apt update
sudo apt upgrade

Bước 2: Cài đặt các gói phụ thuộc

ModSecurity yêu cầu một số gói phụ thuộc, vì vậy hãy cài đặt chúng bằng lệnh sau:

sudo apt install libnginx-mod-http-modsecurity libmodsecurity3

Gói libmodsecurity3 là phiên bản thứ ba của ModSecurity, được viết lại với hiệu suất cao hơn và khả năng mở rộng tốt hơn.

Bước 3: Cấu hình ModSecurity trong Nginx

Sau khi cài đặt, bạn cần cấu hình Nginx để sử dụng ModSecurity. Mở file cấu hình Nginx:

sudo nano /etc/nginx/nginx.conf

Thêm dòng sau vào phần http {} để kích hoạt ModSecurity:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsecurity.conf;

File modsecurity.conf chứa các quy tắc của ModSecurity.

Bước 4: Cấu hình ModSecurity

ModSecurity cần được cấu hình để hoạt động. Bạn cần tải về và sử dụng tập tin cấu hình mặc định:

sudo mkdir /etc/nginx/modsec
sudo cp /usr/share/modsecurity-crs/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Mở file cấu hình để chỉnh sửa:

sudo nano /etc/nginx/modsec/modsecurity.conf

Tìm dòng sau và thay đổi giá trị từ DetectionOnly thành On để kích hoạt chế độ phòng thủ:

SecRuleEngine On

Bước 5: Tải về và cấu hình Core Rule Set (CRS)

ModSecurity sử dụng Core Rule Set (CRS), một tập hợp các quy tắc bảo mật phổ biến. Hãy tải về CRS:

sudo apt install modsecurity-crs
sudo cp /usr/share/modsecurity-crs/crs-setup.conf.example /etc/nginx/modsec/crs-setup.conf

Cấu hình Nginx để sử dụng CRS:

sudo nano /etc/nginx/nginx.conf

Thêm dòng sau vào phần http {}:

include /etc/nginx/modsec/crs-setup.conf;
include /usr/share/modsecurity-crs/rules/*.conf;

Bước 6: Kiểm tra cấu hình và khởi động lại Nginx

Sau khi cấu hình xong, hãy kiểm tra cấu hình Nginx để đảm bảo không có lỗi:

sudo nginx -t

Nếu không có lỗi, hãy khởi động lại Nginx để áp dụng thay đổi:

sudo systemctl restart nginx

Bước 7: Kiểm tra hoạt động của ModSecurity

Bạn có thể kiểm tra ModSecurity bằng cách thử thực hiện một số tấn công phổ biến lên ứng dụng web của mình (trong môi trường kiểm thử) và kiểm tra file log của ModSecurity tại:

sudo tail -f /var/log/nginx/error.log

Với các bước trên, bạn đã cài đặt và cấu hình thành công ModSecurity với Nginx trên Debian/Ubuntu. Giờ đây, ứng dụng web của bạn sẽ được bảo vệ trước nhiều loại tấn công web phổ biến.

Viết một bình luận