Giải pháp để kiểm tra nếu server của bạn đã bị tấn công.

June 22, 2019
bash linux http

Khi server đã bị tê liệt vì tiêu tốn quá nhiều tài nguyên bởi cuộc tấn công. vậy giải pháp để bạn khách phục sẽ là gì. Dưới đây là một vài giải pháp mình đã tham khảo được để giảm thiểu các vấn đề này.

Dưới đây là 1 vài cách thức để giúp bạn kiểm tra số lượng connection tới server của bạn khi bạn cảm thấy server quá tải trì ệ, tê liêt.

Đếm lượng connection vào các port web 80, 443..

netstat -n | grep :80 |wc -l
# Output
# 2034

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

netstat -n | grep :80 | grep SYN_RECV|wc -l
# Output
# 1034

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
# Output
# 1012 14.177.107.xxx
# 28 14.177.107.xxx
# 1 32.109.222.xxx
# 7 83.102.152.xxx
# ...
netstat -an | grep ':80' | awk '{print $5}' | sed s/'::ffff:'// | cut -d":" -f1 | sort | uniq -c
# Output
# 1012 14.177.107.xxx
# 28 14.177.107.xxx
# ...

Nếu bạn muốn kiểm tra IP nào mở nhiều SYN

netstat -an|grep :80|grep SYN |awk '{print $5}'|cut -d":" -f1|sort|uniq -c|sort -rn
# Output
# 1012 14.177.107.xxx

Nếu bạn sử dụng nhiều server muốn kiểm tra địa chỉ server nào đang bị tấn công

netstat -plan | grep :80 | awk '{print $4}'| cut -d: -f1 |sort |uniq -c
# Output
#   1
#   1012 14.177.107.xxx
#   1 45.32.240.xxx

Khi đã kiểm tra và xác định có dấu hiệu nghi vấn việc cần làm của bạn là block ngay lập tức IP đó lại

route add 14.177.107.xxx reject

Sau đó hãy restart lại tất các các connection đang diễn ra bằng cách restart web server của bạn

service nginx restart

Đây là các giải pháp nhằm mục đích chống tấn công nhanh chóng để khắc phục khi server của bạn bị tê liệt. Hi vọng nó sẽ giúp ích phần nào cho các bạn.