Wie kann die Anzahl der Sitzungen begrenzt werden?

8

Ich brauche eine Möglichkeit, Web-Sitzungen zu verfolgen und auf eine Web-App zu beschränken. Eine "Sitzung" ist lose definiert als der einzelne Benutzer, der die Seiten dieser Web-App durchsucht. Ich denke, es kann übersetzt werden in:

  • Eine Sitzung wird als Tupel definiert, <clientIP,vHost>alternativ als <clientIP,serverIP,serverPort>oder <cookie,vHost>, abhängig von der Ebene und den verfügbaren Daten
  • Eine Sitzung wird gestartet, nachdem der Benutzer Authentifizierungsdaten an einen definierten Anmelde-URI gesendet hat
  • Eine Sitzung wird beendet, nachdem der Benutzer den definierten Abmelde-URI erreicht hat
  • Eine Sitzung wird beendet, wenn ein bestimmtes Zeitlimit abgelaufen ist, nachdem der Client das letzte Objekt angefordert hat

Nachdem das angegebene Sitzungslimit erreicht wurde, sollte der nächste Benutzer zu einer benutzerdefinierten Fehlerseite weitergeleitet werden. Ich brauche auch eine Möglichkeit, die aktuelle Anzahl von Sitzungen zu Überwachungszwecken zu verfolgen und den Überwachungsserver (der regelmäßig Abfragen an die Webanwendung ausgibt) auf die Whitelist zu setzen und ihn vom Limit auszunehmen.

Womit ich arbeiten kann:

  • RadWare AppDirector, in dem für die Webanwendung eine eigene Farm definiert ist und die im Reverse-Proxy-Modus ausgeführt wird
  • Apache 2.2
  • SLES 11 SP2

Ich würde es vorziehen, keinen zusätzlichen Proxyserver einzubeziehen, würde es aber in Betracht ziehen, wenn keine anderen Optionen übrig bleiben.

Der Grund dafür ist, dass die oben genannte Web-App leicht überlastet wird und Anfragen unregelmäßig ablehnt, was arbeitende Benutzer verärgert, die (normalerweise) Formulareingabedaten verlieren. Durch die Angabe eines Grenzwerts, bei dem eine Überlastbedingung weniger wahrscheinlich ist, möchten wir eine genau definierte Fehlerbedingung schaffen, bei der Benutzer aufgefordert werden, später zurückzukehren, wenn die Last wahrscheinlich ansteigt.

Bearbeiten : Die Webanwendung ist eine dreistufige Implementierung, wobei die erste Ebene (Präsentationsschicht, implementiert als CGI-Code in einem Apache vHost) eher simpel ist und sich anscheinend auf die grundlegende Fehlerbehandlung und den Lastausgleich zwischen den Anwendungsservern beschränkt. Die Webserver, auf denen es ausgeführt wird, werden nicht wesentlich belastet. Aus diesem Grund wird es in der AppDirector-Farm im Failover-Modus (kein Lastausgleich) ausgeführt, was die Dinge etwas vereinfachen soll.

Alles, was über diesen Punkt hinausgeht, ist für uns im Grunde genommen eine Black Box - auf der Datenebene haben wir eine MSSQL-Datenbank, aber es ist nahezu unmöglich, vom Anbieter aussagekräftige Informationen über die Tabellenstruktur zu erhalten. Die Anwendungsserver sind Closed-Source-Server, der Anbieter hat ein ziemlich umfassendes Framework für die Implementierung verwendet, scheint jedoch nicht in der Lage zu sein, noch weniger komplexe betriebsbezogene Fragen zu beantworten.

the-wabbit
quelle
Können Sie allgemeine Details zur Web-App bereitstellen? Ist es auf jedem vHost gleich? Oder haben Sie die Details nicht angegeben, weil Sie möglicherweise eine Lösung wünschen, die von der Web-App unabhängig ist? Ist es eine proprietäre Web-App?
lsmooth
Kann jemand nach dem Schließen der Verbindung aufgrund von Inaktivität eine Sitzung mit dem Sitzungscookie fortsetzen (wenn das Zeitlimit der Anwendung nicht erreicht wurde)?
Manjiki
@jijix Dies ist ein Grenzfall, der als selten genug angesehen wird, um sich nicht darum zu kümmern, wenn er die Komplexität der Implementierung erhöht. Abgesehen davon kann es meiner Meinung nach am besten als "Sitzung erneut starten, ohne die Sitzungslimits zu überprüfen" angegeben werden .
The-Wabbit
Normalerweise zähle ich dazu "typische" URLs im httpd-access-log. Was ist die grobe gleichzeitige Zahl, über die wir hier sprechen? Vielleicht hilft hier auf der httpd-Seite ein Thread-Limit?
Nils
Ich weiß, dass HAProxy die Anzahl der Verbindungen begrenzen kann. Aber Sie fragen etwas anderes ...
Matt

Antworten:

5

Das Problem, das Sie letztendlich zu lösen versuchen, liegt in der Kapazität der Anwendung - und hier sollten Sie das Problem lösen. Keine der von Ihnen genannten Komponenten hat etwas mit der Sitzungsverwaltung für eine HTTP-Anwendung zu tun .

Es gibt einige Tricks, die Sie mit dem aktuellen Modul in iptables oder der Verwendung von fail2ban in umgekehrter Weise zu dem Zweck anwenden können, für den es entwickelt wurde. Beide erfordern jedoch ein sehr detailliertes Verständnis der Tools und der Problemdomäne. Sie könnten Zugriffskontrolle auf der Ebene dieser Komponenten implementieren , sondern getrieben von veröffentlichten Statusinformationen aus der Anwendung auf der Anzahl der Sitzungen.

Ich brauche auch eine Möglichkeit, die aktuelle Anzahl von Sitzungen zu Überwachungszwecken zu verfolgen

Unter der Annahme, dass es sich bei der Anwendung vorerst um eine Black Box ohne Änderungs- / Instrumentierungsspielraum handelt (was höchst unwahrscheinlich ist), können Sie diese Informationen aus Ihren Apache-Protokollen abrufen, indem Sie den Sitzungs-Cookie-Filter hinzufügen oder die Protokolle beenden, um a zu verwalten Liste der aktiven Cookies - und entfernen Sie Einträge aus der Liste, wenn sie mit der Abmelde-URL übereinstimmen oder für die TTL nicht angezeigt wurden.

symcbean
quelle
Vergiss meine Fragen oben, genau darum ging es mir.
lsmooth
Sind Sie sicher, dass RadWare AppDirector dieses Problem zumindest bei längerer Behandlung nicht lösen kann? - Die Sitzungssteuerung wird angefordert, um eine Knotenüberlastung zu verhindern, die auf andere Weise erreicht werden kann.
Veniamin
Nein, ich bin mir nicht sicher - wie ich oben sagte, können Sie das Sitzungsmanagement an anderer Stelle im Stapel verfälschen -, aber es ist viel, VIEL schwieriger, es am falschen Ort auszuführen . Das Problem dort zu beheben, wo es auftritt, ist viel einfacher.
Symcbean
Wenn Sie der Meinung sind, dass der richtige Ort für die Sitzungsverwaltung ein Modul ist, das in die Anwendung oder anderswo auf Knotenbasis integriert ist, ist nicht klar, wie es mit dem Lastausgleich auf AppDirector-Ebene zusammenarbeitet.
Veniamin
Die Idee, die Apache-Protokolle für die Sitzungsverfolgung zu verwenden, hat einige Vorteile. Übrigens - Sie wissen, ich habe die App nicht geschrieben und habe wenig (wenn überhaupt) Einfluss auf die weitere Entwicklung. Es war nicht meine Entscheidung, es einzurichten, meine Autorität beschränkt sich auf die Infrastruktur, in der es ausgeführt wird. Der Punkt, dass die Anwendung nicht optimal ist, wurde dem Management klar gemacht, aber selbst wenn dies etwas ändern könnte, würde sich jede Änderung ändern Nehmen Sie sich viel Zeit. Meine derzeitige Aufgabe ist es also, eine Betriebsart zu finden, die so gut wie möglich ist.
The-Wabbit
1

Dies ist nicht genau das, wonach Sie fragen, aber ich habe bereits Folgendes mit F5-Load-Balancern gemacht:

  • Zählen Sie die Anzahl der Post-Anfragen auf der Anmeldeseite.
  • Verzögern Sie Benutzer, wenn die Anmeldungen pro Sekunde über einem ersten Grenzwert liegen
  • Senden Sie Benutzer zu einer Wartungsseite, wenn die Anmeldungen pro Sekunde über einem zweiten Grenzwert liegen

Da die Website manchmal stark ausgelastet war (Pferderennen), hat es geholfen.


quelle
Vielen Dank für die Idee, ich muss mich bei unseren AppDirector-Mitarbeitern erkundigen, ob wir etwas Ähnliches implementieren können.
The-Wabbit
@ syneticon-dj: Wenn Sie überprüfen müssen, ob Sie so etwas implementieren können (was das Problem nicht wirklich löst, übrigens) und Sie die Anwendung nicht reparieren können, dann sind Sie wirklich in einem Haufen Probleme. Nachdenklich kann ich mir mindestens zwei weitere Möglichkeiten vorstellen, um das Problem zu lösen - aber beide sind technisch anspruchsvoll - und falsch implementiert wird das Problem eher verschlimmern als verbessern. Sie brauchen mehr Hilfe als Sie hier bekommen.
Symcbean
@symcbean Nichts, was ich tun kann, wird das Problem lösen. Dies ist die mangelnde Qualifikation der Entwickler und Supportmitarbeiter des Anbieters und die Entscheidung, diese Anwendung in deren Unwissenheit zu verwenden. Wenn Sie andere Ideen haben, würde ich mich freuen, davon zu hören. "Anfordern" ist kein Problem, solange es die Komplexität im täglichen Betrieb nicht erhöht.
The-Wabbit
1

Dieses Problem kann sowohl mit dem RadWare AppDirector als auch (der Vollständigkeit halber) wahrscheinlich auch mit Apache mod_security gelöst werden, wie in dem Kommentar unten angegeben.

Für eine AppDirector-Lösung ist es meines Erachtens möglich, zwei Farmen zu erstellen, die denselben Backend-Servern zugeordnet sind. Auf diese Betriebe können unterschiedliche Kriterien und Betriebsbedingungen angewendet werden. Eine Farm wäre die "Standardeinstellung" und die andere würde auf URI: s antworten, die Sie als "Sitzung" definieren. Letzteres würde die Anzahl der Sitzungen, die im Load Balancer akzeptiert werden, begrenzen.

Ich werde von nun an aus zwei Gründen Ihren Begriff "Sitzung" durch "angemeldet" ersetzen:

  • Es vermeidet Mehrdeutigkeiten, da es den gewünschten Zustand klar definiert, in dem der Benutzer authentifiziert wird.
  • Das AppDirector-Benutzerhandbuch und die GUI definieren den Begriff "Verbindung" neu, um für alle praktischen Zwecke eine Bedeutung zu haben, die mit "Sitzung" identisch ist (siehe unten). Dies fügt Verwirrung hinzu, die wir zu vermeiden versuchen.

Es ist auch möglich, eine traurige Seite anzuzeigen, wenn die "angemeldete" Farm das ausgewählte Verbindungslimit erreicht hat.

Bevor ich zum Wie komme, muss ich klar sagen, dass ich keine Betriebserfahrung mit dem AppDirector-Produkt habe, aber täglich einen konkurrierenden und etwas weniger fortgeschrittenen Load Balancer verwalte. Das Produkt, das ich verwende, kann dieses Szenario sofort ausführen. Ich habe Informationen im AppDirector-Benutzerhandbuch gefunden und festgestellt, welche Online-Dokumentation verfügbar ist, was darauf hindeutet, dass dies auch für den AppDirector gilt. Obwohl die Konzepte ähnlich sind, unterscheidet sich die Terminologie. Ich mache einfach einen When-in-Rome-Akt in Bezug auf die Formulierung, in der Hoffnung, es ziemlich richtig zu machen, ohne zu offensichtlich ein ahnungsloser Idiot zu sein.

Die größte Hürde bestand darin, Zugang zu einem Handbuch zu erhalten, das nur zur Verfügung gestellt wird, wenn man ein aktiver Kunde ist. Durch ein bisschen googeln war es möglich, eine alte Version zu finden, von der ich hoffe, dass sie nicht zu veraltet ist. Ich habe auch ein paar Knowledgebase-Artikel und diesen Link gefunden: Radware AppDirector - Konfiguration: Basisanwendung .

Hier ist ein Lösungsentwurf, der hauptsächlich im Benutzerhandbuch interpretiert wird:

Die Client-Eingabe für den Load Balancer erfolgt über einen VIP, mit dem sowohl die "Standard" -Sitzungen als auch die "angemeldeten Sitzungen" verbunden werden. Dies wird durch eine L4-Richtlinie gemäß S.99 im Benutzerhandbuch erreicht:

"When AppDirector receives the first packet of a session destined to a
Virtual IP address, it searches for a Layer 4 Policy that matches the
Layer 4 Protocol, Destination port, Source IP, etc. Then, based on this
information, AppDirector selects the farm allocated to this service and
the best server for the task from that farm, and forwards the packet to
that server.

Die L4-Richtlinie kann an L7-Richtlinien gebunden werden, mit denen eine geeignete Farm ausgewählt wird. Der L7-Richtlinienprozess wird folgendermaßen im Benutzerhandbuch S.104 beschrieben:

"The Layer 7 content aware decision making mechanism allows you to have
a single point of entry to the site, and provides differentiated service
for different user groups.

A Layer 7 decision is made using a mechanism called Delayed Binding.
When Delayed Binding is used, AppDirector first performs a TCP handshake
with the client to receive the HTTP request. AppDirector parses the HTTP
request’s data, usually HTTP headers, and performs the load balancing
decision. Only after that, does AppDirector select a farm and a server.
Lastly, AppDirector initiates a TCP handshake with the server and
forwards the traffic to it
[...]
When Layer 7 Policies are used, farm selection is based on matching the
request data with a list of Layer 7 Policies defining the Layer 7
parameters differentiating the service. The process of server selection
within the farm can also be content-based, using a third Layer 7
parameter."

Die verfügbaren Methoden zum Definieren eines L7-Verhaltens werden auf S. 106 beschrieben. Sie können eine geeignete Methode auswählen, um das Routing zu Ihrer "angemeldeten" Farm anstelle der "Standard" -Farm auszuwählen:

"Methods are the basic building blocks for Layer 7 service selection.
They define content by which traffic is differentiated. You can use
the same Method to select one or more services. The following Method
Types are available:

- URL: Looks for a specified host name and/or path in the HTTP request.
- File Type: Looks for a specified File Type in the HTTP request.
- Header Field: Looks for a specified Header Field in the HTTP request.
- Cookie: Looks for a specified Cookie in the HTTP request.
- Regular Expression: Looks for a regular expression anywhere in the
HTTP request. AppDirector supports Posix 1002.3 regular expressions;
the string can be up to 80 characters.
- Text: Looks for a text string anywhere in the HTTP request."

Wie im Link Basisanwendung zu sehen ist, könnte beispielsweise eine L7-Richtlinie erstellt werden, die URI-Muster für das Routing zu verschiedenen Farmen bewertet. Die zusammengestellten URI-Muster '^ / login? = True' und '^ / logged' können an Ihre "angemeldete" Farm weitergeleitet werden. Das zusammengesetzte Muster '^ / logout' (und alle anderen URI: s) könnte ebenfalls an eine "Standard" -Farm weitergeleitet werden.

Eine Farm wird im Benutzerhandbuch S.121 folgendermaßen definiert: "Eine AppDirector-Farm ist eine Gruppe von Netzwerkservern, die denselben Dienst bereitstellen. [...] Ein Server, der mehrere Dienste bereitstellt, kann in mehreren Farmen verwendet werden."

Ein Server wird weiter unterschieden, indem die Definition eines Back-End-Servers in zwei Schichten unterteilt wird, die Objektschicht "Physischer Server", die die IP-Adresse eines Servers darstellt, und die Objektschicht "Farmserver", die Dienste darstellt, die auf einem oder mehreren physischen Servern ausgeführt werden .

Die Sitzungsbeschränkung in einer Farm kann gemäß dem 'AppDirector-Benutzerhandbuch' für jedes für eine Farm definierte Farm Server-Objekt (sowie auf andere Weise) zusätzlich zu jedem Physical Server-Objekt durchgeführt werden. Dies wird unter anderem auf S.137 beschrieben:

"The Connection Limit is the maximum number of users that can be directed
to a server for a service provided by the farm. The number of users allowed
depends on the Sessions mode selected because it determines the number of
active entries in the Client Table for sessions destined to the specific server.

When the Entry Per Session or Server Per Session modes are selected, the number
of active entries destined to the same server is higher than in the Regular
mode (see Regular, page 153).

When the Regular mode is selected, all requests from a single client IP destined
to the same server are reflected by a single entry in the Client Table (see
Client Table Views, page 164).

The default value for the Connection Limit parameter is 0. When it is configured
to 0, it is disabled for this server and there is no user number limit."

Die Client-Tabelle und ihr 'regulärer Modus' sind auf S.153 definiert:

"The Layer 3 Client Table is always used when Entry Per Session is used.
AppDirector uses the Layer 3 Client Table to ensure Layer 3 persistency.

This table contains information about the server selected for each client
(Source IP address) in each farm, and it allows AppDirector to select a
server for a new session.
[...]
In the Regular mode, AppDirector maintains Layer 3 persistency. In this mode,
each entry is identified by the following parameters:
• Layer 4 Policy VIP Address
• Client IP Address
• Destination TCP/UDP Port Used from the Client to the Server"

In einem Screenshot eines Fensters Serverdefinition auf der Basic - Anwendung Seite, wird die Server - Verbindungslimit Feld direkt neben dem Bandbreitengrenze Feld gesehen.

Ein bisschen abhängig von der Konfiguration, aber für die Zwecke dieser Antwort ist eine 'Verbindung', wie sie in der Client-Tabelle definiert ist, und eine 'Sitzung', wie sie von Ihnen definiert wurde, im Wesentlichen dasselbe. Eine entsprechende Begrenzung kann pro Serverobjekt in einer Farm festgelegt werden.

Da der AppDirector zwischen physischen Servern und Farmservern unterscheidet, können zwei Farmserver definiert werden, die Ihrem physischen Apache-Serverobjekt zugeordnet sind, von denen einer ein niedriges Verbindungslimit aufweist.

Apache muss jedoch auch Anrufe von beiden Farmserverobjekten entgegennehmen, z. B. indem er an zwei separaten Ports oder IP-Adressen aufgerufen wird - einer wird von jeder Kombination (Farm / Farmserver) verwendet. Dann stellt sich die Frage, ob Sie zwei Einstiegspunkte für Anwendungsserver definieren können. dh können Sie Ihre Apache-Front-End-Anwendung (/ vhost?) so ausrüsten, dass sie an zwei Ports oder IP-Adressen (einer pro Farm) antwortet? Dies geschieht durch ein wenig Rätselraten, da ich nicht zu viel Zeit mit dem Handbuch verbringen möchte, aber ich bin sicher, dass Sie dies ziemlich elegant lösen können, wenn Sie sich die AppDirector-GUI und den Apache ansehen.

Das Einstellen des Verbindungslimits ist etwas eigenartig. Von physischen Servern, Verbindungslimit S.140:

"Connection Limit

Maximum number of Client Table entries that can run simultaneously on 
the physical server. This depends on the farm’s Sessions mode (see 
Sessions Modes, page 150). When the limit is reached, new requests are 
no longer directed to this server. All open sessions are continued.

When the Connection Limit parameter is configured to 0 (default), this 
mechanism is disabled for this physical server and there is no user 
number limit.

Note: When configuring the physical server, ensure that the Connection 
Limit in the farm servers with the same Server Name is lower than or 
equal to the Connection Limit in the physical server. Total number of 
active sessions that run simultaneously on the farm servers must not 
be higher than the Connection Limit value defined on the physical server."

Sie müssten daher ein sehr hohes Verbindungslimit (mit einem großen Spielraum bis zur maximal möglichen Anzahl durch Ihre Benutzerbasis) für den uneingeschränkten "Standard" -Farmserver definieren und das Verbindungslimit für den "angemeldeten" Farmserver als festlegen niedrig wie du musst. Die physische Serverdefinition muss die Summe der beiden als Verbindungslimit haben, als Voraussetzung für die Aktivierung des gewünschten Sitzungslimits.


Sie haben auch diese Anforderung in Ihrer Frage:

After the specified session limit has been reached, the next user should be
directed to a custom error page.

Dies wird im Benutzerhandbuch, S.134, als "Keine HTTP-Dienstseite" bezeichnet:

When all servers belonging to a farm cannot be used for a specific
session, AppDirector can reply to a Web request (destined to port 80)
with a simple Web page, indicating that the service is currently not
available. Servers that cannot be used for a session include servers
in Not In Service or in No New Sessions mode. No HTTP Service Page is
configured for each farm. Each Web page is limited to 1K of HTML code.

Für den Überwachungsteil habe ich nicht so gründlich recherchiert, aber hier ist was ich denke:

track the current number of sessions for monitoring purposes

AppDirector scheint MIBs zu haben. Wahrscheinlich ist es schwierig, die richtige OID zu finden, wie es normalerweise der Fall ist, aber Sie können sie wahrscheinlich an das Werkzeug Ihrer Wahl senden.

whitelist the monitoring server (which is issuing queries to the webapp
periodically) and exempt it from the limit.

Dieser könnte kreatives Denken erfordern. Angenommen, der AppDirector enthält keine sofort einsatzbereite Vorlage. Wie wäre es mit:

  • URIs außerhalb der "angemeldeten" Farm sind vom Sitzungslimit nicht betroffen. Überwachen Sie also, es sind sowieso die gleichen Backend-Server.
  • Verwenden Sie stattdessen die AppDirector-Integritätsprüfungen. Diese werden wahrscheinlich nicht auf das von Ihnen festgelegte Sitzungslimit angerechnet. Finden Sie jedoch eine Möglichkeit, Warnungen an Ihren Überwachungsserver weiterzuleiten :-)
  • Richten Sie eine dritte Farm ein, durch die Sie Gesundheitschecks bestehen. Chaotisch, aber es würde funktionieren.
ErikE
quelle
1
Bisher habe ich festgestellt, dass das Modul mod_security2 Sitzungen auf eine Weise verarbeiten kann, die den von mir angegebenen sehr ähnlich sieht - Secure.jwall.org/blog/2009/01/08/1231374852674.html . Ich werde Ihre Idee von zwei Farmen weiter untersuchen. Wenn eine solche Implementierung möglich wäre, würde dies sicherlich die Dinge vereinfachen.
The-Wabbit
Antwort des technischen Supports von Radware: "In AD können wir nur die Bandbreite pro Farm begrenzen. [...] [A] Methode zur Begrenzung der Gesamtzahl der Sitzungen auf Farmbasis ist derzeit nicht verfügbar." Dann ist es also mod_security.
The-Wabbit
Ok, das war unerwartet. Wenn ich nichts verpasst habe, denke ich immer noch, dass die Schließung der Farm durch einen fehlgeschlagenen Gesundheitscheck eine sauberere Lösung wäre. Ihr Befund zu mod_security ist trotzdem sehr interessant.
ErikE
Möglicherweise war die Unterstützung bei der Interpretation der Frage etwas eng, aber es scheint, dass ein Sitzungslimit auf Serverebene in AppDirector möglich ist (für das es sicherlich eine gewisse Logik gibt). Ich habe mehrere Links gegoogelt, hier ist einer: kb.radware.com/questions/2829/…
ErikE
Der Radware KB-Artikel befasst sich mit LinkProof - einem WAN-Beschleuniger. Ich habe keine Ahnung, welche Software ausgeführt wird und ob ähnliche Funktionen für den AppDirector vorhanden wären. BTW: Session Handling - Code sicher ist Teil des Feature - Sets AppDirector - es hat eine Session - Tabelle , die genau aussieht , was ich erwarten würde , es zu suchen. Aber anscheinend gibt es keine Möglichkeit, die Anzahl der Sitzungen zu begrenzen - nur für Verbindungen. Das Beste, was ich daraus machen kann, ist die Begrenzung der Anzahl der Treffer auf einer bestimmten Seite (z. B. der Anmeldeseite) pro Zeiteinheit, wie von Eric vorgeschlagen.
The-Wabbit
0

Wenn AppDirector Ihnen nicht helfen kann, ist hier ein anderer Ansatz, der ein wenig Codierung erfordert. Ich würde das Problem wie folgt angehen:

  • Lesen Sie in einer Schleife die Apache-Protokolldatei weiter (und öffnen Sie sie bei logrotate erneut).
  • Wenn ein Benutzer eine Seite besucht (nicht nur ein Login), fügen Sie diese einer Whitelist für iptables hinzu
  • Wenn sich ein Benutzer abmeldet oder nach Inaktivität (also Timer für aktive Sitzungen beibehalten!), Entfernen Sie sie aus der Whitelist
  • Wenn die Whitelist voll ist, leiten Sie den gesamten Datenverkehr ohne Whitelist an einen speziellen Port um
  • Führen Sie an diesem Port einen einfachen vhost mit Ihrem benutzerdefinierten Fehler aus

Die grafische Darstellung der Anzahl der Sitzungen wird so einfach wie die grafische Darstellung der Länge der iptables-Kette. Der Überwachungsserver kann einfach immer auf die Whitelist gesetzt werden.

Dennis Kaarsemaker
quelle