Header ads

Header ads
» » Hướng dẫn ngăn chặn cuộc tấn công DDoS với Nginx

Các cuộc tấn công DDoS (Distributed Denial of Service), thông qua những chiến thuật truyền thông kỹ thuật số mang tính lạm dụng, khiến tài nguyên máy chủ bị quá tải. Những kiểu tấn công này là cuộc đột kích có tổ chức trong thế giới máy tính. Vô số hành động chống đối khó chịu kết hợp cùng với nhau để tạo ra mối đe dọa với sức mạnh đủ ghê gớm, buộc một máy chủ phải tạm dừng.
Tệ nhất là, có nhiều phương tiện để tiến hành những "cuộc chiến tranh" 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 những cuộc tấn công như vậy.
Nginx, một hệ thống máy chủ rất phổ biến cho các máy Unix, đi kèm với đủ 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 vài tùy chọn hiệu quả để xử lý các mối đe dọa như vậy với Nginx.

Sao lưu file cấu hình

Trước khi bạn thay đổi bất kỳ cài đặt nào, hãy đảm bảo bạn tạo bản sao lưu nhanh cấu hình của 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 file cấu hình
Sau khi hoàn thành, bạn đã sẵn sàng để tiếp tục.

Kiểm tra traffic

Theo dõi lưu lượng truy cập (traffic) trên máy chủ giúp bạn dễ dàng tối ưu hóa việc bảo mật và thực hiện các chiến thuật bổ sung. Nginx có một mô-đun được tạo 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à "stub status" (http_stub_status_module), cho phép loại chức năng này được tích hợp vào môi trường máy chủ của bạn khá dễ dàng. Đầu tiên, kiểm tra nó bằng cách sử dụ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 thấy nó 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, thì mọi thứ đều ổ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 với mô-đun đi kèm.
Thiết lập trang trạng thái bạn có thể kiểm tra rất đơn giản, nhưng bạn cũng cần giới hạn quyền truy cập ở mức tối thiểu (chỉ máy tính của bạn) để duy trì bảo mật. Bắt đầu bằng cách mở file cấu hình chính của máy chủ được tìm thấy tại /etc/nginx/nginx.conf.
Mở file cấu hình máy chủ
Mở nó và thêm đoạn code sau vào "http directive" để kích hoạt mô-đun, thay thế thông tin của riêng bạn vào "localhost," "/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;   }   }
Lưu ý: Bạn sẽ cần đặc quyền sudo để sửa đổi file này.
Bạn sẽ cần đặc quyền sudo để sửa đổi file 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 tất cả đều ổn, hãy gửi cho máy chủ của bạn tín hiệu load lại:
sudo systemctl reload nginx
Load lại máy chủ
Để truy cập trang trạng thái của bạn, hãy truy cập vị trí server_name, theo sau bởi "/status_page" trong trình duyệt web hoặc bằng cách sử dụng công cụ dòng lệnh như curl. (Điều này hữu ích nếu cache trình duyệt của bạn không tự động cập nhật). Sau đây là lệnh curl để truy cập trang trong các ví dụ:
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 giống như hình ảnh sau đây.
Kết quả lệnh

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

Nếu bạn nhận thấy lưu lượng truy cập bất thường khi kiểm tra trang trạng thái được cấu hình ở trên, có thể bạn nên kiểm tra nhật ký truy cập của máy chủ. Nhật ký truy cập của máy chủ có thể được tìm thấy tạ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/giờ của các lần thử truy cập, user agent và những trang được truy cập.
Kiểm tra nhật ký truy cập

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

Trong số nhiều chiến thuật 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à hạn chế tốc độ lưu lượng truy cập đến.
Tốt nhất, bạn nên hạn chế truy cập vừa đủ để ngăn chặn các bot độc hại áp đảo 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ác directive (chỉ thị) limit_req_zonelimit_req. Đoạn code sau đặt ra các điều kiện ràng buộc về bộ nhớ và tốc độ để sử dụng ở bất kỳ vị trí nào mà 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;
"Zone" chỉ định tên và dung lượng (tính bằng Megabyte trong trường hợp này) của không gian bộ nhớ, nơi lưu trữ yêu cầu của người dùng. "Rate" thiết lập 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). Hãy coi code này như một quy tắc và phần theo sau là việc sử dụng quy tắc đó:
limit_req zone=speedbump burst=20;
Code trên thực sự làm nhiều thứ hơn một chút so với việc chỉ thực hiện 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 để xử lý nhẹ nhàng các kết nối hợp pháp, hiển thị nhanh hơn một chút so với bình thường, vượt quá cả quy tắc và hàng đợi dẫn đến lỗi 503 cho máy khách. Cả hai directive trông giống như sau trong nginx.conf:
Cả hai directive trông giống như sau trong nginx.conf

Lập danh sách đen địa chỉ IP

Nếu có được địa chỉ IP đang thực hiện tấn công DDoS máy chủ của mình, bạn chỉ cần đưa nó vào danh sách đen và loại bỏ bất kỳ kết nối nào có nguồn gốc từ địa chỉ IP này.
Thêm code sau vào directive 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 file nhất định

Nếu cuộc tấn công DDoS đang nhắm mục tiêu vào một số file nhất định trên máy chủ của bạn - ví dụ file xmlrpc.php trên WordPress (đây là file thường bị nhắm mục tiêu trong hầu hết các máy chủ WordPress), bạn có thể chặn tất cả các yêu cầu đối với nó. Thêm code này vào directive máy chủ của bạn:
location /xmlrpc.php {   deny all;   }
Thực hiện theo quy trình trên và bạn sẽ có thể hạn chế hầu hết các cuộc tấn công DDoS. Hãy chắc chắn kiểm tra tài liệu Nginx để biết các tùy chọn bảo mật bổ sung mà bạn có thể áp dụng.
Chúc bạn thực hiện thành công!
Khóa đào tạo Power BI phân tích báo cáo để bán hàng thành công


Khóa học AutoIt dành cho dân IT và Marketing chuyên nghiệp

Khóa học hướng dẫn sử dụng Powerpoint từ đơn giản đến phức tạp HIỆU QUẢ
Khóa học Thiết kế, quản lý dữ liệu dự án chuyên nghiệp cho doanh nghiệp bằng Bizagi
 Khoa hoc hay
Khóa học Phân tích dữ liệu sử dụng Power Query trong Excel
Khóa học Phân tích dữ liệu sử dụng TableAU - Chìa khóa thành công!
Nhấn vào đây để bắt đầu khóa học

Khóa học "Thiết kế bài giảng điện tử", Video, hoạt hình 
kiếm tiền Youtube bằng phần mềm Camtasia Studio
Khóa học HƯỚNG DẪN THIẾT KẾ VIDEO CLIP CHO DÂN MARKETING CHUYÊN NGHIỆP
 Xây dựng website​​​​
HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA
Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
 Khoa hoc hay
http://hoc.elearninghaiphong.com/main/noidungkhoahoc/15



GOOGLE SPREADSHEETS phê không tưởng
 Khoa hoc hay
Khóa hoc lập trình bằng Python tại đây

Hacker mũ trắng




Hãy tham gia khóa học để biết mọi thứ

Để tham gia tất cả các bài học, Bạn nhấn vào đây 
Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
 Khoa hoc hay
http://hoc.elearninghaiphong.com/main/noidungkhoahoc/71

Khóa học sử dụng Edmodo để dạy và học hiện đại để thành công

Tham gia nhóm Facebook


Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCAJ8Zn9hgWCefbt65CP0cSQ/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn