Saturday, 18 May 2013

Kiểm tra server bị tấn công DDOS trong Linux








netstat -an | grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' | sort -n| uniq -c | sort -n

--> xem ip với nhiều request



netstat -ant | grep SYN
 
--> request với syn

csf -d xxxx.xxxx.xxxx.xxx

---block ip

- Kiểm tra số connection trên port 80:
Mã:
netstat -n | grep :80 |wc -l
- Kiểm tra số lượng connection đang ở trạng thái SYN_RECV:
Mã:
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:
Mã:
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:
Mã:
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:
Mã:
netstat -plan  | grep  :80 | awk '{print $4}'| cut -d: -f1 |sort |uniq -c
Bài viết trên sẽ có vài trường hợp ra kết quả không đúng nếu như sử dụng kernel mới , IP có dạng '::ffff:192.168.1.1:80' . Để tổng quát hơn các bạn nên dùng như sau cho mọi trường hợp :

- 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:
Mã:
[root@localhost~]# netstat -an | grep ':80' | awk '{print $5}' | sed s/'::ffff:'// | cut -d":" -f1 | sort | uniq -c
Đồng thời mình bổ xung thêm :
- Hiển thị số lượng kết nối mỗi loại (kiểm tra xem có phải bị SYN_FLOOD hay DDoS hay ko) :
Mã:
root@localhost [~]# 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

Trong trường hợp đang bị tấn công , cần phải quan sát các tham số trên một các real time => dùng lệnh 'watch' :

- 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:
Mã:
[root@localhost~]#watch  "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 :
Mã:
root@localhost [~]# watch "netstat -an | grep :80 | awk '{print \$6}' | sort | uniq -c"

No comments:

Post a Comment