Inhalte
Übersicht
Das (AWS) Elastischer Lastausgleicher (ELB) verteilt den Webverkehr auf mehrere EC2 Instanzen, Elastic Container Service (ECS) und IP-Adressen. ELB hat auch die Möglichkeit, den Datenverkehr über verschiedene Availability Zones hinweg auszugleichen, um eine hohe Verfügbarkeit sicherzustellen. Es gibt jedoch einige Einschränkungen bei der Verwendung AWS's ELB, und dazu gehören:
- Begrenzte Load-Balancing-Methoden. Standardmäßig, ELB verwendet nur die Round Robin Algorithmus, und es hat begrenzte Fähigkeiten zum Umschalten von Inhalten.
- Da der ELB wurde entwickelt, um den Datenverkehr vom Internet zu den Instanzen in einer Virtual Private Cloud zu verwalten(VPC), ist es nicht für den Lastenausgleich zwischen lokalen Ressourcen geeignet.
In diesem Artikel werden wir erörtern, wie man seine Lastausgleichsdienste durch eine bessere Alternative, ZEVENET ADC, ersetzen kann. Einen detaillierten Vergleich zwischen AWS ELB und ZEVENET finden Sie in diesem Artikel AWS- und ZEVENET-Vergleich.
Voraussetzungen:
Stellen Sie sicher, dass Sie diese Anforderungen erfüllen, bevor Sie versuchen, Konfigurationen von zu übertragen AWS-ELB zum voll ausgestatteten ADC von ZEVENET.
- Ein ZEVENET ADC-Knoten muss auf Ihrem PC, Ihrer Bare-Metal-, virtuellen Umgebung installiert sein, oder einer muss aktiv sein ZVNcloud Konto. Fordern Sie eine Bewertung an für die Bereitstellung vor Ort.
- Man muss Zugriff auf die grafische Webschnittstelle haben. Wenn Sie dies nicht tun, folgen Sie dieser schnell Installationsanleitung.
- Man muss ein aktiver Benutzer von AWS ELB sein und mit den Konzepten vertraut sein, die wir im folgenden Abschnitt besprechen werden.
- Man muss in der Lage sein, einen virtuellen Server im ZEVENET Load Balancer zu erstellen. Hier ist eine Kurzanleitung: Konfiguration virtueller Layer 4- und Layer 7-Server.
Hinweis
ZEVENET hat eine Vorlage in der AWS-Marktplatz. Die Bereitstellung von ZEVENET auf AWS ist nahtlos und sollte mit wenigen Klicks erfolgen.
Grundlegende Konzepte
Hörer: Ein Listener prüft auf Layer-7-Inbound-Traffic und leitet ihn an die notwendige Zielgruppe weiter. Normalerweise wird ein Listener zum Prüfen konfiguriert HTTP or HTTPS Verkehr auf Häfen 80 or 443 bzw. Die wichtigsten von ZEVENET ADC verwendeten Layer-7-Listener sind HTTP und HTTPS.
Zielgruppe: Eine Zielgruppe ist ein Cluster von EC2-Instanzen, die zusammenarbeiten, um einen Dienst bereitzustellen. Alle diese Instanzen innerhalb einer Zielgruppe müssen denselben Anwendungscode haben, der Anfragen von den Clients verarbeitet. Eine Zielgruppe ist dasselbe wie a Service bei Verwendung von ZEVENET ADC.
Gesundheitschecks: Zustandsprüfungen überwachen den Betrieb und die Reaktionsfähigkeit eines Dienstes auf jeder EC2-Instance. Wenn der Dienst oder eine EC2-Instance ausfällt, stellen Zustandsprüfungen die Nichtreaktion fest, und der Load Balancer leitet den Datenverkehr an fehlerfreie Instances um. ZEVENET verwendet eine Reihe von Plugins namens Farmguardian um den Gesundheitszustand von Backend-Servern und ihren Diensten zu überwachen.
Load-Balancer-Typen: AWS ELB bietet drei Arten von Load Balancern. Diese schließen ein Anwendung, Netzwerken und Classic Load-Balancer. Der klassische Load Balancer wird veraltet, sodass nur noch die Netzwerken und Anwendung Loadbalancer zum Einsatz. ZEVENET ADC Layer 7 Load Balancer haben eine HTTP Profil, während die Netzwerk-Load-Balancer ein haben L4xNAT Profil.
Sicherheitsgruppe: Eine Sicherheitsgruppe ist ein Satz von Firewallregeln, die den eingehenden und ausgehenden Datenverkehr überwachen und steuern. ZEVENET ADC hat einen eingebauten IPDS Modul mit Richtlinien, die so eingestellt sind, dass schädlicher Datenverkehr zum Load Balancer gefiltert wird und alle Versuche des unbefugten Zugriffs blockiert werden. Sie können Firewall-Regeln erstellen, indem Sie auf zugreifen WAF Option innerhalb der IPDS Modul.
ACM: Der ACM-Service ermöglicht es einem Administrator, SSL/TLS-Zertifikate zur Verwendung in internen verbundenen Ressourcen auf AWS bereitzustellen und zu verwalten. Um interne SSL-Zertifikate innerhalb des ZEVENET-Load-Balancers zu verwalten, greifen Sie über darauf zu LSLB >> SSL-Zertifikate. Oder Sie können ein benutzerdefiniertes selbstsigniertes SSL-Zertifikat über erstellen Lass uns verschlüsseln Programm, das in den ZEVENET-Load-Balancer eingebettet ist.
EC2-Instanzen oder -Ziele: Dies sind nachgeschaltete virtuelle Linux-Server, die den Anwendungscode hosten, der aus dem Web empfangene Anfragen verarbeitet. Diese virtuellen Server werden aufgerufen Backends bei Verwendung von ZEVENET ADC.
Beispielkonfigurationen: SSL-Zertifikate
Um Daten zu verschlüsseln, die zwischen Clients und dem Load Balancer übertragen werden, muss ein SSL-Zertifikat installiert werden, um die Kommunikation zwischen Hosts sicher zu halten. Sensible Informationen wie z Anmeldedaten und Kreditkartennummern müssen über eine sichere Transportschicht übertragen werden.
In diesem Abschnitt werden wir die Installations-SSL-Zertifikate auf ZEVENET ADC mit Bezug auf AWS ACM diskutieren.
Konfigurieren eines selbstsignierten SSL-Zertifikats zur Verwendung in AWS
Man würde diesen Schritten folgen, um ein SSL-Zertifikat auf dem ELB zu installieren.
- Um ein CSR Für Ihre EC2-Instances benötigen Sie Zugriff auf die Linux-Konsole dieser Instance.
- Nachdem Sie sich mit der EC2-Instance verbunden haben, navigieren Sie zum Verzeichnis: /etc/pki/tls/private/
- Generieren Sie mit dem folgenden Befehl einen neuen privaten Schlüssel, 2048-Bit-RSA: sudo openssl genrsa -out custom.key
- Generieren Sie mit dem folgenden Befehl ein Zertifikat, das den zuvor generierten privaten Schlüssel bereitstellt: openssl req -new -x509 -nodes -sha1 -days 365 -extensions v3_ca -custom.key -out custom.crt
- Geben Sie die für das SSL-Zertifikat erforderlichen Details ein.
- Land: Geben Sie 2 ISO-Ländercodes ein.
- Staat / Provinz: Geben Sie das Bundesland ein, in dem sich Ihr Unternehmen befindet.
- Stadt: Geben Sie den Namen der Stadt ein, in der Sie sich befinden.
- Gemeinsamer Name: Geben Sie einen vollständig qualifizierten Domänennamen ein FQDN, zum Beispiel www.zevenet.com
- Passphrase oder Passwort: Sie können die Erstellung eines Passworts für dieses Beispiel ignorieren. In der Zwischenzeit befindet sich das generierte Zertifikat in der *.pem Datei Format.
- Kompilieren Sie beide Zertifikate mit dem folgenden Befehl in ein PKCS12-Bundle:openssl pkcs12 -inkey custom.key -in custom.crt -export -out custom.p12
- Angenommen, AWS CLI ist bereits installiert, muss man normalerweise das generierte Zertifikat (custom.crt) und den privaten Schlüssel (custom.key) mit dem Befehl in AWS Certificate Manager hochladen: aws acm import-certificate – Zertifikatsdatei://custom.crt – private-key-Datei://custom.key – Region us-east-2
- Dieses Zertifikat ist nun im Erstellungsassistenten unter der Option „Choose a certificate from ACM (empfohlen)“ verfügbar.
Konfigurieren eines selbstsignierten SSL-Zertifikats zur Verwendung auf ZEVENET ADC
- Um ein benutzerdefiniertes SSL-Zertifikat für Ihre ZEVENET ADC-Instanz zu generieren, suchen Sie das folgende Verzeichnis mithilfe der Befehlszeile der Appliance.
- Generieren Sie einen privaten Schlüssel ohne Passphrase mit dem folgenden Befehl:
- Generieren Sie eine Zertifikatsignierungsanforderung (CSR) für den privaten Schlüssel mit dem Befehl:
- Geben Sie die erforderlichen Details ein.
- Name: Ein beschreibender Name zur Identifizierung des CSR.
- Land: Der ISO-Code des Landes, in dem Sie sich befinden.
- Gemeinsamen Namen: Ein vollständig qualifizierter Domänenname. (FQDN), zB www.example.com
- Aufteilung: Ihre Abteilung, und das kann Gesundheit, IT oder Sicherheit sein.
- Ort: Die Stadt, in der Sie sich befinden.
- Bundesland/ Kanton: Das Bundesland, in dem sich Ihre Organisation befindet.
- Organisation: Der rechtliche Name Ihrer Organisation, z. B. ZEVENET SL.
- E-Mail: Geben sie ihre E-Mailadresse ein. Kein Muss, dass es einer für den Domainnamen sein sollte.
- Ein generieren Selbstsigniertes Zertifikat unter Verwendung sowohl des privaten Schlüssels als auch des CSR-Zertifikats. In diesem Beispiel hat das selbstsignierte Zertifikat eine Lebensdauer von 1 Jahr und das Ausgabeformat ist in .PEM. Verwenden Sie den folgenden Befehl.
- Dieses Zertifikat steht zur Verwendung innerhalb der zur Verfügung LSLB >> SSL-Zertifikate .
cd /usr/local/zevenet/config/certificates
openssl genrsa -out custom.key 2048
openssl req -new -key custom.key -out custom.csr
openssl x509 -in custom.csr -outform PEM -out custom.pem -req -signkey custom.key -days 365
Weitere Informationen zu SSL-Zertifikaten auf ZEVENET ADC finden Sie in diesen Ressourcen:
Beispielkonfigurationen: Web Application Firewall
Als Sicherheitsmerkmal ist A WAF schützt eine Webanwendung durch Filtern und Blockieren von schädlichem Datenverkehr. Eine WAF wird normalerweise vor einem Load Balancer bereitgestellt und soll Webanwendungen vor verschiedenen böswilligen Angriffen wie z Cross-Site-Scripting (XSS), SQL-Injection, und andere Angriffe, einschließlich derer in OWASPs Top 10.
Durch die Untersuchung des eingehenden HTTP-Datenverkehrs und dessen Analyse anhand einer Reihe von Regeln oder einer Sicherheitsrichtlinie blockiert die WAF den gesamten Datenverkehr, der als unsicher gilt. ZEVENET ADC bietet erweiterte Sicherheitsfunktionen wie IP-Blacklisting, eine RBL-Richtlinie, DoS-Schutz usw.
In diesem Abschnitt beschreiben wir, wie Sie sich davor schützen können SQL-Injection in AWS und simulieren Sie ähnliche Konfigurationen mit ZEVENET ADC.
AWS-Konfigurationen
Aktivieren SQL-Injection Schutz müssen Sie mindestens eine oder zwei EC2-Instances hinter einem Elastic Load Balancer platzieren. Diese EC2-Instances müssen über die Webanwendung verfügen, die Sie schützen möchten.
- Suchen Sie in der Webkonsole von AWS nach WAF und Schild, und klicken Sie auf den angezeigten Link.
- Klicken Sie auf Web-ACL Menüpunkt.
- Wählen Sie beispielsweise die Region aus, aus der Ihr Traffic kommen soll Europa (Frankfurt).
- Klicken Sie auf die Web-ACL erstellen .
- Der Fügen Sie Regeln und Regelgruppen hinzu, Klicken Sie auf Regeln hinzufügen Drop-down-Pfeil.
- Auswählen Fügen Sie verwaltete Regelgruppen hinzu. Sie finden weitere verwaltete Regelgruppen, einschließlich Bot-Steuerung, Amazon IP-Reputationsliste, SQL-Datenbanken, usw.
- Auswählen SQL-Datenbank indem Sie die Umschalttaste aktivieren Zur Web-ACL hinzufügen.
- Scrollen Sie nach unten und klicken Sie auf Regel hinzufügen .
- Innerhalb der Standardaktion für Regeln, die nicht übereinstimmen, belassen Sie die Option als Erlauben.
- Klicken Sie auf die Weiter .
- Innerhalb der Legen Sie die Regelpriorität fest Verwenden Sie diesen Abschnitt, um einer Regel Priorität hinzuzufügen, und klicken Sie dann auf die Schaltfläche Weiter.
- Innerhalb der Metriken konfigurieren Abschnitt, es gibt nichts zu ändern, also klicken Sie auf die Schaltfläche, Weiter.
- Innerhalb der Überprüfen und erstellen Sie die Web-ACL Abschnitt, klicken Sie auf Web-ACL erstellen .
- Nachdem Sie erfolgreich eine Web-ACL erstellt haben, klicken Sie auf die soeben erstellte ACL.
- Klicken Sie mit auf die Registerkarte Zugehörige AWS-Ressourcen.
- Fügen Sie den Anwendungs-Load-Balancer hinzu, den Sie schützen möchten. Nach dem Hinzufügen der Ressourcen wird Ihre Regel so eingestellt, dass jede Injektion in die SQL-Datenbank blockiert wird.
ZEVNET-Konfigurationen
Um den SQL-Injection-Schutz zu aktivieren, müssen Sie eine WAF-Regelsatz zuerst.
- Gehen Sie zu IPDS im seitlichen Menü und klicken Sie darauf, um es zu erweitern.
- Klicken Sie auf WAF Möglichkeit, es zu erweitern.
- Klicken Sie auf Regelsätze .
- Klicken Sie auf Erstellen Sie einen WAF-Regelsatz .
- a . zuweisen Name die diesen Regelsatz leicht identifiziert.
- Lassen Sie die Regelsatz kopieren Feld als –Kein Regelsatz–.
- Klicken Sie auf die Zur Bewerbung Schaltfläche, um die Änderungen zu speichern.
- Innerhalb der globale Einstellungen, schalten Sie auf die Überprüfen Sie den Anforderungstext .
- Ändern Sie die Standardaktion in Ablehnen: Die Anfrage abschneiden und die verbleibenden Regeln nicht mehr ausführen
- Klicken Sie auf die Zur Bewerbung Schaltfläche, um die Änderungen zu speichern.
Regeln festlegen
- Klicken Sie auf Regeln Registerkarte, um neue Regeln hinzuzufügen.
- Klicken Sie auf Neue Regel .
- Wählen Sie den Regeltyp als aus Action.
- Wähle aus Phase as Anforderungstext erhalten.
- Wähle aus Auflösung as Ablehnen: Die Anfrage abschneiden und die verbleibenden Regeln nicht mehr ausführen.
- Fügen Sie der Regel eine Beschreibung hinzu, um leicht zu erkennen, worum es bei der Regel geht
- Klicken Sie auf die Zur Bewerbung Schaltfläche, um die Änderungen zu speichern.
Bedingungen hinzufügen
- Klicken Sie auf die neu erstellte Regel, um Bedingungen hinzuzufügen. Beginnen Sie mit einem Klick auf die Bedingung schaffen .
- Innerhalb der Variablen Feld auswählen REQUEST_BODY Und klicken Sie auf die Variable hinzufügen .
- Innerhalb der Transformation Feld, wählen Sie die Option, keine.
- Innerhalb der Operator Abschnitt auswählen detectSQLi
- Klicken Sie auf die Zur Bewerbung Schaltfläche, um die neue Bedingung zu erstellen.
Aktivieren von Regeln für eine Farm
- Klicken Sie auf Farms um diese Regel einem virtuellen Zielserver (Farm) auf dem Load Balancer hinzuzufügen.
- Innerhalb der Farmeinstellungen, ziehen Sie die ausgewählte Farm per Drag-and-Drop aus Verfügbare Farmen zu Aktivierte Farmen.
- In der oberen rechten Ecke gibt es Aktionen. Klicken Sie auf die grüne Wiedergabeschaltfläche, um die Regel zu starten. In diesem Moment blockiert die WAF-Regel jede SQL-Injektion, die in den Anforderungstext eingebettet ist, hauptsächlich über Such- oder Anmeldeformulare.
Weitere Ressourcen zur WAF finden Sie in diesen Artikeln:
Weitere Informationen
Verwenden des Let's encrypt-Programms zum automatischen Generieren eines SSL-Zertifikats.
Datalink/Uplink Load Balancing mit ZEVENET ADC.
DNS-Lastenausgleich mit ZEVENET ADC.
Schutz vor DDoS-Angriffen.
Anwendungs-, Gesundheits- und Netzwerküberwachung in ZEVENET ADC.