
Cài đặt mod_security/mod_security2 trên SuSE Linux
Enterprise Server 10 (SLES10)
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.
Không may mắn là mod_security không phải là một phần của bản SLES10. Để
cài đặt mod_security cần cài đặt một vài module của hãng thứ 3. Bài viết này
hướng dẫn cách cài đặt mod_security trên SLES10. Cũng như các gỡ bỏ
module, bằng cách xây dựng từ gói RPM bạn có thể gỡ bỏ một cách dễ dàng.
Cài đặt Apache2
Đầ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:
$ yast2 -i apache2
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:
$ yast2 -i libxml2-devel pcre-devel apache2-devel curl-devel gcc gcc-c++
Apache2-devel là bắt buộc cho apxs2. curl là tùy chọn.

Cài đặt và checkinstall (để đóng gói)
Để theo dõi được các phần mềm được cài đặt và cho phép người dùng có thể
gỡ bỏ và cập nhật phần mềm, checkinstall có thể được xây dựng RPM,
DEBIAN (DEB) và các gói Slackware. Thay vì thực thi "make install" chỉ cần
chạy "checkinstall" và checkinstall sẽ lấy tất cả các tập tin mà có thể được cài
đặt bằng "make install".
Tải checkinstall tại : http://www.asic-
linux.com.mx/~izto/checkinstall/download.php.
$ wget http://www.asic-
linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz
$ make
$ make install
$ checkinstall
$ cp /usr/src/packages/RPMS/i386/checkinstall-1.6.1-1.i386.rpm .
$ rpm -ivh checkinstall-1.6.1-1.i386.rpm
Tải về và cài đặt liblua
Ngôn ngữ LUA được sử dụng bởi mod_security để cấu hình. Bạn cần compile
LUA như là một module chia sẻ (shared module).
Tải LUA tại: http://www.lua.org/ftp/lua-5.1.3.tar.gz.
$ wget http://www.lua.org/ftp/lua-5.1.3.tar.gz

$ tar -zxvf lua-5.1.3.tar.gz
$ cd lua-5.1.3
$ make linux
$ checkinstall
[...]
1 - Summary: [ The LUA programming language ]
2 - Name: [ lua ]
3 - Version: [ 5.1.3 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Development/Languages/Lua ]
7 - Architecture: [ i386 ]
8 - Source location: [ http://www.lua.org/ftp/lua-5.1.3.tar.gz ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ lua ]
[...]
$ cp /usr/src/packages/RPMS/i386/lua-5.1.3-1.i386.rpm ..
$ rpm -ivh ../lua-5.1.3-1.i386.rpm
Bây giờ bạn cần build một thư viện chia sẻ (shared library) từ gói nén liblua.
$ cd /usr/local/lib
$ gcc -shared -o liblua.5.1.3.so /usr/local/lib/liblua.a
$ ln -s liblua.5.1.3.so liblua.so

Tải về và cài đặt mod_security
Tải mod_security tại : http://www.modsecurity.org/download/direct.html.
Tài liệu về cách cài đặt có thể xem tại đây:
http://www.modsecurity.org/documentation/index.html.
$ cd modsecurity-apache_2.5.2
$ cd apache2
$ ./configure
$ make
$ checkinstall
...
1 - Summary: [ mod_security application level firewall ]
2 - Name: [ apache2-mod_security ]
3 - Version: [ 2.5.2 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Productivity/Networking/Web/Servers ]
7 - Architecture: [ i386 ]
8 - Source location: [ http://www.modsecurity.org/download/ ]
9 - Alternate source location: [ ]
10 - Requires: [ apache2 libxml2 ]
11 - Provides: [ mod_security ]

$ cp /usr/src/packages/RPMS/i386/apache2-mod_security-2.5.2-1.i386.rpm
../../
$ rpm -ivh ../../apache2-mod_security-2.5.2-1.i386.rpm
Cấu hình Apache2 cho mod_security
# /etc/apache2/conf.d/mod_security.conf
LoadFile /usr/lib/libxml2.so
LoadFile /usr/local/lib/liblua.so
LoadModule security2_module /usr/lib/apache2/mod_security2.so
Include modsecurity/*.conf
LoadModule unique_id_module /usr/lib/apache2/mod_unique_id.so
Xả nén và cấu hình Core Rules
Tải core rules tại : http://www.modsecurity.org/download/modsecurity-core-
rules_2.5-1.6.0.tar.gz.
$ cd /etc/apache2
$ mkdir modsecurity
$ cd modsecurity
$ tar -zxvf ../modsecurity-core-rules_2.5-1.6.0.tar.gz
Hiệu chỉnh modsecurity_crs_10_config.conf cho đúng với đích của tập tin cấu
hình:
vi modsecurity_crs_10_config.conf