Cách Kiểm Tra VPS Bị Ddos Và Cách Khắc Phục - Biên Nguyễn

  • Trang chủ
  • Tin tức - sự kiện
  • Kỹ năng
Cách kiểm tra VPS bị ddos và cách khắc phục Cách kiểm tra VPS bị ddos và cách khắc phục, 2 rm_ratings 2 rm_ratings 4.25/5 - Có 2 đánh giá Ngày đăng:09/01/2018 Ngày cập nhật:21/07/2021 Lượt xem:5646

Câu lện trên sẽ trả về hàng loạt IP chiếm nhiều connection nhất trên server. Cần lưu ý rằng DDOS có thể xuất phát từ một lượng nhỏ connection. Do đó việc kết quả trả về connection thấp bạn vẫn có thể trong tình trạng under attack.  

netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Một phương pháp khác:  

netstat -n | grep :80 |wc -l netstat -n | grep :80 | grep SYN |wc -l

Dòng lệnh thứ nhất trả về số lượng active connection (connection đang hoạt động). Rất nhiều kiểu tấn công DDOS bằng cách mở một kết nối connection lên server rồi không làm gì cả khiến cho server chờ đợi cho đến khi timeout. Nến nếu dòng lệnh thứ nhất trả về trên 500 thì server của bạn rất nhiều khả năng bị DDOS. Dòng lệnh thứ 2 trả về kết quả trên 100 thì rất nhiều khả năng server bạn trong tình trang syn attack DDOS. Lưu ý: cách tính trên chỉ là tương đối, một số website có lưu lượng truy cập lớn thì phương pháp detect này có thể không chính xác. Một số phương pháp khắc phục: Cách khắc phục nhanh nhất là block các IP chiếm nhiều connection nhất trong "giờ cao điểm": Cách 1:  

route add địa-chỉ-ip reject

vd: route add 192.168.0.168 reject Kiểm tra bằng lệnh: 

route -n |grep địa-chỉ-ip

Cách 2: sử dụng iptables  

iptables -A INPUT 1 -s địa-chỉ-ip -j DROP/REJECT service iptables restart service iptables save

Sau đó xóa hết tất cả connection hiện hành và khơi động lại service httpd  

killall -KILL httpd service httpd restart

Một số lệnh cơ bản khác – Đếm lượng connection vào Port 80: 

netstat -n | grep :80 |wc -l

– Kiểm tra số lượng connection đang ở trạng thái SYN_RECV:

 

netstat -n | grep :80 | grep SYN_RECV|wc -l

– 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

– 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

– Hiển thị số lượng kết nối mỗi loại

 

netstat -an | grep :80 | awk '{print $6}' | sort | uniq -c

Nó sẽ hiển thị như sau  

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

– 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.

Tiếp đến, chúng ta cần tham khảo về phân tích Log của VPS Chú ý: Demo được thực hiện trên CentMinMod những VPS khác thì thay được dẫn File log nhé Tham khảo thêm: Các dòng lệnh bỏ túi trong Linux Lệnh tail để liệt kê các dòng cuối cùng trong file, ở đây ví dụ là 10 bạn có thể thay đổi thành 100, 1000… tùy theo muốn xem nhiều hay ít. I. Đơn giản Check log chung của Server

tail -10 /usr/local/nginx/logs/access.log tail -10 /usr/local/nginx/logs/error.log

Nếu sử dụng Webserver như VestaCP thì thêm vào 

tail -10 /usr/local/vestacp/nginx/logs/access.log tail -10 /usr/local/vestacp/nginx/logs/error.log

Check log từng Domain:

tail -10 /home/nginx/domains/domainname.com/log/access.log tail -10 /home/nginx/domains/domainname.com/log/error.log

Kiểm tra trong /var/log

ls -lhrt /var/log

Check PHP-FPM

tail -10 /var/log/php-fpm/www-error.log /var/log/php-fpm/www-php.error.log

Kiểm tra log trong cơ sơ dữ liệu MySQL / MariaDB

tail -10 /var/log/mysqld.log

Kiểm tra log trong CSF firewall

tail -10 /var/log/lfd.log

Kiểm tra log trong Mail

tail -10 /var/log/maillog

For Cron job

tail -10 /var/log/cron

II. Nâng cao Lấy tất cả các log trong 1 ngày Ví dụ mình lấy các log trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy log trong nhiều ngày bất kỳ Lấy tất cả các log trong ngày 5/12/2015 và ngày 4/12/2015

grep -w '05/Dec/2015\|04/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy tất cả IP trong file log

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /home/nginx/domains/domain.com/log/access.log

Lấy log trong ngày được và chuyển hướng google Chỉ lấy các dòng có chuổi là “05/Dec/2015” VÀ “google” (Được hiểu là Log của ngày 5/12/2015 và được chuyển hướng từ google)

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra log trong ngày và điều kiện “hoặc” Chỉ lấy các dòng có chuổi là “05/Dec/2015” và “google” HOẶC có chuổi là “04/Dec/2015” và “google”

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra tất cả IP với điều kiện Xuất tất cả các IP được chuyển hướng từ Google được ghi nhận từ ngày 4 và 5/12/2015

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

Xuất số kết nối của IP đến server trong ngày Đếm xem số lần kết nối của một IP được chuyển hướng từ Google trong ngày 5/12/2015

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | soft | uniq -cd | sort -nr

Xuất ra tất cả các IP có >10 kết nối trong ngày Kiểm tra tất cả các IP có > 10 kết nối trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -cd | sort -nr | grep -v '^ *[1-9] '

Xem toàn bộ chuyển hướng từ google trong 1 tháng Xuất ra màn hình toàn bộ log được chuyển hướng từ google tháng 12/2015 nhưng không chứa bot.html

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html'

Xem link có nhiều lượt truy cập nhất trong tháng Link có nhiều lượt truy cập nhất từ google trong tháng 12/2015, không tính bot

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html' | grep -o

 

deposit pulsa

Bài viết liên quan

  • Cây kim tiền hợp mệnh thổ không?
  • Security - Privacy Policy

Từ khóa » Cách Ddos Vps