Định cấu hình mod_evasive để ngăn tấn công DoS và DDoS trên CentOS

Trong bài này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình mod_evasive để ngăn chặn tấn công DoS và DDoS trên CentOS.

Đối với phần trình diễn này, chúng tôi đã sử dụng máy chủ chuyên dụng CentOS 7 64 bit.

Bắt đầu nào.

Mô-đun mod_evasive Apache. Nó giúp duy trì Cuộc tấn công từ chối dịch vụ phân tán (DoS & DDoS) và các cuộc tấn công vũ phu trên máy chủ web Apache. Mod_evasive hoạt động bằng cách theo dõi các yêu cầu gửi đến và báo cáo lạm dụng qua email và cơ sở nhật ký hệ thống. Nó được thiết kế để trở thành một công cụ phát hiện và quản lý mạng và nhanh chóng được định cấu hình để giao tiếp với ipchains, tường lửa, bộ định tuyến và hơn thế nữa.

Mod_evasive theo dõi các yêu cầu đáng ngờ và từ chối bất kỳ địa chỉ IP nào từ bất kỳ địa chỉ 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 con mỗi giây
  • Đưa ra bất kỳ yêu cầu nào trong khi tạm thời bị đưa vào danh sách đen

Điều kiện tiên quyết

  • Máy chủ chuyên dụng CentOS 7 64-bit hoặc máy chủ đám mây (Nó cũng hoạt động với CentOS 6)
  • Apache Webserver LAMP (Linux, Apache, MySQL, PHP) đã được cài đặt và cấu hình
  • Máy chủ Thư

1. Giữ cho máy chủ được cập nhật:

# yum update -y

2. Cài đặt EPEL (Gói bổ sung cho Enterprise Linux):

# yum install epel-release -y

3. Cài đặt điều kiện tiên quyết của mod_evasive:

# yum install httpd-devel

4. Cài đặt mod_evasive:

# yum install mod_evasive -y

Bây giờ, mod_evasive đã được cài đặt

5. Để thêm cấu hình mod_evasive vào tệp cấu hình Apache của bạn:

Theo mặc định, dòng LoadModule sẽ được thêm vào tệp cấu hình mod_evasive.conf. Mở tệp và thêm dòng sau nếu nó chưa có.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

Mở tệp cấu hình mod_evasive.conf và kiểm tra các mục sau.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

Bạn có thể cấu hình các mục trên theo yêu cầu của bạn. Sửa đổi DOSEmailNotify thành id email của bạn.

Để đưa địa chỉ IP vào danh sách trắng, hãy thêm dòng sau vào tệp cấu hình:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

Bạn cũng có thể thêm nhiều địa chỉ IP.

Một mục nhập khác cần thay đổi DOSLogDir. Theo mặc định, nó tham chiếu đến / tmp cho một cơ chế khóa.

Tạo thư mục mới trong / var / log / :

# mkdir /var/log/mod_evasive

Đặt quyền sở hữu cho người dùng apache:

# chown -R apache:apache /var/log/mod_evasive

Bây giờ, hãy chỉnh sửa dòng sau trong cấu hình mod_evasive và sửa đổi đường dẫn thư mục:

DOSLogDir  /var/log/mod_evasive

Lưu và thoát khỏi tệp cấu hình mod_evasive.

Tiếp theo, khởi động lại Apache:

# systemctl restart httpd.service

Vậy là xong, mod_evasive đã được cài đặt và cấu hình.

Tìm hiểu thêm về các tùy chọn cấu hình mod_evasive
Các mô tả tùy chọn cấu hình này được lấy trực tiếp từ tệp README.

DOSHashTableSize

Kích thước bảng băm xác định số lượng nút cấp cao nhất cho bảng băm của mỗi đứa trẻ. Việc tăng con số này sẽ mang lại hiệu suất nhanh hơn bằng cách giảm số lần lặp cần thiết để truy cập bản ghi, nhưng tiêu tốn nhiều bộ nhớ hơn cho không gian bảng. Bạn nên tăng điều này nếu bạn có một máy chủ web bận. Giá trị bạn chỉ định sẽ tự động được xếp lên đến số nguyên tố tiếp theo trong danh sách số nguyên tố (xem mod_evasive.c để biết danh sách các đoạn mồi được sử dụng).

DOSPageCount

Đây là ngưỡng cho số lượng yêu cầu cho cùng một trang (hoặc URI) trên mỗi khoảng thời gian trang. Khi đã vượt quá ngưỡng cho khoảng thời gian đó, địa chỉ IP của máy khách sẽ được thêm vào danh sách chặn.

DOSSiteCount

Đây là ngưỡng cho tổng số yêu cầu đối với bất kỳ đối tượng nào của cùng một khách hàng trên cùng một trình nghe trên mỗi trang web. Khi đã vượt quá ngưỡng cho khoảng thời gian đó, địa chỉ IP của máy khách sẽ được thêm vào danh sách chặn.

DOSPageInterval

Khoảng thời gian cho ngưỡng đếm trang; mặc định là khoảng thời gian 1 giây.

DOSSiteInterval

Khoảng thời gian cho ngưỡng đếm trang web; mặc định là khoảng thời gian 1 giây.

DOSBlockingPeriod

Khoảng thời gian chặn là khoảng thời gian (tính bằng giây) mà khách hàng sẽ bị chặn nếu họ được thêm vào danh sách chặn. Trong thời gian này, tất cả các yêu cầu tiếp theo từ máy khách sẽ dẫn đến lỗi 403 (Bị cấm) và bộ đếm thời gian được đặt lại (ví dụ: 10 giây nữa). Vì bộ hẹn giờ được đặt lại cho mọi yêu cầu tiếp theo, nên không cần thiết phải có thời gian chặn lâu; trong trường hợp có cuộc tấn công DoS, bộ đếm thời gian này sẽ tiếp tục được đặt lại.

DOSEmailNotify

Nếu giá trị này được đặt, một email sẽ được gửi đến địa chỉ được chỉ định bất cứ khi nào một địa chỉ IP bị đưa vào danh sách đen. Cơ chế khóa bằng cách sử dụng / tmp ngăn không cho các email liên tục được gửi.

Ghi chú:

Đảm bảo MAILER được đặt chính xác trong mod_evasive.c (hoặc mod_evasive20.c). Giá trị mặc định là “/ bin / mail -t% s” trong đó% s được sử dụng để biểu thị địa chỉ email đích được đặt trong cấu hình. Nếu bạn đang chạy trên linux hoặc một số hệ điều hành khác với một loại bưu phẩm khác, bạn sẽ cần phải thay đổi điều này.

DOSSystemCommand

Nếu giá trị này được đặt, lệnh hệ thống đã chỉ định sẽ được thực thi bất cứ khi nào địa chỉ IP trở thành danh sách đen. Điều này được thiết kế để cho phép hệ thống gọi đến bộ lọc ip hoặc các công cụ khác. Một cơ chế khóa bằng cách sử dụng / tmp ngăn chặn các cuộc gọi hệ thống liên tục. Sử dụng% s để biểu thị địa chỉ IP của IP nằm trong danh sách đen.

DOSLogDir

Chọn một thư mục tạm thời thay thế
Theo mặc định, “/ tmp” sẽ được sử dụng cho cơ chế khóa, điều này sẽ mở ra một số vấn đề bảo mật nếu hệ thống của bạn mở cho người dùng shell. Trong trường hợp bạn có người dùng shell không có đặc quyền, bạn sẽ muốn tạo một thư mục chỉ có thể ghi cho người dùng mà Apache đang chạy với tư cách là (thường là root), sau đó đặt điều này trong httpd.conf của bạn.

Trong bài viết này, chúng tôi đã trình bày cách kỹ sư hỗ trợ của chúng tôi cài đặt và định cấu hình mod_evasive để ngăn chặn tấn công DoS và DDoS trên CentOS.


Cách sửa lỗi đối chiếu “utf8mb4_0900_ai_ci” khi nhập cơ sở dữ liệu WordPress

Cách sửa lỗi đối chiếu “utf8mb4_0900_ai_ci” khi nhập cơ sở dữ liệu WordPress

Nếu bạn đang chuyển cài đặt WordPress của mình từ máy chủ MySQL 8 sang MySQL 5.7 (hoặc thấp hơn), rất có thể bạn sẽ gặp phải

Cách tắt trình chỉnh sửa khối và cài đặt trình chỉnh sửa cổ điển trong WordPress 5.0

Cách tắt trình chỉnh sửa khối và cài đặt trình chỉnh sửa cổ điển trong WordPress 5.0

Bắt đầu với WordPress 5.0, trình chỉnh sửa mặc định trên WordPress là trình chỉnh sửa Khối mới. Trình chỉnh sửa mới hoàn toàn khác

🔧 Khắc phục: Cài đặt PHP của bạn dường như thiếu phần mở rộng MySQL mà WordPress yêu cầu

🔧 Khắc phục: Cài đặt PHP của bạn dường như thiếu phần mở rộng MySQL mà WordPress yêu cầu

Bạn đang tìm cách chạy một trang WordPress tự quản lý? Tuyệt vời. Bạn sẽ học được hàng triệu điều. Một trong những phần quan trọng của việc thiết lập

Cách làm mới các mục trong thư mục trong Windows 11

Cách làm mới các mục trong thư mục trong Windows 11

Khi thiếu tùy chọn Làm mới trong menu ngữ cảnh, bạn có thể tìm hiểu cách bạn có thể làm mới các mục trong File Explorer trên Windows 11.

Cách đặt Trình chỉnh sửa cổ điển làm Trình chỉnh sửa mặc định trong WordPress thay vì Gutenberg

Cách đặt Trình chỉnh sửa cổ điển làm Trình chỉnh sửa mặc định trong WordPress thay vì Gutenberg

Gutenberg Editor sẽ sớm trở thành trình soạn thảo mặc định trong WordPress. Bạn sẽ có tùy chọn để chọn Trình chỉnh sửa cổ điển

Cách khắc phục sự cố WordPress 5.0

Cách khắc phục sự cố WordPress 5.0

WordPress 5.0 cuối cùng cũng được tung ra và nó mang lại trải nghiệm chỉnh sửa hoàn toàn mới với Gutenberg

Khắc phục: “Trình chỉnh sửa đã gặp lỗi không mong muốn” trong WordPress sau khi cập nhật

Khắc phục: “Trình chỉnh sửa đã gặp lỗi không mong muốn” trong WordPress sau khi cập nhật

Không thể viết bài mới bằng Trình chỉnh sửa khối mới trong WordPress? Rất có thể bạn đang nhận được “Người biên tập

Cách bật thẻ ngắn PHP

Cách bật thẻ ngắn PHP

Trong bài viết này, chúng tôi đã giới thiệu cho các bạn cách bật các thẻ ngắn PHP. PHP phân tích cú pháp tệp bằng cách sử dụng thẻ mở và thẻ đóng, trông giống như. Để bật các thẻ ngắn PHP

Định cấu hình mod_evasive để ngăn tấn công DoS và DDoS trên CentOS

Định cấu hình mod_evasive để ngăn tấn công DoS và DDoS trên CentOS

Trong bài này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình mod_evasive để ngăn chặn tấn công DoS và DDoS trên CentOS. Mô-đun mod_evasive Apache.

Cách cài đặt PHP với PHP-FPM cho NGINX trên CentOS

Cách cài đặt PHP với PHP-FPM cho NGINX trên CentOS

cách cài đặt PHP với PHP-FPM cho NGINX trên CentOS. Cấu hình cơ bản của máy chủ web NGINX để xử lý ứng dụng PHP và máy chủ chúng trên cổng 80.