Κοινή χρήση τεχνολογίας

[Κοινή χρήση HBZ] Πώς να αποφύγετε επιθέσεις πλημμύρας TCP

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Η αρχή της συμβατικής πλημμυρικής επίθεσης

  1. Όταν η δεύτερη χειραψία TCP δημιουργεί μια ημι-σύνδεση, μπορεί να ξεκινήσει μια επίθεση πλημμύρας αυτήν τη στιγμή
  2. Δηλαδή, ένας μεγάλος αριθμός αιτημάτων εκκινεί συνδέσεις TCP Κατά τη διάρκεια της δεύτερης χειραψίας, ο διακομιστής θα βάλει αυτά τα αιτήματα στην ουρά ημι-σύνδεσης Δεδομένου ότι αυτοί οι κακόβουλοι πελάτες δεν θα επιβεβαιώσουν την τρίτη χειραψία. Απελευθέρωση, ο διακομιστής θα περιμένει μέχρι το όριο λήξης.

Πώς να λύσετε τις πλημμυρικές επιθέσεις γενικά

  1. Όταν είναι ενεργοποιημένη η λειτουργία syncookies, ο διακομιστής θα υπολογίσει μια τιμή κατακερματισμού (SHA1) με βάση (διεύθυνση πηγής, θύρα προέλευσης, διεύθυνση προορισμού, θύρα προορισμού, κ.λπ.) και έναν τυχαίο αριθμό κατά την πρώτη χειραψία και, στη συνέχεια, τη δεύτερη χειραψία Θα χρησιμοποιήσει αυτό Τα συγχρονισμένα cookies επιστρέφονται στον πελάτη Όταν ο πελάτης επιβεβαιώσει την τρίτη χειραψία, θα στείλει τα syncookies στον διακομιστή καθιερωμένος.
  2. Το πλεονέκτημα αυτής της προσέγγισης: Όταν ο διακομιστής δεν λαμβάνει ή τα λαμβανόμενα syncookies δεν ταιριάζουν, η σύνδεση TCP δεν θα δημιουργηθεί. Και όταν χρησιμοποιείτε syncookies, ο διακομιστής δεν θα διατηρήσει την ουρά ημι-σύνδεσης, δηλαδή, δεν υπάρχει κατάσταση ημι-σύνδεσης Επειδή χρησιμοποιώντας τα syncookies για σύγκριση, δεν υπάρχει ανάγκη για ημι-σύνδεση, επομένως αποφεύγει την ουρά ημι-σύνδεσης. γεμίζει και εμποδίζει τη λήψη νέων συνδέσεων.

Σενάρια που τα syncookies δεν μπορούν να επιλύσουν

  1. Όταν εκκινείται ένας μεγάλος αριθμός επιθέσεων DDOS, η μέθοδος syncookies θα παραλύσει επίσης. Επειδή ο υπολογισμός των syncookies καταναλώνει επίσης την απόδοση της CPU, η CPU δεν μπορεί να χειριστεί την τεράστια ποσότητα DDOS αυτήν τη στιγμή, η μόνη επιλογή είναι να αυξήσετε το εύρος ζώνης και να διαμορφώσετε ένα σκληρό όριο.

Άλλες λύσεις

  1. Αυξήστε την ουρά ημι-σύνδεσης και την ουρά πλήρους σύνδεσης (αυτή η μέθοδος είναι βασικά αναποτελεσματική για μαζικές επιθέσεις)
  2. Μειώστε τον αριθμό των αναμεταδόσεων SYN+ACK (το TCP βασίζεται σε αναμεταδόσεις για να διατηρεί σταθερή σύνδεση), δηλαδή, όταν δέχεται επίθεση πλημμύρας από μεγάλο αριθμό αιτημάτων syn, ο διακομιστής θα συνεχίσει να προσπαθεί ξανά εάν δεν μπορεί να λάβει απάντηση μέχρι Μειώστε αυτόν τον μέγιστο αριθμό φορών Θα σας ανακουφίσει

Πώς να ελέγξετε για να διαπιστώσετε εάν έχετε δεχτεί επίθεση από πλημμύρα

1. 先进行流量查看:
sar -n DEV 1 -h

然后只看eth0即可-->用rxkb/s 和 rxpck/s 这两列相除-->如果得出的包就50-60几字节,
那就说明是小包搞鬼,有可能遭受洪水攻击了,一般来说最大MTU = 1460

2. 如果发现是小包搞鬼,那就再进行网络抓包, 输入如下命令
tcpdump -i eth0 -n tcp port 80

3. 看有多少个[S], 这个表示发起TCP请求阶段,如果[S]过多,那就说明是洪水攻击,这是洪水攻击的特征


4. 进一步确认是洪水攻击,查询半连接的池子大小,以及当前半连接数量
半连接总大小: cat /proc/sys/net/ipv4/tcp_max_syn_backlog
当前半连接数: ss -s 或 netstat -n -p | grep SYN_RECV | wc -1



[S]: SYN,开始连接
[P]: PSH, 推送数据
[F]: FIN, 结束连接
[R]: RST, 重置连接
[.]: 没有Flag,可能是ACK 也可能是URG

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24