Nếu bạn sử dụng VPS gặp đột nhiên website gặp tình trạng treo , lag bất thường hoặc không truy cập vào được thì bạn có thể kiểm tra máy chủ của bạn bị tấn công DDOS .
Trong bài viết này MDSCO giới thiệu một số dòng lệnh thường hay sử dụng trong SSH để check xem website đang bị DDOS hay không.
DDoS là gì?
DDoS hoặc từ chối dịch vụ là cuộc tấn công phối hợp sử dụng một hoặc nhiều địa chỉ IP được thiết kế để làm tê liệt một trang web bằng cách làm cho máy chủ bị sập không thể truy cập được. Điều này được thực hiện bằng cách làm quá tải tài nguyên của máy chủ và sử dụng hết tất cả các kết nối, băng thông có sẵn. Giống như khi lái xe, thời gian di chuyển của bạn từ điểm A đến điểm B sẽ chậm hơn nếu có quá nhiều xe cộ. Bằng cách làm ngập một máy chủ với nhiều kết nối hơn nó có thể xử lý, máy chủ không thể xử lý các yêu cầu hợp pháp. Ngay cả các máy chủ vật lý cũng không thể xử lý hết số lượng kết nối.
Mặc dù có nhiều cách khác nhau để thực hiện tấn công DDoS, HTTP floods , SYN Flood, UDP Flood , SYN Flood … cho đến Slowloris nhưng hầu như tất cả đều phải kết nối tới máy chủ của bạn.
Bởi vì những kết nối tới máy chủ của bạn nên bạn có thể kiểm tra và chặn các IP không hợp lệ đi ngay lập tức.
Cách kiểm tra DDoS
Nếu bạn lo lắng rằng máy chủ của mình có thể bị tấn công DDoS, điều đầu tiên bạn cần làm là xem xét tải trên máy chủ của mình như tài nguyên CPU , RAM số lượng kết nối đồng thời tới server
Bạn có thể sử dụng lệnh grep processor /proc/cpuinfo | wc -l để xem core của VPS và sử dụng lệnh uptime kiểm tra thời gian uptime của máy chủ
Cách kiểm tra IP nào đang kết nối với máy chủ của bạn
Vì hầu hết các cuộc tấn công DDoS yêu cầu kết nối với máy chủ của bạn, bạn có thể kiểm tra và xem có bao nhiêu và địa chỉ IP nào đang kết nối với máy chủ của bạn cùng một lúc. Điều này có thể được xác định bằng cách sử dụng netstat, một lệnh được sử dụng để cung cấp tất cả các cách thức chi tiết. Tuy nhiên, trong trường hợp này, chúng tôi chỉ quan tâm đến các IP cụ thể tạo kết nối, số lượng IP và có thể là các mạng con mà chúng là một phần của nó. Để bắt đầu, hãy nhập lệnh sau vào SSH
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
Như hình phía dưới bạn có thể thấy, chỉ với 1 IP (54.238.7.243) mà có tận 1153 kết nối tới VPS và 1 số IP độc hại phía dưới cũng cho kết nối khá nhiều tới VPS
Bình thường, số lượng kết nối nhỏ hơn 50 là điều bình thường nhưng IP có hơn 100 kết nối thì bạn nên xem xét chặn vì website của bạn đang bị tấn công.
Chặn IP bằng cách sử dụng iptables
Bạn có thể dễ dàng block IP 54.238.7.243 với iptables bằng lệnh
iptables -I INPUT -s 54.238.7.243 -j DROP/REJECT
Khởi động lại iptables bằng lệnh
service iptables restart
Lưu iptables
service iptables save
Sau khi nhập mấy lệnh trên, bạn sẽ cần phải hủy tất cả các kết nối httpd và khởi động lại các dịch vụ httpd bằng cách dùng lênh:
killall -KILL httpd service httpd startssl
DDoS sử dụng nhiều IP
Với cách thức tấn công IP mà cho nhiều kết nối tới server thì chặn phát là khỏe re tuy nhiên các hình thức tấn công phức tạp sử dụng nhiều IP riêng lẽ hoặc các IP dạng Subnet mask thì khó khăn hơn để bạn xác định IP tấn công.
Bạn sẽ muốn xác định xem những kết nối này đến từ các mạng con chung thì có thể sử dụng hai lệnh dưới đây để liệt kê các mạng con chứa các IP được kết nối và có bao nhiêu IP trong mỗi mạng con.
Để tìm các IP từ cùng một mạng con /16 (xxx.xxx.0.0), hãy sử dụng:
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2,3 -d'.'|sed 's/$/.0/'|sort|uniq -c|sort -nk1 -r
Khi nhập lệnh này sẽ hiển thị bất kỳ IP nào bắt đầu bằng hai octet giống nhau: tức là 192.168.xxx.xxx
Để tìm các IP từ cùng một mạng con /24 (xxx.xxx.xxx.0), hãy sử dụng:
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2,3 -d'.'|sed 's/$/.0/'|sort|uniq -c|sort -nk1 -r
Khi nhập lệnh này sẽ hiển thị bất kỳ IP nào bắt đầu bằng hai octet giống nhau: tức là. 192.168.1.xxx
Chặn các cuộc tấn công DDOS không phải là đơn giản bạn có thể sử dụng 1 số dịch vụ trung gian để hạn chế các cuộc tấn công DDOS , Cloudflare là 1 dịch vụ mà bạn có thể tham khảo.