[WAF] Hướng dẫn cài đặt compile module ModSecurity với Apache Linux

Chào các bạn, cùng đến với bài viết hướng dẫn cài đặt compile module ModSecurity với Web Server Apache (WAF) trên Linux, ModSecurity là một web application firewall (WAF). Giống như những firewall thông thường khác, nó lọc những lưu lượng dữ liệu vào và ra để có thể quyết định chặn lại những lưu lượng mà nó nghi ngờ là độc hại dựa theo tập lệnh nó định nghĩa. Nó còn có nhiều tính năng vượt trội khác như là HTTP transaction logging và content injection

Mod Security WAF diagram.

Nếu bạn cài đặt thông qua ‘yum‘ hoặc ‘apt-get‘ thì thường sẽ có vấn đề đó là bạn phải cài đặt Apache Linux bằng ‘yum‘ hay ‘apt-get‘ luôn để tương thích các phiên bản Repo chương trình và đường dẫn với nhau. Nhưng giờ giả sử, bạn cài đặt Apache bằng cách biên dịch chương trình Apache hay sử dụng Apache của các CMS không có option cài ModSec thì bạn nên xem qua cách cài đặt biên dịch (compile) ModSec của bài viết này. Nó sẽ hỗ trợ các bạn cài đặt thành công dù Apache của bạn cài theo kiểu gì.

Bài viết sẽ chỉ hướng dẫn bạn cách cài đặt và load module cùng Apache thành công là trọng tâm bài viết. Bài viết không đề cập đến các hoạt động cấu hình, lý thuyết,.. có thể những nội dung này sẽ ở 1 phần khác sau này. Giờ thì chúng ta cùng đến với việc compile module ModSecurity trên Apache Linux.

Trang chủ download ModSec : https://www.modsecurity.org/download.html
Github ModSec : https://github.com/SpiderLabs/ModSecurity/

Contents

 
1. Download và cài đặt chương trình ModSecurity

– Cài đặt một số chương trình, phần mềm, thư viện cần thiết nếu chưa có.

# yum install wget git gcc-c++ autoconf gcc* wget lynx libtool apr-devel apr-util-devel apr apr-util pcre pcre-devel openssl openssl-devel zlib zlib-devel –y

 
– Download source cài đặt ModSecurity

# cd /usr/local/src
# wget -O modsecurity-2.9.1.tar.gz https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz
# tar xvf modsecurity-2.9.1.tar.gz

 
– Dowload thư viện Lua để hỗ trợ cho hoạt động của ModSecurity ở 1 số trường hợp khác.

# wget --no-check-certificate -O lua-5.1.4.8.tar.gz https://sourceforge.net/projects/lmod/files/lua-5.1.4.8.tar.gz/download
# tar xvf lua-5.1.4.8.tar.gz

 
– Tiến hành biên dịch mã nguồn ModSecurity với Apache. Lưu ý :

+ Sử dụng đường dẫn các binary như ‘apxs‘, ‘apr-1-config‘, ‘apu-1-config‘ và ‘pcre-config‘ từ đường dẫn tiêu chuẩn thường gặp khi cài đặt Apache bằng cách biên dịch, các bạn tham khảo qua bài viết dưới. Nên các bạn chú ý các đường dẫn kèm với option khi biên dịch ModSecurity nhé.
+ Các thư mục cấu hình apache đến binary và thư viện theo đường dẫn cài đặt khi biên dịch của bài viết này: Hướng dẫn cài đặt compile Apache 2.2/2.4 trên CentOS/RHEL 6/7

# cd modsecurity-2.9.1
# ./autogen.sh
# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apache/bin/apr-1-config --with-apu=/usr/local/apache/bin/apu-1-config --with-pcre=/usr/lib/bin/pcre-config --with-lua=/usr/local/src/lua-5.1.4.8/ 
# make
# make install

 
– Lúc đó bạn sẽ tìm thấy module của ModSecurity ở 2 thư mục sau :

/usr/local/modsecurity/lib/mod_security2.so
/usr/local/apache/modules/mod_security2.so

 
– Khởi tạo thư mục chứa file cấu hình ModSecurity và các Rule set.

# cd /usr/local/src/modsecurity-2.9.1/
# mkdir -p /usr/local/apache/conf/modsec2/
# cp modsecurity.conf-recommended /usr/local/apache/conf/modsec2/modsec2.conf
# cp unicode.mapping /usr/local/apache/conf/modsec2/

 
2. Cấu hình load ModSec cơ bản

– Giờ ta sẽ cấu hình để load module ModSecurity này.

# vi /usr/local/apache/conf/httpd.conf
LoadModule security2_module modules/mod_security2.so

 
– Download các core rule set cơ bản của OWASP, các rule này đã được OWASP nghiên cứu và là 1 tiêu chuẩn nhất định để bảo vệ hạn chế chúng ta khỏi những cuộc tấn công khai thác từ kẻ xấu.

# cd /usr/local/apache/conf/modsec2/
# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
# mv owasp-modsecurity-crs modsecurity-crs
# cd modsecurity-crs
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

 
– Cấu hình để Apache load cấu hình ModSecurity và các cấu hình Ruleset cơ bản.

# vi /usr/local/apache/conf/httpd.conf
<IfModule security2_module>
    Include conf/modsec2/modsec2.conf
    Include conf/modsec2/modsecurity-crs/modsecurity_crs_10_config.conf
    Include conf/modsec2/modsecurity-crs/base_rules/*.conf
</IfModule>

 
3. Restart Apache và kiểm tra

– Giờ cần khởi động lại dịch vụ Apache để load module Apache.

# service httpd restart

 
– Kiểm tra xem module đã được load hay chưa.

# httpd -M | grep security
security2_module (shared)
Syntax OK

 
– Kiểm tra log error xem thông báo [notice].

# cat /usr/local/apache/logs/error_log
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity for Apache/2.9.1 (http://www.modsecurity.org/) configured.
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: APR compiled version="1.5.2"; loaded version="1.5.2"
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: PCRE compiled version="8.21 "; loaded version="8.21 2011-12-12"
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: LUA compiled version="Lua 5.1"
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: LIBXML compiled version="2.7.6"
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: StatusEngine call: "2.9.1,Apache/2.2.31 (Unix) mod_,1.5.2/1.5.2,8.21/8.21 2011-12-12,Lua 5.1,2.7.6,157b37358c924f6ea4313115878324e087f2ebe5"
[Tue Oct 18 14:35:20 2016] [notice] ModSecurity: StatusEngine call successfully sent. For more information visit: http://status.modsecurity.org/
[Tue Oct 18 14:35:21 2016] [notice] Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.1e-fips DAV/2 configured -- resuming normal operations

 
Như vậy là thành công bài viết : Hướng dẫn cài đặt compile module ModSecurity với Web Server Apache Linux rồi.

Previous article[OpenSource] Top 6 dịch vụ giám sát uptime của website
Next article[Tech] Hấp dẫn với tính năng “Chủ đề cuộc nói chuyện” của Facebook đang phát triển
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !