Trang chủ Sys-Ops

Hướng dẫn cài đặt Mod Security cho Apache trên Ubuntu 16.04

Hướng dẫn cài đặt Mod Security cho Apache trên Ubuntu 16.04

Máy chủ Web Apache là một trong những máy chủ Web được sử dụng thông dụng nhất trên thế giới. Do đó việc tăng cường bảo mật cho máy chủ Web là một trong những công việc quan trọng mà người quản trị hệ thống cần phải thực hiện.

Có rất nhiều công cụ và kỹ thuật được sử dụng để tăng cưởng bảo mật cho máy chủ Web Apache. Trong số đó Mod_security là một trong những mô đun quan trọng được nhiều chuyên gia bảo mật tin dùng sử dụng để phát hiện, ngăn chặn tấn công trên máy chủ Web. Mod_security có khả năng theo dõi, ghi nhật ký và kiểm soát truy cập theo thời gian thực, ngoài ra Modsecurity còn có khả năng bảo vệ máy chủ Web khỏi những tấn công như XSS, Bots, SQL-injection, mã độc, Session Hijacking và nhiều loại tấn công khác.

Trong phần này. Chúng ta sẽ cùng tìm hiểu về cách thức cài đặt và cấu hình Mod_security trên máy chủ Ubuntu 16.04.

YÊU CẦU HỆ THỐNG

  • Máy chủ Ubuntu 16.04
  • Địa chỉ IP tĩnh 192.168.1.10 dùng để cấu hình máy chủ

CẬP NHẬT HỆ THỐNG

Đầu tiên, cập nhật hệ thống với câu lệnh sau:

apt-get update -y

apt-get upgrade -y

CÀI ĐẶT MÁY CHỦ LAMP

Trước khi bắt đầu, cài đặt LAMP lên máy chủ bằng câu lệnh sau:

apt-get install apache2 mysql-server libapache2-mod-auth-mysql php5-mysql php5 libapache2-mod-php5 php5-mcrypt

Bật Apache Service và cho phép Apache khởi động cùng với Boot

systemctl start apache2

systemctl enable apache2

CÀI ĐẶT MOD_SECURITY

Mặc định, Mod_security có sẵn trên kho ứng dụng của Ubuntu 16.04. Thực hiện cài đặt Mod_security bằng câu lệnh sau:

apt-get install libapache2-modsecurity

Sau khi cài đặt thành công, thực hiện kiểm tra mô đun Mod_security bằng lệnh:

apachectl -M | grep security

Nếu mọi thứ đều hoạt động bình thường, kết quả sẽ như sau:

security2_module (shared)

CẤU HÌNH Mod_security

Mặc định, Mod_security không hoạt động bởi vì nó cần luật (Rules) để làm việc. Đầu tiên, bạn cần thay đổi tên tập tin Modsecurity.conf-recommended tại địa chỉ /etc/modsecurity thành modsecurity.conf bằng câu lệnh sau:

mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Bước tiếp theo, thiết lập cấu hình “SecRuleEngine” thành “on” trong tập tin modsecurity.conf

nano /etc/modsecurity/modsecurity.conf

SecRuleEngine on

Lưu tập tin và khởi động lại Apache để cập nhật thay đổi

systemctl restart apache2

Mod_security sẽ chạy với luật mặc định được lưu tại đại chỉ /usr/share/modsecurity-crs. Tuy nhiên modsecurity khuyến cáo nên tải luật mới tại kho lưu trữ github của mod_security. Để thực hiện cập nhật luật mới ta làm như sau:

Đầu tiên, gỡ bỏ luật mặc định bằng lệnh sau:

rm -rf /usr/share/modsecurity-crs

Tải phiên bản mới nhất

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs

Thay đổi tên tập tin crs-setup.conf.example thành crs-setup.conf

cd /usr/share/modsecurity-crs

mv crs-setup.conf.example crs-setup.conf

Thiết lập luật mới hoạt động với apache bằng việc thay đổi cấu hình trong tập tin tại địa chỉ /etc/apache2/mods-enabled/security2.conf bằng nội dung dưới đây:

<IfModule security2_module>

       SecDataDir /var/cache/modsecurity

       IncludeOptional /etc/modsecurity/*.conf

       IncludeOptional "/usr/share/modsecurity-crs/*.conf"

       IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf

</IfModule>

Lưu tập tin và khởi động lại Apache

systemctl restart apache2

KIỂM TRA, CHẠY THỬ mod_security

Để thực hiện kiểm tra hoạt động của Mod_secuirty, thực hiện gửi một vài yêu cầu độc hại tới máy chủ web và kiểm tra xem yêu cầu đó có bị chặn lại hay không.

Đầu tiên, kiểm tra Mod_security bảo vệ máy chủ Apache trước một cuộc tấn công XSS.

Tại máy Client thực hiện chạy lệnh kiểm tra tấn công XSS như sau:

curl 'http://192.168.1.10/?q="><script>alert(1)</script>'

Nếu Mod_security hoạt động kết quả trả về là “403 Forbidden” như sau:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>403 Forbidden</title>

</head><body>

<h1>Forbidden</h1>

<p>You don't have permission to access /

on this server.<br />

</p>

<hr>

<address>Apache/2.4.18 (Ubuntu) Server at 192.168.1.10 Port 80</address>

</body></html>

Tiếp theo, kiểm tra Mod_security ngăn chặn tấn công SQL injection bằng lệnh sau:

curl http://192.168.1.10/?q='1 OR 1=1

Nếu Mod_security hoạt động kết quả trả về sẽ là “403 Forbidden” như sau:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>403 Forbidden</title>

</head><body>

<h1>Forbidden</h1>

<p>You don't have permission to access /

on this server.<br />

</p>

<hr>

<address>Apache/2.4.18 (Ubuntu) Server at 192.168.1.10 Port 80</address>

</body></html>

Ngoài những luật được cung cấp bởi Mod_security, tùy từng trường hợp bạn có thể tự thêm luật vào Mod_secuirty để bảo vệ hệ thống của bạn theo cách riêng.

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

>> Tham khảo thêm: Cài đặt Joomla trên Ubuntu 16.04