Home Máy chủCentOS Cài đặt ModSecurity với Nginx trên CentOS 7

Cài đặt ModSecurity với Nginx trên CentOS 7

by admincp

ModSecurity là tường lửa ứng dụng web giú p bảo vệ website khỏi các cuộc tấn công. Bài viết này sẽ hướng dẫn cài đặt ModSecurity với Nginx trên CentOS 7.

Cài đặt ModSecurity với Nginx – ModSecurity là tường lửa ứng dụng web miễn phí cho Apache và Nginx. Nó rất hữu ích để bảo vệ máy chủ web của bạn khỏi các cuộc tấn công khác nhau bằng cách chặn hầu hết các kiểu khai thác đã biết bằng cách sử dụng các biểu thức và bộ quy tắc thông thường.

ModSecurity có thể phát hiện các cuộc tấn công bằng cách theo dõi và phân tích lưu lượng HTTP trong thời gian thực. Trong bài viết này VINASTAR sẽ hướng dẫn các bạn cài đặt ModSecurity với OWASP rule trên VPS CentOS 7.

Cài đặt ModSecurity với Nginx trên CentOS 7

1. Bước 1: Cài đặt Nginx

Nếu các bạn chưa cài đặt Nginx trên VPS của mình các bạn có thể xem hướng dẫn cài đặt LEMP (Nginx – MariaDB – PHP-FPM) trên CentOS 7.

2. Bước 2: Cài đặt các thư viện cần thiết

Trước khi bắt đầu cài đặt ModSecurity chúng ta cần cập nhật hệ thống và cài đặt các gói cần thiết sau

yum -y update
yum install -y gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel bison bison-devel git

3. Bước 3: Biên dịch ModSecurity

Sau khi đã hoàn tất cài đặt các thành phần cần thiết các bạn tiến hành biên dịch ModSecurity bằng các lệnh sau

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

4. Bước 4: Tạo ModSecurity Module cho Nginx

Tải xuống Nginx và tạo modules ModSecurity cho  nginx. Các bạn cần tải xuống phiên bản Nginx trùng với phiên bản đang sử dụng trên máy chủ của mình. Để kiểm tra phiên bản Nginx đang sử dụng hãy dùng lệnh sau

nginx -v

Screenshot_130

Trong bài viết này VINASTAR sẽ sử dụng phiên bản Nginx stable mới nhất là 1.18.0

cd /opt/ModSecurity
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -xvf nginx-1.18.0.tar.gz
git clone https://github.com/SpiderLabs/ModSecurity-nginx
cd /opt/ModSecurity/nginx-1.18.0
./configure --add-dynamic-module=../ModSecurity-nginx --with-compat
make modules

Bây giờ, các bạn đã tạo thành công các modules và bạn cần sao chép nó vào /etc/nginx/modules/.

cd /opt/ModSecurity/nginx-1.18.0/objs
cp ngx_http_modsecurity_module.so /etc/nginx/modules/

Load các modules này trong file /etc/nginx.conf của bạn

nano /etc/nginx/nginx.conf

Thêm vào dòng sau

load_module modules/ngx_http_modsecurity_module.so;

Screenshot_134

Bấm Ctrl + o và nhấn Enter để lưu file, Ctrl + x để thoát khỏi nano. Sau đó khởi động lại Nginx để cấu hình có hiệu lực

service nginx restart

5. Bước 5: Cài đặt OWASP rule

  • Tải xuống OWASP (Open Web Application Security Project) rules bằng cách chạy lần lượt các lệnh sau
cd /etc/nginx
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
mv owasp-modsecurity-crs modsecurity-crs
cd modsecurity-crs
cp crs-setup.conf.example crs-setup.conf
  • Tạo file /etc/nginxmodsec_includes.conf
nano /etc/nginx/modsec_includes.conf

Dán nội dung dưới đây vào

include modsecurity.conf
include modsecurity-crs/crs-setup.conf
include modsecurity-crs/rules/*.conf

Screenshot_136

Bấm Ctrl + o và nhấn Enter để lưu file, Ctrl + x để thoát khỏi nano.

  • Thêm file cấu hình ModSecurity
cp /opt/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsecurity.conf
cp /opt/ModSecurity/unicode.mapping /etc/nginx/unicode.mapping

Để bật ModSecurity các bạn sử dụng lệnh sau

sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsecurity.conf

6. Bước 6: Kiểm tra

Để kiểm tra xem ModSecurity có thực sự hoạt động hay không các bạn mở file /etc/nginx/conf.d/default.conf và thêm vào 2 dòng sau

server {
   ....
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec_includes.conf;
}

Screenshot_132 - Cài đặt ModSecurity với Nginx

Làm tương tự với các file vhost khác để bật ModSecurity trên website các bạn muốn ModSecurity hoạt động

Khởi động lại Nginx để cấu hình có hiệu lực

service nginx restart

Để kiểm tra các bạn sử dụng lệnh sau

curl localhost/index.html?exec=/bin/bash

Nếu kết quả trả về là thông báo lỗi 403 Forbidden nghĩa là ModSecurity đã hoạt động.

Screenshot_133 - Cài đặt ModSecurity với Nginx

7. Link tham khảo

8. Kết luận

Qua bài viết này VINASTAR đã hướng dẫn các bạn cài đặt ModSecurity với OWASP rule trên VPS CentOS 7. Nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới. Ngoài ra các bạn có thể xem thêm Hướng dẫn cài đặt CSF Firewall trên CentOS 7.

You may also like

Leave a Comment