Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12603|Antwort: 2

[Linux] Sehen Sie, wie mein Linux vor SYN-Angriffen schützt.

[Link kopieren]
Veröffentlicht am 12.12.2015 00:04:58 | | | |

Als ich heute Morgen bei der Firma ankam, fühlte ich mich ziemlich langsam, als ich mich auf der offiziellen Website des Unternehmens anmeldete und mich auf dem Server anmeldete, um den Zugriffsstatus der offiziellen Website zu überprüfen:

[root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn

     172 GEGRÜNDETE U

     59 VERBUNDEN

    589 SYN_RECV

     15 STREAM

Die SYN ist tatsächlich so hoch, dass Sie weiterhin die von diesen IPs gesendeten SYN verfolgen sollten:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sortieren -nr | Mehr

570 x.x.x.x   

(Die IP ist nicht geschrieben, sondern eine IP von Shandong Zaozhuang Unicom), aber diese eine IP hat so viele SYN-Anfragen gesendet, und die Nebenläufigkeit unseres Webservers ist nicht sehr hoch, sodass normale Benutzeranfragen nicht korrespondiert werden können und die Seite nicht geöffnet werden kann. Da die Hardware-Firewall von der IT-Abteilung der Gruppe verwaltet wird, habe ich keine Befugnis, sodass ich nur einige Maßnahmen auf dem lokalen Server ergreifen kann, um den SYN-Angriff teilweise abzumildern.

Zunächst einmal sprechen wir über das Angriffsprinzip von SYN:

Im TCP/IP-Protokoll stellt das TCP-Protokoll zuverlässige Verbindungsdienste bereit, indem es einen Dreifach-Handshake verwendet, um eine Verbindung herzustellen.

Erster Handschlag: Beim Aufbau einer Verbindung sendet der Client ein Syn-Paket (syn=j) an den Server und tritt in den SYN_SEND-Zustand ein, während er darauf wartet, dass der Server bestätigt.

Der zweite Handschlag: Wenn der Server das SYN-Paket erhält, muss er das SYN des Kunden (ack=j+1) bestätigen und außerdem ein SYN-Paket (syn=k), also SYN+ACK-Paket, senden, woraufhin der Server in den SYN_RECV-Zustand eintritt.

Dritter Handschlag: Der Client empfängt das SYN+ACK-Paket vom Server und sendet das Bestätigungspaket ACK (ack=k+1) an den Server. Nach drei Händeschütteln beginnen Client und Server, Daten zu übertragen.


Wenn der Nutzer eine Verbindungsanfrage mit dem Server startet, nur um sich ein zweites Mal die Hand zu schütteln und nicht antwortet, wartet der Server weiter auf die Bestätigung des Nutzers. Wir nehmen also die folgenden Änderungen direkt von der SYN-Verbindung aus vor:

Überprüfen Sie die Standardkonfiguration von SYN unter Linux:

[root@web ~]# sysctl -a | grep _syn

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog ist die Länge der SYN-Warteschlange, und eine Erhöhung der SYN-Warteschlange kann mehr Netzwerkverbindungen ermöglichen, die auf eine Verbindung warten. tcp_syncookies ist ein Schalter, um die SYN-Cookie-Funktion einzuschalten, die partielle SYN-Angriffe verhindern kann. tcp_synack_retries und tcp_syn_retries definieren die Anzahl der Retry-Verbindungen für die SYN und reduzieren die Standardparameter, um die Anzahl der SYN-Verbindungen so weit wie möglich zu steuern.

Im Folgenden habe ich die Parameter geändert, die je nach aktueller Situation meines Servers angepasst werden können:

[root@web ~]# mehr /etc/rc.d/rc.local

#!/bin/sh

# Dieser scrip{filter}t wird *nach* allen anderen init-scrip{filter}ts ausgeführt.

# Du kannst deine eigenen Initialisierungs-Dinge hier einbauen, wenn du das nicht tust.

# Ich möchte den kompletten Sys V-Stil Init machen.

Touch /var/lock/subsys/local

ulimit -HSn 65535

/usr/local/apache2/bin/apachectl start

#####

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

Damit die Konfiguration sofort in Kraft tritt, ohne den Server neu zu starten, kann sie durchgeführt werden

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

Manche Leute nutzen gerne Zugriffslisten, um SYN-Angriffe zu verhindern, was SYN-Angriffe bis zu einem gewissen Grad verlangsamt:

Syn-Flut-Angriff

#iptables -A INPUT -p tcp --syn -m Limit --limit 1/s -j AKZEPTIEREN

--Begrenzung von 1/s die Anzahl der Syn-Konkurrenz auf 1 Mal pro Sekunde begrenzt

Anti-Port-Scannen

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j AKZEPTIEREN

Ping des Todes

# iptables -A FORWARD -p icmp --icmp-Typ Echo-Anfrage -m Limit --limit 1/s -j ACCEPT

#>iptables-save >/etc/sysconfig/iptables

Um zu sehen, #iptables -L

AKZEPTIERE TCP – überall überall TCP-Flags: FIN,SYN,RST,ACK/SYN Limit: Durchschnitt 1/Sekunde Burst 5

AKZEPTIERE TCP – überall überall TCP-Flags: FIN,SYN,RST,ACK/RST Limit: Durchschnitt 1/Sekunde Burst 5

AKZEPTIERE ICMP – Anywhere anywhere ICMP Echo-Anfrage-Limit: Durchschnitt 1/Sekunde Burst 5

Überprüfen Sie erneut die Syn-Verbindung:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sortieren -nr | Mehr

     20 10.92.10.220

      1 125.43.36.199

Offensichtlich ist die Anzahl der SYN-Verbindungen zurückgegangen.






Vorhergehend:"Entschuldigung, du installierst keine echte App, der Installer kann nicht weiter Discuz ausführen"-Workaround
Nächster:SC Create erstellt einen Windows-Systemdienst
Veröffentlicht am 13.12.2015 10:53:04 |
Was für ein kraftvoller Look
Veröffentlicht am 14.12.2015 15:55:43 |
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com