Các lệnh kiểm tra server khi bị DDoS trên Linux

Tấn công DDoS (Distributed Denial Of Service) là dạng tấn công làm cho hệ thống máy tính hay hệ thống mạng hao tốn tài nguyên dẫn đến quá tải, không thể cung cấp dịch vụ hoặc phải dừng hoạt động. Khi bị tấn công DDoS, máy chủ dịch vụ sẽ bị “ngập” bởi hàng loạt các lệnh truy cập từ lượng kết nối khổng lồ từ nhiều máy tính (Zombie) ở nhiều nơi khác nhau.

Khi số lệnh truy cập quá lớn, máy chủ sẽ quá tải và không còn khả năng xử lý các yêu cầu. Hậu quả là người dùng không thể truy cập vào các dịch vụ trên các trang web bị tấn công DDoS.

Trong bài viết này mình xin chia sẻ lại bài của BKNS, giới thiệu các lệnh kiểm tra server khi bị DDoS trên Linux.

– Lệnh đếm lượng connection vào Port 80:
netstat -n | grep :80 |wc -l

– Lệnh  kiểm tra số lượng connection đang ở trạng thái SYN_RECV:
netstat -n | grep :80 | grep SYN_RECV|wc -l

– Lệnh hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:
netstat -an|grep :80 |awk ‘{print $5}’|cut -d”:” -f1|sort|uniq -c|sort -rn

– Nếu muốn kiểm tra IP nào mở nhiều SYN thì thêm vào:
netstat -an|grep :80|grep SYN |awk ‘{print $5}’|cut -d”:” -f1|sort|uniq -c|sort -rn

– Đối với server có nhiều IP, để kiểm tra IP nào đang bị tấn công:
netstat -plan | grep :80 | awk ‘{print $4}’| cut -d: -f1 |sort |uniq -c

– Lệnh hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:
netstat -an | grep ‘:80’ | awk ‘{print $5}’ | sed s/’::ffff:’// | cut -d”:” -f1 | sort | uniq -c

– Lệnh hiển thị số lượng kết nối mỗi loại
netstat -an | grep :80 | awk ‘{print $6}’ | sort | uniq -c

61 ESTABLISHED
13 FIN_WAIT1
17 FIN_WAIT2
1 LISTEN
25 SYN_RECV
298 TIME_WAIT

– Lệnh hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP
watch “netstat -an | grep ‘:80’ | awk ‘{print \$5}’ | sed s/’::ffff:’// | cut -d\”:\” -f1 | sort | uniq -c”
watch “netstat -an | grep :80 | awk ‘{print \$6}’ | sort | uniq -c”
Khi đã phát hiện IP có dấu hiệu bất thường, bạn có thể sử dụng CSF để block IP đó lại.

Add a Comment

Your email address will not be published. Required fields are marked *