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
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;
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
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; }
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.
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.