1. Giới thiệu về Mod_security
ModSecurity là một bộ máy phát hiện và phòng chống xâm nhập dành cho các ứng dụng web (hoặc 1 web application firewall). Hoạt động như một module của máy chủ web Apache, mục đích của ModSecurity là tăng cường bảo mật cho các ứng dụng web, bảo vệ chúng khỏi các loại tấn công đã biết và chưa biết.
2.Cài đặt và cấu hình:
Việc install Mod_security tương đối đơn giản,sau khi đã download Binary packages về:
Với apache 2.x:
Bạn chỉ việc copy file mod_security.so vào thư mục modules/ của apache và mở file httpd.conf thêm vào dòng sau:
LoadModule security_module modules/mod_security.so
là có đã hoàn thành bước cài đặt
Với apache 1.x:
Ban copy file mod_security.so (*.nix ) hoăc mod_security.dll (windows) vào thư mục libexec/ và mở file httpd.conf thêm vào dòng sau:
LoadModule security_module libexec/mod_security.so
Để sử dụng mod_security bạn phải cấu hình cho nó( cái này tùy vào mỗi hệ thống mà sẽ dẫn đến những cấu hình khác nhau). Trước tiên bạn mở file httpd.conf ra và thêm vào dòng sau:
# cấu hình cho mod_security
hoặc bạn có thể tạo riêng một file là modsecurity.conf trong thư mục conf cua apache và include nó tù file cấu hình của apache httpd.conf:
include conf/modsecurity.conf
Sau khi cài đặt mặc định bộ máy filtering sẽ disable ( muốn dùng mod_security chúng ta phải bật nó lên).
Ban chỉ việc thêm vào dòng sau trong file modsecurity.conf:
SecFilterEngine On ( or Off , DynamicOnly )
Sau đây là cách cấu hình cho mod_security để hạn chế những kiểu tấn công cơ bản:
#Hạn chế MSSQL injection attack
SecFilter xp_enumdsn
SecFilter xp_filelist
SecFilter xp_availablemedia
SecFilter xp_cmdshell
SecFilter xp_regread
SecFilter xp_regwrite
SecFilter xp_regdeletekey
#chống spam mail
SecFilterSelective "ARG_recipient" "!@modsecurity\.org$"
#phát hiện xâm nhập
SecFilterSelective OUTPUT "Volume Serial Number"
SecFilterSelective OUTPUT "Command completed"
SecFilterSelective OUTPUT "Bad command or filename"
SecFilterSelective OUTPUT "file(s) copied"
SecFilterSelective OUTPUT "Index of /cgi-bin/"
SecFilterSelective OUTPUT ".*uid\=\("
#Nếu muốn ghi lại log
SecAuditLog logs/audit.log
SecFilterDebugLog logs/modsec.log
SecFilterDebugLevel 0
#Muốn mod_security phân tích POST request, dùng:
SecFilterScanPOST On
# để mod_security *kiểm tra* URL encoding và UTF-8.
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding On
Lưu ý:nếu bạn dùng SecFilterCheckUnicodeEncoding On, một số bộ gõ hay input tiếng Việt sẽ không hoạt động, một số bộ gõ hay input tiếng Việt sẽ không hoạt động
Nếu bạn chạy web với nhiều virtualhost và muốn một site trong nhiều sites không dùng mod_security, bạn có thể dùng:
SecFilterSelective SERVERNAME "^tên_của_web_site$" nolog,allow
3. Lời kết
Trên đây chỉ là vài cấu hình cơ bản,Còn rất nhiều kiểu cấu hình mà tôi không đề cập (tùy thuộc vào hệ thống của bạn mà có cấu hình cho thích hợp).
Chúc bạn thanh công.
- zeno -QTM