Cách ngăn chặn cuộc tấn công DDoS với Nginx

 5. Link Tải

 

>>>Link TẢI XUỐNG TRỰC TIẾP

>>>LINK TẢI NHANH

 5. Link Tải

Các cuộc tấn công DDoS (Từ chối Dịch vụ Phân tán) thông qua các chiến thuật truyền thông kỹ thuật số lạm dụng làm quá tải tài nguyên máy chủ. Các kiểu tấn công này là các cuộc tấn công có tổ chức trong thế giới máy tính. Vô số hành động xấu xa cùng nhau tạo thành một mối đe dọa với sức mạnh khủng khiếp và buộc một máy chủ phải dừng lại.

Tệ nhất, có nhiều cách để tiến hành “cuộc chiến” web du kích chống lại các máy chủ như vậy. May mắn thay, các máy chủ có thể được cấu hình để chống lại các cuộc tấn công như vậy.

Nginx, một hệ thống máy chủ rất phổ biến cho máy tính Unix, có đủ các chức năng tích hợp để hạn chế đáng kể hiệu quả của các cuộc tấn công DDoS.

Dưới đây là một số tùy chọn hiệu quả để đối phó với các mối đe dọa như vậy với Nginx.

Làm cách nào để ngăn chặn cuộc tấn công DDoS với Nginx?

Sao lưu tệp cấu hình

Trước khi thay đổi bất kỳ cài đặt nào, hãy đảm bảo bạn đã sao lưu nhanh cấu hình máy chủ. Lệnh sau hoạt động cho mục đích này:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Sao lưu tệp cấu hình

Sau khi hoàn tất, bạn có thể tiếp tục.

Kiểm tra giao thông

Theo dõi lưu lượng truy cập trên máy chủ giúp tối ưu hóa bảo mật và thực hiện các chiến thuật bổ sung dễ dàng hơn. Nginx đã tạo một mô-đun dành riêng cho mục đích này.

Thiết lập trang trạng thái

Nginx thường đi kèm với một mô-đun có tên là “Trạng thái sơ khai” (http_stub_status_module), Cho phép loại chức năng này được tích hợp dễ dàng vào môi trường máy chủ. Đầu tiên hãy kiểm tra nó bằng lệnh sau:

nginx -V

Thiết lập trang trạng thái

Hoặc sử dụng lệnh sau để tìm nhanh hơn:

nginx -V 2>&1 | grep -o with-http_stub_status_module

Đầu ra lệnh

Nếu đầu ra của bạn trông giống như đầu ra ở trên, mọi thứ sẽ ổn. Nếu không, bạn sẽ cần cài đặt hoặc biên dịch lại cài đặt Nginx của mình bằng mô-đun được cung cấp.

Thiết lập trang trạng thái mà bạn có thể xem lại rất dễ dàng. Tuy nhiên, bạn cũng cần giữ quyền truy cập ở mức tối thiểu (chỉ dành cho máy tính) để bảo mật. Đầu tiên hãy mở tệp cấu hình của máy chủ chính trong /etc/nginx/nginx.conf.

Mở tệp cấu hình máy chủ

Mở nó và thêm mã sau vào nó “Chỉ thị HTTP” Để kích hoạt mô-đun, hãy thay thế thông tin của riêng bạn “Máy chủ cục bộ”, “/ status_page”“127.0.0.1”.

server {
 listen 80;
 listen [::]:80;
 server_name localhost;
 ##
 # Status Page Settings
 ##
 location /status_page {
 stub_status on;
 allow 127.0.0.1;
 allow ::1;
 deny all;
 }
 }

Ghi chú: Bạn cần quyền sudo để thay đổi tệp này.

Bạn cần quyền sudo để sửa đổi tệp này

Bây giờ hãy kiểm tra cấu hình của bạn:

sudo nginx -t

Kiểm tra cấu hình

Nếu mọi việc suôn sẻ, hãy gửi cho máy chủ một tín hiệu tải lại:

sudo systemctl reload nginx

Tải lại máy chủ

Để đến trang trạng thái của bạn, hãy chuyển đến vị trí Tên máy chủ, theo dõi bởi “/ Status_page” trong trình duyệt web hoặc với các công cụ dòng lệnh như Những lọn tóc. (Điều này rất hữu ích nếu bộ nhớ cache của trình duyệt không tự động cập nhật.) Sau đây là lệnh curl mà các ví dụ sử dụng để truy cập trang:

curl localhost/status_page

Lệnh curl để truy cập trang trong các ví dụ

Trong trình duyệt, kết quả lệnh trên trông như thế này.

Đặt hàng kết quả

Kiểm tra nhật ký truy cập

Nếu bạn nhận thấy bất kỳ lưu lượng truy cập bất thường nào trong khi kiểm tra trang trạng thái được định cấu hình ở trên, bạn có thể muốn kiểm tra nhật ký lưu lượng truy cập của máy chủ. Bạn có thể tìm thấy nhật ký truy cập của máy chủ dưới “/Var/log/nginx/access.log”. Nhật ký liệt kê các phương thức HTTP được sử dụng, ngày và thời gian thực hiện, tác nhân người dùng và các trang đã truy cập.

Kiểm tra nhật ký truy cập

Giới hạn kết nối

Trong số rất nhiều phương pháp hữu ích để ngăn chặn các cuộc tấn công DDoS đáng thử, một trong những cách đơn giản và hiệu quả nhất là giới hạn tốc độ thực thi lưu lượng truy cập vào.

Tốt nhất, bạn nên hạn chế quyền truy cập vừa đủ để các bot độc hại không lấn át máy chủ của bạn trong khi vẫn duy trì mức giá hợp lý. Trong Nginx, điều này có thể được thực hiện bằng cách sử dụng hướng dẫn. limit_req_zonelimit_req. Đoạn mã sau đặt giới hạn bộ nhớ và tốc độ để sử dụng ở bất kỳ đâu máy chủ của bạn được cấu hình để hiển thị:

limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;

“Vùng” Chỉ định tên và kích thước (trong trường hợp này là megabyte) của không gian lưu trữ mà yêu cầu người dùng được lưu trữ. “Xếp hạng” Đặt tổng số yêu cầu Nginx sẽ chấp nhận mỗi giây (10 yêu cầu trong ví dụ này). Thông thường, hãy tưởng tượng mã này và đoạn mã sau sử dụng quy tắc này:

limit_req zone=speedbump burst=20;

Đoạn mã trên thực sự không chỉ là thực thi quy tắc giới hạn. Nó cũng thêm một hàng đợi nhỏ lên đến 20 yêu cầu để các kết nối hợp pháp diễn ra suôn sẻ, điều này hiển thị nhanh hơn một chút so với bình thường và vượt quá cả quy tắc và hàng đợi, dẫn đến lỗi 503 cho máy khách. Cả hai câu lệnh trông như thế này trong nginx.conf:

Cả hai hướng dẫn đều trông giống như thế này trong nginx.conf

Danh sách đen địa chỉ IP

Nếu bạn nhận được địa chỉ IP đang thực hiện một cuộc tấn công DDoS trên máy chủ của mình, bạn chỉ có thể đưa nó vào danh sách đen và xóa mọi kết nối đến từ địa chỉ IP đó.

Thêm mã sau vào câu lệnh máy chủ của bạn:

location / {
 deny 123.123.123.0/28;
 # ...
 }

Chặn yêu cầu đối với các tệp cụ thể

Nếu cuộc tấn công DDoS đang nhắm mục tiêu vào các tệp cụ thể trên máy chủ, ví dụ: B. tệp xmlrpc.php Trong WordPress (đây là tệp mà hầu hết các máy chủ WordPress thường nhắm mục tiêu), bạn có thể chặn tất cả các yêu cầu. Thêm mã này vào chỉ thị máy chủ của bạn:

location /xmlrpc.php {
 deny all;
 }

Làm theo các bước nêu trên để chống lại hầu hết các cuộc tấn công DDoS. Tham khảo tài liệu Nginx để biết thêm các tùy chọn bảo mật mà bạn có thể áp dụng.

Mong bạn thành công.

 5. Link Tải

Add Comment