Cách cấu hình và vận hành modsecurity

I. GIỚI THIỆU

Xin chào anh em, ModSecurity là một công cụ mã nguồn mở mạnh mẽ, thường được gọi là một Web Application Firewall (WAF), giúp bảo vệ các ứng dụng web khỏi các cuộc tấn công nằm trong OWASP top 10. Được phát triển bởi SpiderLabs, ModSecurity hỗ trợ nhiều nền tảng web server như Apache, Nginx, và IIS, giúp ngăn chặn các cuộc tấn công bằng cách theo dõi và phân tích các yêu cầu HTTP.

-> Điểm nổi bật của ModSecurity là tính linh hoạt trong việc cấu hình quy tắc bảo vệ thông qua các bộ quy tắc có thể tùy chỉnh. Bộ quy tắc phổ biến nhất là OWASP Core Rule Set (CRS), một tập hợp các quy tắc bảo vệ phổ quát nhằm ngăn chặn các loại tấn công phổ biến nhắm vào ứng dụng web. ModSecurity cũng cung cấp khả năng ghi log chi tiết, giúp các quản trị viên hệ thống theo dõi các sự kiện bảo mật và phát hiện sớm các hành vi đáng ngờ.

-> Khả năng tương thích của ModSecurity với các nền tảng web khác nhau và sự tùy biến cao làm cho nó trở thành lựa chọn hàng đầu của nhiều tổ chức trong việc đảm bảo an ninh ứng dụng web. Không chỉ dừng lại ở việc ngăn chặn, ModSecurity còn cung cấp cơ chế phản ứng tự động, giúp giảm thiểu các rủi ro bảo mật một cách hiệu quả. Với ModSecurity, các doanh nghiệp có thể an tâm hơn trước mối đe dọa từ các cuộc tấn công mạng hiện đại, giữ cho hệ thống của họ an toàn và ổn định.

II. HƯỚNG DẪN CÀI ĐẶT

1. Cài đặt các phụ thuộc cần thiết

Trước khi bắt đầu, ta cần cài đặt các gói phụ thuộc cần thiết để build ModSecurity:

Trên Ubuntu:

sudo apt-get update
sudo apt-get install -y git gcc g++ make libcurl4-openssl-dev libgeoip-dev libyajl-dev doxygen libtool autoconf automake

Trên CentOS/RHEL:

sudo yum install -y gcc-c++ libcurl-devel yajl yajl-devel GeoIP-devel doxygen autoconf automake libtool

2. Tải mã nguồn ModSecurity v3

ModSecurity v3 được phát triển dành cho Nginx nên ta cần tải về từ repo GitHub.

git clone --depth 1 https://github.com/SpiderLabs/ModSecurity
cd ModSecurity

3. Build ModSecurity

Chuẩn bị môi trường:

git submodule init
git submodule update
./build.sh

Cấu hình và build ModSecurity:

./configure
make
sudo make install

4. Tải và build module ModSecurity dành cho Nginx

Module này giúp Nginx giao tiếp với ModSecurity:

git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git

5. Build lại Nginx với module ModSecurity

Ta cần tải mã nguồn Nginx và build lại cùng với module ModSecurity.

Tải phiên bản Nginx đang dùng:

wget http://nginx.org/download/nginx-<version>.tar.gz
tar -zxvf nginx-<version>.tar.gz
cd nginx-<version>

Cấu hình Nginx với ModSecurity:

./configure --with-compat --add-module=../ModSecurity-nginx
make
sudo make install

6. Cấu hình Nginx để sử dụng ModSecurity

Mở file cấu hình Nginx (ví dụ: /etc/nginx/nginx.conf) và thêm các dòng sau:

load_module modules/ngx_http_modsecurity_module.so;

http {
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;
}

Tạo file cấu hình chính của ModSecurity:

sudo mkdir /etc/nginx/modsec
sudo cp /usr/local/modsecurity/lib/modsecurity.conf-recommended /etc/nginx/modsec/main.conf
sudo cp /usr/local/modsecurity/lib/unicode.mapping /etc/nginx/modsec/

Kích hoạt ModSecurity trong file cấu hình /etc/nginx/modsec/main.conf

SecRuleEngine On

7. Cài đặt OWASP CRS (bộ quy tắc bảo vệ)

Tải và cài đặt OWASP CRS:

git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/modsec/crs
cp /etc/nginx/modsec/crs/crs-setup.conf.example /etc/nginx/modsec/crs/crs-setup.conf

Thêm dòng sau vào main.conf để thêm CRS:

Include /etc/nginx/modsec/crs/crs-setup.conf
Include /etc/nginx/modsec/crs/rules/*.conf

8. Khởi động lại Nginx

Sau khi hoàn tất cấu hình, khởi động lại Nginx:

sudo systemctl restart nginx

Kiểm tra logs của ModSecurity để đảm bảo rằng nó hoạt động đúng cách:

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

Published by Nhat Truong

Hi

Leave a comment