Sau khi cài xong Mod_security php sẽ có thông tin đã include như trong hình

Bảo mật cho website bằng Mod_Security trên Server Linux

Vấn đề bảo mật cho server hay website của bạn là việc làm rất quan trọng, và trong các module của Apache có module nên có để hỗ trợ chúng ta bảo mật đó là Mod_security, đây là một trong các mod khá phổ thông, tuy nhiều hacker vẫn có thể vượt qua được nó nhưng càng nhiều tấm chắn bảo vệ càng tốt đúng không các bạn ?

Sau đây chúng ta cùng bắt đầu cài đặt Mod security này nhé !

Mod_Security là một ứng dụng tường lửa để chạy trên các server web, được dùng để bảo vệ và phân tích lưu lượng HTTP từ các cuộc tấn công brute fore.

Để cài được MOD này các bạn cần phải cài đầy đủ gói L A M P trước trên server hoặc VPS của mình nhé, sau đó chạy lệnh phù hợp với OS trên server:

## For RHEL/CentOS 6.2/6.1/6/5.8 ##
# yum install gcc make
# yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel

## For Fedora 17,16,15,14,13,12 ##
# yum install gcc make
# yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel

Chúng ta đã download xong Mod security về rồi, bây giờ chạy các lệnh cài đặt thôi:

## For RHEL/CentOS 6.2/6.1/6/5.8 ##
# cd /usr/src
# wget http://www.modsecurity.org/download/modsecurity-apache_2.6.6.tar.gz
# tar xzf modsecurity-apache_2.6.6.tar.gz
# cd modsecurity-apache_2.6.6
# ./configure
# make install
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

## For Fedora 17,16,15,14,13,12 ##
# cd /usr/src
# wget http://www.modsecurity.org/download/modsecurity-apache_2.6.6.tar.gz
# tar xzf modsecurity-apache_2.6.6.tar.gz
# cd modsecurity-apache_2.6.6
# ./configure
# make install
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

Mod security này yêu cầu cần phải có OWASP (Open Web Application Security Project) để tạo cấu hình đầu tiên, các rules này dùng để bảo vệ website của bạn khỏi các nguy cơ chưa được định nghĩa và được tìm ra trong quá trình phát triển các website và do nghiên cứu, vì thế việc cài các rules này là việc làm khá quan trọng, các bạn cài như sau:

## For RHEL/CentOS 6.2/6.1/6/5.8 ##
# cd /etc/httpd/
# wget http://pkgs.fedoraproject.org/repo/pkgs/mod_security_crs/modsecurity-crs_2.2.5.tar.gz/aaeaa1124e8efc39eeb064fb47cfc0aa/modsecurity-crs_2.2.5.tar.gz
# tar xzf modsecurity-crs_2.2.5.tar.gz
# mv modsecurity-crs_2.2.5 modsecurity-crs
# cd modsecurity-crs
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

## For Fedora 17,16,15,14,13,12 ##
# cd /etc/httpd/
# wget http://pkgs.fedoraproject.org/repo/pkgs/mod_security_crs/modsecurity-crs_2.2.5.tar.gz/aaeaa1124e8efc39eeb064fb47cfc0aa/modsecurity-crs_2.2.5.tar.gz
# tar xzf modsecurity-crs_2.2.5.tar.gz
# mv modsecurity-crs_2.2.5 modsecurity-crs
# cd modsecurity-crs
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

Tiếp theo, bạn mở FTP lên và edit file httpd.conf theo đường dẫn:

/etc/httpd/conf/httpd.conf

Tìm tới các dòng đầy chữ loadmodule ấy, thêm dòng này:

LoadModule security2_module modules/mod_security2.so

Tiếp theo, các bạn tụt xuống gần cuối file, thêm đoạn code load mod này vào:

<IfModule security2_module>
    Include conf.d/modsecurity.conf
</IfModule>

Và cuối cùng là restart lại Apache để nó nhận mod này thôi:

# /etc/init.d/httpd restart
Hoặc
service httpd restart

Kiểm tra bằng cách gọi hàm phpinfo() lên, các bạn sẽ thấy có thông báo module đã được load cùng php nhé:

Sau khi cài xong Mod_security php sẽ có thông tin đã include như trong hình
Sau khi cài xong Mod_security php sẽ có thông tin đã include như trong hình

Chúc các bạn thành công !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 10 bình luận !

  1. mình làm lần lượt như hướng dẫn nhưng đến phần
    # /etc/init.d/httpd restart
    Hoặc
    service httpd restart
    thì báo lỗi

    [root@localhost ~]# service httpd restart
    Stopping httpd: [FAILED]
    Starting httpd: httpd: Syntax error on line 208 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_security2.so into server: /etc/httpd/modules/mod_security2.so: cannot read file data: Is a directory
    [FAILED]
    xin được chỉ giáo

  2. Em đã làm như anh hướng dẫn nhưng khi đến phần add rule cho modsecurity (/etc/httpd/conf.d/modsecurity.conf) thì em chưa thấy nó đưa ra những cảnh báo hay có log trên hệ thống. xin anh chỉ giáo thêm

  3. Anh cho em hỏi. Em làm demo trên máy ảo. E thử test luật đơn giản thì đc. Nhưng e viết 1 luật SQL injection thì restart vẫn đc. Nhưng web vẫn chạy bt như là e chưa viết luật. Luật của e ntn ạ:
    SecRule ARGS “union\s+select” “id:05”
    SecDefaultAction “phase:2,deny,log,status:403”

    1. Ờ ờ ! Bạn có thể cấm tịt cái Union đi bằng cách lọc trong lúc PHP thực hiện lệnh trong website của bạn. Hoặc bạn phân quyền lại cho User sử dụng SQL ấy, chỉ cho select với insert thôi là an toàn hơn cả. Chứ còn cái cách tấn công SQL injection này phổ biến quá rồi, chống cũng dễ mà cũng khó !

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *