GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Maximale TCP-Verbindungen zu Webservern begrenzen

In Windows XP SP2 und Windows Vista haben viele Benutzer nach einem gepatchten tcpip.sys-Hack oder Auto-Patcher gesucht, der das TCP/IP-Limit für halboffene gleichzeitige Verbindungen ohne Obergrenze aufhebt. Bei einem Webserver, der dem Internet ausgesetzt ist, kann der umgekehrte Fall zutreffen, wo es erforderlich sein kann, die maximale Anzahl eingehender TCP-Verbindungen zu einem Webserver, die gleichzeitig zulässig sind, zu begrenzen und einzuschränken.

Die Begrenzung der maximal eingehenden TCP-Webverbindungen zum Webserver ist nützlich, um DDoS- (Distributed Denial of Service) oder DoS- (Denial of Service) Angriffe zu verhindern oder besser noch zu stoppen. DDoS-Angriffe können eine enorme Menge an Systemressourcen und CPU-Last verbrauchen, die Bereitstellungszeit der Webseite oder die Reaktionszeit für legitime Besucher verlangsamen. Und im schlimmsten Fall kann der Angriff den Webserver aufhängen und vollständig zum Erliegen bringen, selbst wenn Sie einen dedizierten Dual-Quad-Core-CPU-Server mit mehreren GB Arbeitsspeicher haben.

Um Denial-of-Service-Angriffe zu verhindern und darauf zu reagieren, ist es neben der Verwendung von Firewall- oder SYN-Cookies auch möglich, die Anzahl der TCP-Verbindungen zu begrenzen, die der Server pro Sekunde akzeptieren kann. Das Konzept kann auch angewendet werden, wenn eine Webseite gegraben, gestolpert oder gefarkt wird, was in kurzer Zeit eine große Anzahl von Zuschauern bringt. Diese Problemumgehung soll jedoch nur dafür sorgen, dass der Server „überlebt“ und nicht durch eine große Anzahl von Verbindungen vollständig zum Erliegen kommt. Und die Einschränkung gilt auch für gültige menschliche Besucher der auf dem Server gehosteten Websites, wenn die Einschränkung ihre Grenze erreicht und neue Verbindungen aktiv verweigert.

Der Administrator kann iptables verwenden, um die maximal zulässige Anzahl von TCP-Verbindungen zum Server pro Sekunde festzulegen. Um das Limit zu konfigurieren, melden Sie sich als root an der Shell an und führen Sie die folgenden Befehle aus, wobei Sie ersetzen mit der Anzahl der Verbindungen pro Sekunde, die Sie festlegen möchten, und mit der Burst-Rate, die der Server mit der Anwendung des Limits beginnen soll, beides ohne Klammern.

iptables -t nat -N syn-flood

iptables -t nat -A syn-flood -m limit –limit <n>/s –limit-burst <m> -j RETURN

iptables -t nat -A syn-flood -j DROP

iptables -t nat -A PREROUTING -i $EXT_IFACE -d $DEST_IP -p tcp –syn -j syn-flood

Die obigen Befehle begrenzen die maximale Anzahl von TCP-Verbindungen, die eine Verbindung zum Webserver herstellen können, auf n Verbindungen pro Sekunde, nach m Verbindungen wurden hergestellt. Es gibt keine feste Zahl für die Anzahl der Verbindungen, die Sie einstellen können. Wenn der Server leistungsfähig ist, ist es möglich, die zu handhabenden Werte zu erhöhen und mehr Verbindungen zu akzeptieren, um Drop-Verbindungen zu reduzieren. Versuchen Sie, die besten Werte für Ihren Server einzustellen.


Linux
  1. Optimieren von Apache Web Server Keepalive

  2. Erstellen Sie OnMetal Cloud-Server

  3. Untersuchen Sie kompromittierte Server

  4. Überblick über den OnMetal Cloud-Server

  5. TCP-Verbindungen ohne tcpdump ausgeben

So konfigurieren Sie einen Apache-Webserver

Was ist Apache? Ein ausführlicher Überblick über den Apache-Webserver

So synchronisieren Sie zwei Webserver unter Linux automatisch

Index der Webmin-Server

So richten Sie einen Heimserver ein

Soft-Limit vs. Hard-Limit?