Thứ Ba, 7 tháng 4, 2026

Nginx mode security


1. Cài đặt modesecurity
sudo apt-get update
sudo apt-get install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libgeoip-dev libyajl-dev doxygen libpcre2-16-0 libpcre2-dev libpcre2-posix3 zlib1g zlib1g-dev -y

cd /opt && sudo git clone https://github.com/owasp-modsecurity/ModSecurity.git
cd ModSecurity
git submodule init
git submodule update
./build.sh
./configure
make
make install

2. Cài đặt nginx cho người lười compile
sudo add-apt-repository ppa:ondrej/nginx -y
sudo apt update
sudo apt install nginx -y

sudo systemctl enable nginx
sudo systemctl status nginx

sudo nginx -V
nginx version: nginx/1.28.1
built with OpenSSL 3.0.13 30 Jan 2024
TLS SNI support enabled

3. Download nginx-mod connector
cd /opt && sudo git clone https://github.com/owasp-modsecurity/ModSecurity-nginx.git

cd /opt && sudo wget https://nginx.org/download/nginx-1.28.1.tar.gz
sudo tar -xzvf nginx-1.28.1.tar.gz
cd nginx-1.28.1

sudo ./configure --with-compat --add-dynamic-module=/opt/ModSecurity-nginx
sudo make
sudo make modules

sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules-enabled/
sudo cp /opt/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsecurity.conf
sudo cp /opt/ModSecurity/unicode.mapping /etc/nginx/unicode.mapping

#2. Enable ModSecurity in nginx.conf
vim /etc/nginx/nginx.conf
load_module /etc/nginx/modules-enabled/ngx_http_modsecurity_module.so;

vim /etc/nginx/sites-enabled/default
modsecurity on;
modsecurity_rules_file /etc/nginx/modsecurity.conf;

#Change SecRuleEngine to On.
vim /etc/nginx/modsecurity.conf
SecRuleEngine On

#after that we can our nginx configuration and restart nginx server
sudo nginx -t
sudo systemctl restart nginx

4. Cấu hình CRS
sudo git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/owasp-crs
sudo cp /etc/nginx/owasp-crs/crs-setup.conf{.example,}


sudo vim /etc/nginx/modsecurity.conf
Include owasp-crs/crs-setup.conf
Include owasp-crs/rules/*.conf

curl http://127.0.0.1/doc?s=/bin/bash #-> Return 404 FILE-NOT-FOUND

sudo nginx -t
sudo service nginx restart

# Test Modsecurity + Nginx with browser
curl http://127.0.0.1/doc?s=/bin/bash #-> Return 403 BLOCK

# Đọc log tại
cat /etc/nginx/modsecurity.conf  | grep AuditLog
tail -f /var/log/modsec_audit.log

5. Chỉ chặn SQL XSS
sudo vim /etc/nginx/modsecurity.conf
# Nạp cấu hình cơ bản của CRS
Include /etc/nginx/owasp-crs/crs-setup.conf

# CHỈ NẠP CÁC QUY TẮC SQL INJECTION
Include /etc/nginx/owasp-crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf

# CHỈ NẠP CÁC QUY TẮC XSS
Include /etc/nginx/owasp-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf

# File này giúp ModSecurity tổng hợp điểm số (score) từ các quy tắc trên để đưa ra quyết định chặn (deny) cuối cùng. Đừng quên file này.
Include /etc/nginx/owasp-crs/rules/RESPONSE-980-CORRELATION.conf

6. Bản cài ăn sẵn
https://modsecurity.digitalwave.hu/

7. Custome log
# Chọn các phần muốn ghi log (ABCDEFHJKZ)
A: Audit Log Header (Bắt buộc). Chứa thông tin cơ bản: thời gian, ID duy nhất, IP nguồn, IP đích, cổng.
B: Request Headers. Ghi lại toàn bộ các Header gửi lên (User-Agent, Cookie, Host, v.v.).
C: Request Body. Ghi lại nội dung payload gửi lên (Dữ liệu form, JSON, file upload). Chỉ hoạt động nếu SecRequestBodyAccess là On.
D: Reserved. (Dự phòng cho tương lai, hiện tại không dùng).
E: Intermediate Response Body. Ghi lại nội dung server phản hồi cho client. (Có thể làm log rất nặng).
F: Response Headers. Ghi lại các Header server gửi trả về cho trình duyệt.
G: Reserved. (Dự phòng).
H: Audit Log Trailer. Chứa các thông tin bổ sung như: điểm số tấn công (Score), loại engine, và các thông tin Metadata khác.
I: Replacement for C. (Ít dùng) Ghi lại Request Body nhưng dùng định dạng multipart/form-data.
J: Uploaded Files Info. Thông tin chi tiết về các file được tải lên (tên file, kích thước).
K: Matched Rules. Danh sách tất cả các Rule ID đã bị khớp (Trigger) trong request này. (Rất quan trọng để debug).
Z: Final Boundary (Bắt buộc). Đánh dấu kết thúc một bản ghi log.

vim /etc/nginx/modsecurity.conf
SecAuditLogParts ABCEFHJKZ


Nginx mode security

1. Cài đặt modesecurity sudo apt-get update sudo apt-get install gcc make build-essential autoconf automake libtool libcurl4-o...