Cài đặt tường lửa ứng dụng web ModSecurity

Một phần của tài liệu Nghiên cứu giải pháp đảm bảo an ninh an toàn thông tin cho các cổng trang thông tin điện tử (Trang 78)

Để bảo vệ các máy chủ từ các cuộc tấn công khác nhau, tôi đã nghiên cứu về tường lửa và tường lửa ứng dụng web ModSecurity. Trong phần này thực hiện triển khai một số thiết lập tường lửa, cài đặt tường lửa ứng dụng web ModSecurity và cấu hình tập luật cho mod_security sử dụng bộ luật Core rules set của OWASP nhằm phát hiện, ngăn chặn tấn công vào các lỗi phổ biến trên ứng dụng web. Qúa trình thực hiện như sau: Bước 1: Cài đặt các thư viện cần thiết trước khi cài đặt ứng dụng:

[root@vanbien ~]# yum install openssl openssl-devel pcre pcre-devel libxml2 libxml2- devel curl-devel pcre pcre-devel expat expat-devel

Bước 2: Tải mod_security từ trang chủ về máy chủ:

[root@vanbien ~]# cd /usr/local/src [root@vanbien src]# mkdir modsecurity2 [root@vanbien src]# cd modsecurity2 [root@vanbien modsecurity2]# wget

70

[root@vanbien modsecurity2]# tar xzfv modsecurity-2.9.0.tar.gz [root@vanbien modsecurity2]# cd modsecurity-2.9.0

Bước 3: Tiến hành cài đặt mod_security:

[root@vanbien modsecurity-2.9.0]# ./configure make

make install

Bước 4: Cấu hình Modsecurity

Trước khi thực hiện cấu hình ModSecurity, tôi sẽ tạo một danh sách các thư mục theo một định dạng sẵn. Việc này giúp tôi quản lý dễ dàng các dữ liệu mà modSecurity tạo ra, đồng thời hỗ trợ trong việc bảo trì và cập nhật các luật mới cho ModSecurity. Các tập tin cấu hình: /opt/modsecurity /etc

Nhật ký: /opt/modsecurity/var/log

Các tập tin tạm thời: /opt/modsecurity/var/tmp Tập tin tải lên: /opt/modsecurity/var/upload

Thực hiện tạo tập tin modsecurity.conf trong thư mục /etc/httpd/conf.d với nội dung: <IfModule mod_security2.c>

Include /opt/modsecurity/etc/main.conf Include /opt/modsecurity/etc/rules.conf </IfModule>

Tạo một tập tin cấu hình mẫu cho ModSecurity dựa vào tập tin đề nghị có sẵn, tại thư mục chứa mã nguồn Modsecurity thực hiện lệnh sao chép như sau:

[root@vanbien modsecurity-2.9.0]# cp /usr/local/src/mosecurity2/modsecurity-2.9.0 modsecurity.conf-recommended /opt/modsecurity/etc/main.conf

Chép tập tin unicode.mapping tới thư mục sau:

[root@vanbien ~]# cp /usr/local/src/modsecurity2/modsecurity-2.9.0/unicode.mapping /opt/modsecurity/etc/

Bước 5: Thêm những dòng sau vào bên dưới dòng LoadModulefile trong file /etc/httpd/conf/httpd.conf:

LoadFile /usr/local/lib/libxml2.so

LoadModule security2_module /usr/lib/apache/mod_security2.so Include /etc/httpd/conf.d/modsecurity.conf

Lưu và khởi động lại Apache với lệnh: service httpd restart

Bước 6: Kiểm tra hoạt động của Modsecurity

Sau khi hoàn thành phần cấu hình, tôi sẽ kiểm tra hoạt động của ModSecurityuriy bằng một luật đơn giản như sau:

71

SecRule REQUEST_URI "dangerous" "id:'900721'phase:1,deny,status:406"

Luật trên hoạt động trong trường hợp khi một người dùng cố truy cập vào URI có chứa mẫu nguy hiểm, thì Modsecurity sẽ trả về mã lỗi 406.

[root@vanbien ~]# curl -I http://www.hoangchinhthang.com/?user=1 order by 1,2,4 HTTP/1.1 406 Not Acceptable

Date: Tue, 16 Jun 2015 09:11:07 GMT Server: Apache

Connection: close

Content-Type: text/html; charset=iso-8859-1 curl: (6) Couldn't resolve host '1,2,4'

Bước 7: Cấu hình tập luật cho ModSecurity sử dụng tập luật được phát triển bởi OWASP:

[root@vanbien modsecurity-2.9.0]# mkdir /etc/modsecurity2 [root@vanbien modsecurity-2.9.0]# cd /etc/modsecurity2

[root@vanbien modsecurity2]# wget https://github.com/SpiderLabs/owasp- modsecurity-crs/archive/master.zip

[root@vanbien modsecurity2]# unzip master

[root@vanbien modsecurity2]# mv owasp-modsecurity-crs-master/* .

[root@vanbien modsecurity2]# rm -rf master.zip owasp-modsecurity-crs-master

Chép tập tin modsecurity_crs_10_setup.conf đến thư mục opt/modsecurity:

[root@vanbien modsecurity2]# cp modsecurity_crs_10_setup.conf.example /opt/modsecurity/modsecurity_crs_10_setup.conf

[root@vanbien modsecurity2]# mkdir -p /opt/modsecurity/etc/crs/activated_rules

Tạo liên kết giữa base_rules, optional_rules với activated_rules

[root@vanbien modsecurity2]# for f in 'ls base_rules/' ; do sudo ln -s

/etc/modsecurity2/base_rules/$f /opt/modsecurity/etc/crs/activated_rules/$f ; done [root@vanbien modsecurity2]# for f in 'ls optional_rules/' ; do sudo ln -s

/etc/modsecurity2/optional_rules/$f /opt/modsecurity/etc/crs/activated_rules/$f ; done

Chỉnh sửa tập tin cấu hình modsecurity trong /etc/httpd/conf.d:

[root@vanbien modsecurity2]# vi /etc/httpd/conf.d/modsecurity.conf <IfModule mod_security2.c>

Include /opt/modsecurity/etc/main.conf

Include /opt/modsecurity/etc/modsecurity_crs_10_setup.conf Include /opt/modsecurity/etc/crs/activated_rules/*.conf </IfModule>

Bước 8: Kiểm tra hoạt động của modsecurity

[root@vanbien activated_rules]# tail -f /var/log/httpd/error_log

[Wed Jun 17 11:01:07.004120 2015] [:notice] [pid 29216:tid 139831424718784] ModSecurity: StatusEngine call: "2.9.0,Apache/2.4.12 (Unix)

72 Open,1.5.1/1.5.1,8.20/8.20 2011-10-

21,(null),2.9.2,73df89cdb92a3eaebd84113418437c233c3636e4"

[Wed Jun 17 11:01:15.027120 2015] [:notice] [pid 29216:tid 139831424718784] ModSecurity: StatusEngine call successfully sent. For more information visit: http://status.modsecurity.org/

Bước 9: Tạo tập luật chặn tấn công Session Hijacking và đưa vào activated_rules: [root@vanbien modsecurity2]# cd /opt/modsecurity/etc/crs/activated_rules

[root@vanbien activated_rules]# touch modsecurity_ session_hijacking.conf Thêm các luật phòng chống session_hijacking vào tập tin

modsecurity_session_hijacking.conf

[root@vanbien activated_rules]# vi modsecurity_ session_hijacking.conf

Sau đó lưu lại, thử nghiệm và kiểm tra tập tin log trong /opt/modsecurity/var/log: [17/Jun/2015:21:44:19 +0700]

[www.hoangchinhthang.com/sid#1159438][rid#7fe4d0013 140][/][2] Warning. Operator EQ matched 1 at SESSION:IS_NEW. [file "/opt/modsecu

rity/etc/crs/activated_rules/ modsecurity_ session_hijacking.conf"] [line " 24"] [id "981054"] [msg "Invalid SessionID Submitted."]

Đến đây mọi tiến trình cài đặt mod_security đã xong. Tiếp theo, tôi cấu hình cho tường lửa iptables được tích hợp sẵn trên bản phân phối của Linux trên máy chủ cơ sở dữ liệu để chỉ cho phép máy chủ web và máy chủ ứng dụng kết nối đến máy chủ cơ sở dữ liệu thông qua cổng 3306.

/sbin/iptables -A INPUT -i eth0 -s 123.30.209.22 -p tcp –destination-port 3306 -j ACCEPT

Một phần của tài liệu Nghiên cứu giải pháp đảm bảo an ninh an toàn thông tin cho các cổng trang thông tin điện tử (Trang 78)

Tải bản đầy đủ (PDF)

(105 trang)