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 SecAuditLog= SecDebugLog= Khởi động lại Apache và thử trang web của bạn Đầu tiên khởi động lại apache để các cấu hình hiện tại có hiệu lực: $ rcapache restart Để thử quá trình cài đặt, viết một đoạn mã PHP đơn giản như sau: # /srv/www/htdoc/index.php file $text=$_GET['file']; echo "Content of File $text"; echo `cat $text`; ?> Sau đó truy cập tới nó: http://ip.of.your.server.de/index.php?file=/etc/passwd Bạn sẽ nhận được lỗi ERROR 501 trên trình duyệt và tập tin SecAuditLog sẽ hiển thị: [ ] GET /index.php?file=/etc/passwd HTTP/1.1 [ ] Message: Access denied with code 501 (phase 2). Pattern match "(?:\b(?:\.(?:ht(?:access|passwd|group )|www_?acl)|global\.asa|httpd\.conf|boot\.ini)\b|\/etc\/)" at ARGS:file. [file "/etc/apache2/modsecu rity/modsecurity_crs_40_generic_attacks.conf"] [line "114"] [id "950005"] [msg "Remote File Access A ttempt"] [data "/etc/"] [severity "CRITICAL"] [tag "WEB_ATTACK/FILE_INJECTION"] Khi truy cập tới máy chủ của bạn bằng địa chỉ IP, một quy tắc của modsecurity_crs_21_protocol_anomalies.conf sẽ loại bỏ nó. Chỉnh sửa tập tin và tìm "Check that the host header is not an IP address". . 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. 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. 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