Bảo mật web server Apache với mod Security - part 1

Discussion in 'Security' started by magicvn, Aug 26, 2014.

  1. magicvn

    magicvn New Member

    Joined:
    Aug 10, 2014
    Messages:
    25
    Likes Received:
    0
    Trophy Points:
    0
    Bảo mật web server Apache với mod Security

    Giới thiệu:
    Mod_security là một opensource web application firewall được Ivan Ristic phát triển dành cho Apache Web Server. Ivan Ristic là tác giả quyển sách.Ông là một người có rất nhiều kinh nghiệm trong bảo vệ Apache Web Server. Ông đã có nhiều thời gian nghiên cứu Web Application Security, Web Intrusion Detection, và Security Patterns. Trước khi chuyển sang lĩnh vực security, Ivan đã có nhiều năm làm việc như một developer, system architect, technical director trong phát triển phần mềm. Ông là người sáng lập ra công ty ThinkingStone làm các dịch vụ liên quan đến web application security.
    Hiện tại mod_security sử dụng giấy phép GPL, hoàn toàn miễn phí. Ngoài ra nếu muốn có sự hỗ trợ thì bạn có thể mua nó tại công ty ThinkingStone của ông (http://www.thinkingstone.com)

    Các tính năng của mod_security
    · Logging traffic HTTP
    · Real-Time Monitoring and attack Detection
    · Attack Prevention and just in time patching
    · Flexible rule engine
    · Embedded-mode Deployment
    · Network-based Deployment
    · Licensing

    Cài đặt và cấu hình mod_security
    Trước khi cài đặt chúng ta cần cài các thư các thư viện apxs, libxml2 và load thêm mod_unique_id.so
    Cài đặt thư viện
    Code:
    yum install gcc gcc-c++ httpd-devel libxml2-devel pcre-devel curl-devel apr-devel 

    Load module
    mod_unique_id.so
    - mod_unique_id : module của apache có nhiệm vụ phát sinh một unique indentifier cho mỗi HTTP request (xem thêm tại http://httpd.apache.org/docs/2.0/mod/mod...e_id.html) . Module này thường được compile sẵn khi ta build apache , để sử dụng được cần phải load module này lên trong file httpd.conf . Mở file httpd.conf và thêm vào dòng sau ở phần LoadModule :
    Code:
    [I]LoadModule unique_id_module modules/mod_unique_id.so[/I]
    Download và giải nén source code :
    - Download phiên bản stable mới nhất tại http://modsecurity.org/download/
    Code:
    [root@hungn src]# cd /usr/src
    [root@hungn src]# wget 'http://www.modsecurity.org/download/modsecurity-apache_2.6.0.tar.gz'
    - Giải nén file vừa download :
    Code:
    [root@hungn src]# ls
    debug  kernels  modsecurity-apache_2.6.0.tar.gz
    [root@hungn src]# tar -xvzf 'modsecurity-apache_2.6.0.tar.gz'
    Restart httpd và kiểm tra lại :
    Code:
    [root@hungn src]# httpd -t -D DUMP_MODULES
    ...
    unique_id_module (shared)
    ...
    Compile source code :
    - cd vào thư mục chứa source code đã giải nén ở bước 1 :
    Code:
    [root@hungn /]# cd /usr/src/modsecurity-apache_2.6.0
    [root@hungn modsecurity-apache_2.6.0]# ./configure
    [root@hungn modsecurity-apache_2.6.0]# make
    [root@hungn modsecurity-apache_2.6.0]# make install
    Tích hợp mod_sec vào apache :
    - Khi make xong sẽ tạo ra file mod_security2.so ở thư mục modsecurity-apache_2.6.0/apache2/.libs . Bạn cần copy file này bỏ vào thư mục modules của apache :

    Code:
    [root@hungn modsecurity-apache_2.6.0]# cp apache2/.libs/mod_security2.so /etc/httpd/modules
    - Thêm dòng sau vào file httpd.conf để load module mod_sec lên :

    Code:
    LoadModule security2_module modules/mod_security2.so
    Restart httpd và kiểm tra lại :
    Code:
    [root@hungn /]# httpd -t -D DUMP_MODULES
    ...
    security2_module (shared)
    ...
    Tạo file config :
    Chúng ta có thể cấu hình trực tiếp các thông số và rule của ModSecurity vào file httpd.conf. Nhưng để cho rõ ràng và đảm bảo không sai sót trong quá trình thực hiện - gây ảnh hưởng Apache, Chúng ta nên tạo một file cấu hình riêng và sau đó include vào.
    Trong CentOS các file cấu hình riêng mặc định chứa trong /etc/httpd/conf.d/

    Code:
    #vi /etc/httpd/conf.d/modsecurity.conf
    Thêm vào các thông số cấu hình cơ bản

    Code:
    <IfModule security2_module>   
     # Bat che do loc cua Modsecurity
     SecRuleEngine On 
     # Thiet lap action mac dinh
     SecDefaultAction "phase:2,deny,log,status:404"
     # rule thu nghiem block tat ca request co uri chua "upload"
     SecRule REQUEST_URI "upload" "phase:1,id:52,t:none,t:urlDecode,t:lowercase,t:normalizePath"
     </IfModule>
    Kiểm tra hoạt động :
    Thực hiện thử nghiệm để kiểm tra hoạt động của ModSecurity. Tiến hành tạo 2 floder trong thư mục web, joomla và upload chẳng hạn. Khi chúng ta truy cập vào khi chúng ta truy câp vào thư mục joomla thì trình duyệt trả về kết quả bình thường
    Còn khi truy cập vào upload thì trình duyệt báo lỗi :

    404 – Forbidden

    Đó là kết quả do ModSecurity đã chặn những URI có chứa chuỗi upload và cũng đồng nghĩa với việc ModSecurity đã hoạt động
     

Share This Page