Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

Mod_evasive là một mô-đun Apache cung cấp hành động né tránh trong trường hợp có tấn công HTTP DoS hoặc DDoS hoặc tấn công bạo lực. mod_evasive hiện báo cáo hoạt động độc hại qua email và syslog. Mô-đun mod_evasive hoạt động bằng cách tạo bảng băm động nội bộ của địa chỉ IP và URI và từ chối bất kỳ địa chỉ IP nào từ bất kỳ điều kiện nào sau đây:

  • Yêu cầu cùng một trang nhiều hơn một vài lần mỗi giây
  • Thực hiện hơn 50 yêu cầu đồng thời trên cùng một trẻ em mỗi giây
  • Thực hiện bất kỳ yêu cầu nào trong khi tạm thời bị liệt vào danh sách đen (trên danh sách chặn)

Trong hướng dẫn này, tôi sẽ thảo luận về cách cài đặt, cấu hình và sử dụng mod_evasive trên máy chủ Apache của bạn. Hướng dẫn này sử dụng máy chủ Ubuntu 14.04.

Cài đặt mod_evasive

Trước tiên, hãy chắc chắn rằng máy chủ Apache đã được cài đặt và đang chạy.

Tiếp theo, bạn có thể cài đặt mod_evasive module bằng cách chạy:

 sudo apt-get cài đặt libapache2-mod-evasive 

Sau khi cài đặt mod_evasive, bạn có thể xác minh mô-đun này bằng cách chạy các lệnh sau:

 sudo apachectl -M | grep evasive 

Nếu mod_evasive được bật, bạn sẽ thấy kết quả sau:

 evasive20_module (đã chia sẻ) 

Định cấu hình Mod_evasive

Mod_evasive module đọc cấu hình của nó từ “/etc/apache2/mods-enabled/evasive.conf.” Bạn có thể dễ dàng tùy chỉnh mô-đun mod_evasive thông qua tập tin cấu hình “evasive.conf”. Theo mặc định, các tùy chọn cấu hình mod_evasive bị vô hiệu hóa, vì vậy bạn cần bật chúng trước. Để thực hiện việc này, hãy chỉnh sửa tệp “evasive.conf”:

 sudo nano /etc/apache2/mods-enabled/evasive.conf 

Xóa # khỏi các dòng sau:

 DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify [email protected] DOSLogDir "/ var / log / apache2 /" 

Lưu tệp và khởi động lại Apache để các thay đổi của bạn có hiệu lực:

 sudo /etc/init.d/apache2 khởi động lại 

Bạn có thể thay đổi các giá trị trên theo số lượng và loại lưu lượng truy cập mà máy chủ web của bạn cần xử lý.

DOSHashTableSize : Chỉ thị này chỉ rõ cách mod_evasive theo dõi ai đang truy cập cái gì. Việc tăng số lượng này sẽ cung cấp tra cứu nhanh hơn các trang web mà khách hàng đã truy cập trong quá khứ.

DOSPageCount : Chỉ thị này xác định có bao nhiêu yêu cầu giống hệt nhau cho một URI cụ thể mà một người truy cập có thể thực hiện trong khoảng thời gian DOSPageInterval.

DOSSiteCount : Điều này tương tự như DOSPageCount nhưng tương ứng với số lượng yêu cầu mà khách truy cập có thể thực hiện cho trang web của bạn trong khoảng DOSSiteInterval.

DOSBlockingPeriod : Nếu một người truy cập vượt quá giới hạn được thiết lập bởi DOSSPageCount hoặc DOSSiteCount, IP của anh ta sẽ bị chặn trong khoảng thời gian DOSBlockingPeriod. Trong khoảng thời gian này, anh ta sẽ nhận được lỗi 403 (Bị cấm).

DOSEmailNotify : Một email sẽ được gửi đến địa chỉ email được chỉ định bất cứ khi nào địa chỉ IP bị liệt vào danh sách đen.

DOSLogDir : Chỉ thị này xác định vị trí của thư mục log.

Thử nghiệm Mod_evasive

Bây giờ là lúc để kiểm tra xem mô-đun mod_evasive có đang hoạt động hay không. Bạn có thể làm điều này bằng cách sử dụng một kịch bản perl “test.pl” nằm trong thư mục “/ usr / share / doc / libapache2-mod-evasive / examples /”.

Bạn có thể thực thi kịch bản bằng cách chạy lệnh sau:

 sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl 

Bạn sẽ thấy kết quả sau:

Tập lệnh tạo 100 yêu cầu cho máy chủ web của bạn. Mã phản hồi 403 cho biết quyền truy cập bị máy chủ web từ chối.

Phần kết luận

mod_evasive là một công cụ rất quan trọng để bảo vệ một máy chủ web Apache chống lại một số mối đe dọa. Bạn có thể thử nghiệm với các tùy chọn khác nhau của mod_evasive ano trong môi trường thử nghiệm. Nếu bạn có bất kỳ câu hỏi nào, bạn có thể viết chúng trong hộp bình luận bên dưới.