Giới thiệu về ModSecurity
ModSecurity là 1 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, được phát triển dành cho Web Server, bài viết này sẽ hướng dẫn cài đặt ModSecurity từ source code cho Apache trên Ubuntu. ModSecurity là 1 reverse proxy, đứng trước Web Server và có khả năng xử lý traffic trước khi đưa vào Web Server.
Cài đặt ModSecurity
Update và upgrade hệ thống bằng 2 dòng lệnh và cài gói build-essential:
apt upgrade apt update
apt install build-essential
Cài đặt apache trên Ubuntu:
apt install apache2 apache2-dev
Cài các gói cần thiết để có thể cài đặt ModSecurity trên Ubuntu:
apt install libxml2-dev libcurl4-openssl-dev liblua5.1-0 liblua5.1-0-dev libapache2-mod-security2
Tải source code ModSecurity tại mục ModSecurity for Apache (Stable Release Quality) và rule của OWASP.
Giải nén source code của ModSecurity và tiến hành build:
cd modsecurity-x.y.z
./autogen.sh
./configure make && make install
Sau khi cài đặt xong, tiến hành cấu hình Apache và ModSecurity:
service apache2 stop
Sửa file config của Apache:
nano /etc/apache2/apache2.conf
và thêm 3 dòng này vào cuối file:
LoadFile /usr/lib/libxml2.so
LoadFile /usr/lib/liblua5.1.so
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Nếu không thấy 2 file libxml2.so
và liblua5.1.so
thì đổi lại đường dẫn /usr/lib/x86_64-linux-gnu
cho cả hai file.
Thay đổi ModSecurity detection mode, mặc định thì ModSecurity chỉ phát hiện và log event nên cần phải config lại để ModSecurity có thể tương tác với traffic, truy cập vô thư mục source ModSecurity ban đầu và chạy 3 lệnh này:
sudo cp /modsecurity.conf-recommended /etc/apache2/conf-available/modsecurity.conf
sudo cp /unicode.mapping /etc/apache2/conf-available/
sudo nano /etc/apache2/conf-available/modsecurity.conf
Thay đổi SecRuleEngine DetectionOnly
sang SecRuleEngine On
Ctrl + X để thoát ra và nhấn Y + Enter để lưu lại thay đổi.
Khởi động lại Apache:
sudo systemctl restart apache2
Giải nén rule của OWASP vừa tải và copy thư mục rule vào apache2:
mv corerulesetx.y.z /etc/apache2/modsecurity-crs
cd /etc/apache2/modsecurity-crs
cp crs-setup.conf.example crs-setup.conf
mkdir /etc/apache2/modsecurity //Thêm thư mục riêng để chứa rule tự viết
Thêm các đoạn sau đây vào cuối file apache2.conf ở thư mục /etc/apache2/apache2.conf
:
<IfModule security2_module>
Include modsecurity-crs/crs-setup.conf
Include modsecurity-crs/rules/*.conf
IncludeOptional modsecurity/*.conf
</IfModule>
Khởi động lại Apache:
sudo systemctl restart apache2
Việc cài đặt và tích hợp đã xong. Bài sau sẽ hướng dẫn viết rule cơ bản để kiểm tra việc cài đặt đã hoàn thiện hay chưa.