yum install httpd-devel libxml2-devel pcre-devel apr-devel apr-util-devel curl-devel -y
2. Download and install mod_security
cd /tmp
wget http://ncu.dl.sourceforge.net/project/mod-security/modsecurity-apache/2.6.3/modsecurity-apache_2.6.3.tar.gz
tar xzvf modsecurity-apache_2.6.3.tar.gz
cd ./modsecurity-apache_2.6.3
./configure
make && make install
cp /usr/local/modsecurity/lib/mod_security2.so /etc/httpd/modules
Hoặc là :
cp /usr/local/modsecurity/lib/mod_security2.so /usr/local/apache2/modules
3. check loadmodule in httpd.conf
LoadModule unique_id_module modules/mod_unique_id.so
4. Add lines to file httpd.conf (/etc/httpd/httpd.conf or /usr/local/apache2/conf/httpd.conf )
LoadFile /usr/lib64/libxml2.so
LoadModule security2_module modules/mod_security2.so
5. Creat config file for mod_security and Include in httpd.conf
touch /etc/httpd/conf.d/modsecurity.conf
6. reload apache
service httpd restart
I-Khái niệm tổng thể về MS:
Dựa trên hình vẽ các bạn có thể dễ dàng nhận thấy MS là một tường lửa mức ứng dụng. Đứng trước Webserver và có khả năng xử lý traffic trước khi đưa vào Webserver. Mọi yêu cầu gửi đến Webserver từ phía client sẻ được gửi qua modsecurity.
Module mod_security là một module mạnh mẽ. Kết hợp với các luật được định nghĩa, bạn có thể chặn nhiều lỗ hổng của máy chủ được mở ra do việc viết mã php hay perl không tốt.
Modsecurity có thể :
- Theo dõi HTTP traffic để phát hiện những dấu hiệu bất thường.
- Lọc các dữ liệu ra vào webserver.
- Ghi lại các tương tác giữa client và webserver.
- And more ….
Modsecurity hoạt động dựa trên các rules. MS có hoạt động hiệu qua hay không phụ thuộc rất lớn vào khả năng thiết lập rule của người quản trị.
II-Cài đặt và cấu hình:
Phiên bản dùng để DEMO là mod_security2.5.2 trên CentOS.Các bạn có thể áp dụng các command này đối với Fedora hay Redhat…
Đầu tiên bạn cần cài đặt apache2. Rất đơn giản bằng cách sử dụng câu lệnh sau:
Code:
yum -y install httpd*
Cài đặt các gói yêu cầu:
Một vài module cần thiết phải được cài đặt để chuẩn bị cho việc cài đặt mod_security. Hãy cài những gói sau:
Code:
yum –y install libxml2* pcre* curl* gcc.i386 gcc-c++.i386
Download mã nguồn MS:
Giải nén gói MS
Code:
tar -vxzf modsecurity-apache_2.5.12.tar.gz
Setup MS
Code:
[root@dhcppc1 ~]# cd modsecurity-apache_2.5.12/apache2/
[root@dhcppc1 apache2]# ls
[root@dhcppc1 apache2]# ./configure
[root@dhcppc1 apache2]#make
[root@dhcppc1 apache2]# ls
[root@dhcppc1 apache2]# ./configure
[root@dhcppc1 apache2]#make
Sau khi biên dịch thành công file mod_security2.so sẽ được tạo ra trong thư mục .libs.
Tích hợp MS vào Apache
Để Apache nhận ra sự tồn tại của MS chúng ta cần copy mod_security2.so đến thư mục chứa modules của apache.
đối với centos là /etc/httpd/modules :
Code:
cp .libs/mod_security2.so /etc/httpd/modules/
và sửa lại file httpd.conf để load module bằng cách thêm vào httpd.conf dòng
Code:
nano /etc/httpd/conf/httpd.conf
Thêm vào dòng :
LoadModule security2_module modules/mod_security2.so
Thêm vào dòng :
LoadModule security2_module modules/mod_security2.so
File cấu hình MS
Để 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:
Code:
<IfModule mod_security.c>
# cấu hình cho mod_security
</IfModule>
# cấu hình cho mod_security
</IfModule>
hoặc bạn có thể tạo riêng một file là modsecurity.conf trong thư mục conf của apache và include nó từ file cấu hình của apache httpd.conf:
dùng lệnh
nano /etc/httpd/conf/httpd.conf
mở file httpd.conf chèn đoạn sau vào cuối cùng để load file modsecurity.conf sẽ tạo ra.
Code:
<IfModule mod_security.c>
include conf/modsecurity.conf
</IfModule>
include conf/modsecurity.conf
</IfModule>
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:
tạo file : nano /etc/httpd/conf/modsecurity.conf
chèn vào nội dung :
Code:
SecFilter xp_regdeletekey
#chống spam mail
<Location /cgi-bin/FormMail>
SecFilterSelective "ARG_recipient" "!@modsecurity.org$"
</Location>
#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
#chống spam mail
<Location /cgi-bin/FormMail>
SecFilterSelective "ARG_recipient" "!@modsecurity.org$"
</Location>
#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
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à mình không đề cập đến các bạn tìm hiểu thêm trong quyển EBOOK modsecurity này nhé: http://www.mediafire.com/?ylmmudgjmzm (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 thành công.
No comments:
Post a Comment