Vorheriges Thema: INSSLR: Redundantes HTTP-Eingabe-Gateway mit SSL-UnterstützungNächstes Thema: OUT: Einzelne Host-Ausgabe-Gateway-Appliance


INSSLR2 - Redundantes HTTP-Eingabe-Gateway mit SSL-Unterstützung

Aktuelle Version: 1.0.1-2

APP--INSSLR2-Symbol--ICO

Auf einen Blick

Katalog

System

Kategorie

Gateways

Benutzer-Volumes

ja

Min. Speicher

192 M

Betriebssystem

Linux

Einschränkungen

no

Die INSSLR2-Appliance ist ein Layer-7-Gateway für sichere HTTP-Anfragen. Konvertiert die Anfragen in unverschlüsselte HTTP-Anfragen. Sie können diese Funktion verwenden, um sicheres HTTP auf der Client-Seite zu unterstützen.

Allerdings wird SSL von der Backend-Infrastruktur nicht unterstützt. Hierzu zählen:

Sofern konfiguriert, unterstützt INSSLR2 auch die Client-Zertifikatauthentifizierung. Bei der gegenseitigen SSL-Authentifizierung tauschen der Client und der Server ihre Zertifikate und zugehörigen öffentlichen Schlüssel aus. Der Client und/oder der Server können die Zertifizierungsstelle (CA), die das Zertifikat ausgegeben hat, kontaktieren und vor dem Fortfahren bestätigen, dass das Zertifikat authentisch ist.

In der Standardkonfiguration agiert INSSLR2 als Layer-7-Gateway für sichere HTTP-Anforderungen. Es stellt außerdem einen Einstiegspunkt mit Firewall für Netzwerkverkehr in eine Anwendung bereit. Dies kann mit einer über das Internet zugänglichen statischen IP-Adresse konfiguriert werden.

Sofern konfiguriert, können zwei INSSLR2-Appliances im Failover-Modus verwendet werden, um einen redundanten Dienst bereitzustellen. In diesem Fall wird die IP-Adresse von INSSLR2 auf nur einem der Knoten ausgeführt und im Falle eines Fehlers automatisch auf die andere INSSLR2-Appliance übertragen. Es ist immer nur eine der INSSLR2-Appliances gleichzeitig aktiv. Im Failover-Modus kann INSSLR2 so konfiguriert werden, dass eine Ausführung in mehreren Modi möglich ist:

Wenn INSSLR2 im redundanten Modus ausgeführt wird, wird eine Schnittstelle auf dem zugehörigen Terminal "ctl" bereitgestellt, um:

INSSLR2 überwacht kontinuierlich den Integritätsstatus der Backend-Appliance, die an das HTTP-Terminal angeschlossen ist. Die von INSSLR2 durchgeführten Prüfungen des Integritätsstatus können eine einfache TCP-Verbindungsprüfung oder eine komplexere HTTP-Anfrage umfassen, sofern auf der Begrenzung von INSSLR2 angegeben.

Im Falle eines Fehlers der angeschlossenen Appliance sendet INSSLR2 eine Fehlermeldung an das Grid-Dashboard oder führt, wenn es sich im redundanten Modus befindet und entsprechend konfiguriert wurde, einen Failover auf die INSSLR2-Sicherungs-Appliance durch.

Um Anwendungen zu unterstützen, die an einer einzelnen IP-Adresse für mehr als einen Service angezeigt werden müssen, konfigurieren Sie INSSLR2 zur transparenten Weiterleitung von einem anderen Datenverkehr als HTTP-Datenverkehr zu einem separaten Ausgabe-Terminal. Für solche Verbindungen fungiert die Appliance als Layer-3-Firewall/NAT-Router.

Begrenzung

Ressourcen

Ressource

Minimum

Maximum

Standard

CPU

0.05

4

0.05

Speicher

192 MB

2 G

192 M

Bandbreite

1 Mbit/s

2 Gbit/s

200 Mbit/s

Hinweise

Terminals

Name

Richtung

Protokoll

Description

ctl

in

http

Erhalten von Benachrichtigungen, wodurch die Appliance primary/Sicherungs-Appliance wird.

Dieses Terminal akzeptiert Verbindungen nur dann, wenn "fover_mode" auf "none" gesetzt ist. Gültige HTTP-Anforderung, mit der die Appliance aktiv oder passiv wird:

/?action=<active|passive|kill|status>

Wenn der andere Knoten nicht aktiv ist und das Failover nicht abgeschlossen werden kann, ist diese Aktion möglicherweise nicht erfolgreich und es wird kein Fehler zurückgegeben. Die aufrufende Anwendung muss den Status der Appliance mithilfe der folgenden Anfrage überprüfen:

/?action=status

Status Gibt den aktuellen Status der Appliance zurück (aktiv oder passiv).

Durch "kill" wird die Appliance zum Herunterfahren gezwungen. Dies führt dazu, dass der andere Knoten übernimmt, sofern dieser aktiv ist.

in

in

alle

Akzeptiert den gesamten eingehenden Datenverkehr

Sie können die mit diesem Terminal verbundene Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren.

fover

in

raw

Failover-Schnittstelle für Verbindung zwischen zwei INSSLR2-Instanzen.

Sie können die mit diesem Terminal verbundene Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren.

http

out

http

HTTPS und/oder HTTP-Anfragen, die über die konfigurierte externe IP-Adresse eingehen, werden an das Ausgabe-HTTP als einfache HTTP-Anfragen auf dem standardmäßigen HTTP-Port 80 geleitet.

Zusätzlich zu den vom Client bereitgestellten HTTP-Headern enthalten die weitergeleiteten Anfragen auch die folgenden Informations-Header:

  • X-Forwarded-For: die IP-Adresse des Remote-Client.

    Dies muss von den serverseitigen CGI-Skripten anstelle der Remote-IP-Adresse verwendet werden.

  • X-Forwarded-Proto: HTTPS

    Dieser Header ist vorhanden, wenn der Client eine Verbindung über HTTPS hergestellt hat. Die Backend-Anwendung hat die Aufgabe, anhand dieses Headers zwischen HTTP- und HTTPS-Verbindungen zu unterscheiden.

fs

out

nfs

Liefert eine NFS-Bereitstellung als alternativen Speicherort zum lokalen Schlüssel-Volume für das Speichern von Schlüsseln.

Wenn sowohl das lokale Schlüssel-Volume als auch eine Verbindung mit dem Terminal "fs" bereitgestellt werden, startet die Appliance nicht. Dieses Terminal kann unverbunden bleiben.

aux

out

alle

Ausgang für andere Protokolle, falls konfiguriert.

Weitere Informationen finden Sie in den "l3_accept_*"-Eigenschaften.

nfy

out

http

Sendet Benachrichtigungen, wenn ein Failover auftritt.

Siehe auch fover_nfy_prefix. Dieses Terminal kann unverbunden bleiben.

mon

out

cce

Sendet Leistungs- und Ressourcenverwendungsstatistik.

Eigenschaften

Name

Typ

Description

dns1

IP addr

Definiert den primären DNS-Server.

Wenn der Remote-Host von seiner IP-Adresse angegeben wird, kann "dns1" leer bleiben. Andernfalls muss "dns1" angegeben werden.

Standard: (leer)

dns2

IP addr

Definiert den sekundären DNS-Server, der verwendet wird, wenn der primäre DNS-Server nicht antwortet.

Standard: (leer)

l7_accept

enum

Gibt an, welche Arten von HTTP-Datenverkehr für die Weiterleitung an das HTTP-Terminal akzeptiert werden.

Zulässige Werte: "https", "http", "both", "none".

Wenn "none" festgelegt ist, wird der gesamte Datenverkehr nur gemäß den Eigenschaften für l3_accept_* umgeleitet.

Standard: both

l3_accept_proto

enum

Gibt an, welche Protokolle zum aux-Terminal weitergeleitet werden sollen.

Zulässige Werte: "none", "tcp", "udp", "raw", "all".
Wenn "tcp" oder "udp" festgelegt wurden, kann die Eigenschaft "l3_accept_port" verwendet werden, um den Port anzugeben.

Wenn "raw" festgelegt wird, gibt die Eigenschaft "l3_accept_port" die Protokollnummer an.

Wenn "all" festgelegt ist, wird der gesamte eingehende Datenverkehr auf der externen Schnittstelle zum Terminal "aux" geleitet. Die Eigenschaft "l7_accept" hat Vorrang vor dieser Eigenschaft.

Hinweis: Wenn Sie für "l7_accept" einen anderen Wert als "none" festlegen, werden alle HTTP(s) zum HTTP-Terminal weitergeleitet. Der Rest des Datenverkehrs wird an "aux" geleitet, wie durch diese Eigenschaft angegeben.

Standard: Keine

l3_accept_port

Zeichenfolge

Eine durch Kommas oder Leerzeichen getrennte Liste mit Protokollen, die von dem von "l3_accept_proto" angegebenen Protokoll akzeptiert und an das Terminal "aux" geleitet werden sollen.

Die Protokolle in der Liste können entweder als Portnummern oder als Standard-Protokollnamen, wie FTP und SMTP, angegeben werden, wenn Sie TCP- oder UDP-Ports (bzw. bei Raw-Protokollen GRE- und TCP-Ports) angeben. Die Port-Bereiche können auch als 1024:10000 oder 0:1024 angegeben werden.

Wird dieses Feld leer gelassen, werden alle Ports des angegebenen Protokolls weitergeleitet.

Hinweis: Wenn Sie "l3_accept_proto" auf "raw" festlegen, müssen Sie diese Eigenschaft festlegen, die in diesem Fall die Protokollnummer angibt. Es kann mehr als ein Raw-Protokoll angegeben werden, jedoch sind Protokollbereiche, wie 20:30, nicht zulässig.

Standard: all

allowed_hosts

Zeichenfolge

Liste von Hosts und/oder Teilnetzen, die Verbindungszugriff haben. Trennen Sie mehrere Einträge mit Leerzeichen oder Kommas.

Beispiel für das unterstützte Format: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0.

Standard: 0.0.0.0/0 (alle erlaubt).

key_on_fs

Zeichenfolge

Gibt an, ob Schlüssel auf einem nfs-Mount über das fs-Terminal (on) oder auf dem lokalen Schlüsselvolume (off) gespeichert werden.

Zulässige Werte: "on" und "off"

Standard: "off"

cert_file

Zeichenfolge

Dateiname (relativ zum Daten-Volume-Stamm) des Serverzertifikats, das diese Gateway-Instanz an den Client übergeben muss.

Wenn Sie "l7_accept" auf "https" oder beide Eigenschaften festlegen, muss ein gültiges Zertifikat auf dem konfigurierten Daten-Volume an dem von dieser Eigenschaft angegebenen Speicherort vorhanden sein. Andernfalls kann INSSLR2 nicht gestartet werden. Weitere Informationen finden Sie im Abschnitt "Volumes".

Standard: server.pem

unsafe_ssl

Zeichenfolge

Aktivieren Sie die Verwendung von "unsicheren" SSL-Chiffren für die Kompatibilität mit älteren Browsern.

Mit dem Standardwert "disabled" werden SSLv2-Chiffren sowie andere SSLv3- und TLSv1-Chiffren, die nicht als sicher gelten, deaktiviert.

Es wird empfohlen, die Einstellung dieser Eigenschaft auf "disabled" zu belassen und nur dann zu ändern, wenn für ältere Browser, die nur mit SSLv2 funktionieren, https-Sitzungen unterstützt werden müssen. Wenn "'enabled" festgelegt ist, werden alle verfügbaren SSL-Chiffren auf dem System für HTTPS-Sitzungen verwendet. Dies gilt auch für SSLv2.

Standard: "disabled"

Diese Eigenschaft wurde in Version 1.2.1. hinzugefügt.

keepalive

Ganzzahl

Gibt die größtmögliche Keepalive-Zeit zwischen INSSLR2 und dem Client an. Die Zeit wird in Sekunden angegeben.

Standard: 15

Zeitlimit

Ganzzahl

Gibt an, wie viele Sekunden INSSLR2 auf eine Ausgabe vom Backend-Server wartet.

Wenn der Backend-Server über die für die Zeitüberschreitung festgelegte Anzahl von Sekunden hinweg keine Ausgabe sendet, wird die Verbindung geschlossen.

Standard: 300

max_request_size

Ganzzahl

Maximale Größe der Clientanfrage in MB. Erhöhen Sie den Wert, wenn Ihre Anwendung große Client-Uploads verarbeitet.

Standardwert: 10

adv_config

Zeichenfolge

Fügt eine Rohkonfiguration hinzu, die in die nginx-conf innerhalb der location-Blöcke für sowohl http- als auch https-Listener (je nachdem, welcher aktiviert ist) einzufügen ist.

Um zum Beispiel benutzerdefinierte Header hinzuzufügen, legen Sie "adv_config" auf "proxy_set_header myport $proxy_port;" fest.

Dies fügt myport: 80 zur an den Backend-Server gesendeten Anfrage hinzu. "adv_config" kann auf eine gültige Anweisung für einen Speicherortblock festgelegt werden. Weitere Informationen finden Sie in der Nginx-Dokumentation.

Sie können mehrere durch ; abgetrennte Konfigurationszeilen hinzufügen.

Hinweis: Falls festgelegt, muss diese Eigenschaft eine zulässige Nginx-Syntax aufweisen, die mit ";" endet. Ansonsten kann die Appliance nicht gestartet werden.

Standard: (leer)

client_cert

Zeichenfolge

Aktiviert die Client-Zertifikatsauthentifizierung.

Zulässige Werte: "on", "ask" und "off"

Wenn auf "on" festgelegt, wird die Client-Zertifikatsauthentifizierung erzwungen und nur Clients mit zulässigen Zertifikaten können eine erfolgreiche Anfrage an INSSLR2 stellen.

Wenn auf "ask" festgelegt, werden Clients zum Vorlegen von Zertifikaten aufgefordert, aber die Verbindung wird auch hergestellt, wenn kein zulässiges Zertifikat vorgelegt wird.

Standard: "off"

client_depth

Ganzzahl

Die Tiefe der Prüfung für ein verkettetes Client-Zertifikat. Diese Eigenschaft hat keine Auswirkungen, wenn "client_cert" nicht festgelegt ist.

Zulässige Werte: 1 bis 9

Standard: 1

ca_list_client

Zeichenfolge

Eine Datei, die eine Sequenz von CA-Zertifikaten im PEM-Format enthält. Die Namen der aufgelisteten CA-Zertifikate werden an den verbundenen Client gesendet. Dies informiert den Client, welches Client-Zertifikat gesendet werden soll.

Die gleiche Liste wird für das Überprüfen des Client-Zertifikats verwendet.

Der Dateiname ist relativ zum Stamm des geladenen Schlüsselvolumes oder zum Stamm des nfs-Mounts, der über das fs-Terminal vorgenommen wurde, und kann einen Pfad enthalten. Beispiel:

path/to/keys/ca_list_client.pem. 

Standard: ca_list_client.pem.

cert_revocation_list

Zeichenfolge

Eine Datei, die die Zertifikatsaufhebungsliste (CRL), wie von der Zertifizierungsstelle generiert, enthält. Diese Liste identifiziert die von CA aufgehobene Client-Zertifikate.

Es wird nach jedem an INSSLR2 übergebenen Client-Zertifikat gesucht und, wenn das Zertifikat aufgehoben wurde, gibt INSSLR2 die Antwort "SSL-Zertifikatsfehler" an den Client aus.

Ähnlich wie bei "ca_list_client" ist der Dateiname relativ zum Stamm des geladenen Schlüsselvolumes oder zum Stamm des nfs-Mounts, der über das fs-Terminal vorgenommen wurde, und kann einen Pfad enthalten. Beispiel:

path/to/keys/ca_list_client.pem. 

Standard: leer

Eigenschaften der Systemintegritätsprüfung

Name

Typ

Description

healthcheck_method

Zeichenfolge

Die Methode, die für die Systemintegritätsprüfung der Backend-Webserver verwendet wird.

  • "off": Systemintegritätsprüfung ist deaktiviert. Alle anderen "healthcheck_"-Eigenschaften sind nicht relevant.
  • "tcp_connect": INSSLR2 verbindet sich mit dem Port 80 des Webservers. Wenn die Verbindung erfolgreich hergestellt wurde, geht INSSLR2 davon aus, dass der Webserver funktionsfähig ist.

    Dies ist die schnellste Methode und benötigt am wenigsten Ressourcen.

  • "http_head": INSSLR2 verwendet die HEAD-Methode, um das von der Eigenschaft "healthcheck_url" angegebene Dokument anzufordern.

    Diese ist langsamer als tcp_connect, benötigt mehr Ressourcen sowohl auf INSSLR2 als auch auf dem Webserver, aber ist zuverlässiger. Die Antwort wird mit einem regulären Ausdruck verglichen, wie von "healthcheck_regexp" angegeben. Bei Übereinstimmungen wird der Server als aktiv betrachtet.

  • "http_get": INSSLR2 verwendet die GET-Methode, um das von der Eigenschaft "healthcheck_url" angegebene Dokument anzufordern.

    Dies ist die langsamste Methode, die die meisten Ressourcen benötigt, aber am zuverlässigsten ist.

    Die Antwort (Header und Body-Text) wird mit einem regulären Ausdruck verglichen, wie von healthcheck_regexp angegeben, und wenn eine Übereinstimmung gefunden wird, wird der Server als funktionsfähig betrachtet.

Standard: "off".

healthcheck_url

Zeichenfolge

Die URL, die verwendet wird, um die Systemintegritätsprüfung der Backend-Webserver mit den Systemintegritätsprüfungs-Methoden "http_get" und "http_head" durchzuführen.

Sie kann als vollständige URL (z. B. http://host.name/file/to/check/for.php) oder als relativer Pfad (z. B. /file/to/check/for.php) angegeben werden.

Wenn eine URL angegeben wird, verwendet INSSLR2 das HTTP/1.1-Protokoll während der Durchführung der Systemintegritätsprüfungen und setzt den aus UR extrahierten Hostnamen im Header Host: ein. Dies ermöglicht die Verwendung von virtuellen Hosts.

Wenn sie als ein relativer Pfad angegeben wird, verwendet INSSLR2 das HTTP/1.0-Protokoll und sucht nach dem von dieser Eigenschaft angegebenen Dokument.

Standard: /

healthcheck_agent

Zeichenfolge

Zeichenfolge, die als Agentbezeichner für die Methoden http_get und http_head der Systemintegritätsprüfung verwendet wird.

Standard: INSSLR2-health-check

healthcheck_regexp

Zeichenfolge

Eine für den http_head- und http_get-Systemintegritätsprüfungs-Modus verwendete Testzeichenfolge. Kurze oder allgemeine Werte, wie OK, können fälschlicherweise zu positiven Übereinstimmungen führen. Diese Zeichenfolge ist ein regulärer Perl-Ausdruck.

Standard: ^HTTP\/1\.\d\s+200

healthcheck_interval

Ganzzahl

Intervall zwischen Systemintegritätsprüfungen der Backend-Webserver. Dieser wird in Sekunden angegeben.

Standard: 60 Sekunden

healthcheck_timeout

Ganzzahl

Die maximale Zeit in Sekunden, die eine Systemintegritätsprüfung dauern kann.

Wenn die Zeitüberschreitung überschritten wird, wird die Prüfung als fehlgeschlagen betrachtet und beendet. Eine neue Prüfung wird gestartet.

Standardwert: 10

healthcheck_alert

Ganzzahl

Anzahl von aufeinanderfolgenden Systemintegritätsprüfungs-Fehlern, nach denen INSSLR2 anfängt, Fehler auf dem Grid-Dashboard auszugeben.

Wenn "0" festgelegt ist, werden keine Fehler im Dashboard angezeigt, aber die Systemintegritätsprüfungen sind noch aktiviert.

Legen Sie diesen Wert nicht zu niedrig fest, um unnötige Fehlermeldungen beim Starten/Beenden der Anwendung zu vermeiden.

Wenn Sie INSSLR2 im redundanten Modus ausführen und im Falle eines Fehlers des Backend-Servers auf den Sicherungsknoten umschalten möchten, finden Sie unter "fover_on_healthcheck" weitere Informationen.

Standard: 3

Erweiterte Eigenschaften für Failover-Szenarien

Name

Typ

Description

fover_mode

Zeichenfolge

Failover-Modus.

Gültige Werte: "none" (kein Failover), "symmetrisch" und "asymmetrisch"

Wenn "none" festgelegt ist, verhält sich INSSLR2 wie eine INSSLR2-Appliance und beinhaltet keine Failover-Funktionen.

Wenn "symmetrisch" festgelegt ist, wird INSSLR2 im symmetrischen Failover-Modus ausgeführt. Sie benötigen zwei INSSLR2-Appliances, die beide im symmetrischen Failover-Modus ausgeführt werden.

Wenn "asymmetrisch" festgelegt ist, wird INSSLR2 im asymmetrischen Failover-Modus ausgeführt. Sie benötigen zwei INSSLR2-Appliances, die beide im asymmetrischen Failover-Modus ausgeführt werden.

Hinweis: Bei der Ausführung des Failover-Modus muss für beide Appliances "fover_mode" auf den gleichen Wert festgelegt werden.

Standard: Keine

fover_remote_ip

IP addr

Remote-IP-Adresse der anderen INSSLR2-Appliance, die im Failover-Modus verwendet wird.

Hinweis: Lassen Sie dieses Feld leer, wenn Sie "fover_mode" auf "none" festgelegt haben.

Standard: (leer)

fover_nfy_prefix

Zeichenfolge

URL-Präfix, das angefordert wird, wenn ein Failover auftritt.

Die angeforderte URL ist:

http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask und geht durch das nfy-Terminal.

Standard: ?

fover_on_healthcheck

Ganzzahl

Geben Sie an, ob INSSLR2 ein Failover zum Sicherungsknoten vornehmen soll, wenn eine Systemintegritätsprüfung auf dem HTTP-Terminal fehlschlägt.

Wenn dies auf einen Wert ungleich Null festgelegt wird, nimmt INSSLR2 ein Failover nach der durch diesen Wert festgelegten Anzahl an Systemintegritätsprüfungen vor. Legen Sie diesen Wert nicht zu niedrig fest, um unnötige Fehlermeldungen beim Starten oder Beenden der Anwendung zu vermeiden.

Wenn Sie nur über Fehler benachrichtigt werden möchten, erhalten Sie weitere Informationen unter "healthcheck_alert".

Standard: 0 (deaktiviert).

Volumes

Name

Description

key

Ein schreibgeschütztes Daten-Volume (Platzhalter), das mindestens den SSL-Serversignaturschlüssel enthält. Die Datei sollte im PEM-Format vorliegen.

Das Zertifikat sollte sich im Stammverzeichnis des Schlüsselvolumes (server.pem) befinden, es sei denn, die cert_file-Eigenschaft wurde in einen anderen Namen geändert.

Fehlermeldungen

Die folgenden Meldungen können entweder in der Appliance-Protokolldatei oder im Systemprotokoll der Grid-Steuerung angezeigt werden, wenn die Appliance nicht startet:

Leistung
Anwendungs-Failover

INSSLR2 erkennt den Ausfall von INSSLR2 nach etwa 10 Sekunden und benötigt weitere 10 Sekunden für das Failover zur anderen Anwendung. Die Gesamtdauer vom ersten Anwendungsfehler bis zu dem Zeitpunkt, an dem die andere Anwendung den Datenverkehr übernimmt, beträgt ca. 20 Sekunden.

Anforderungsrate

INSSLR2 leitet mindestens 3.000 Transaktionen (Anfrage/Antwort-Paare) pro Sekunde weiter, abhängig von Dokumentgröße und verfügbarer Netzwerkbandbreite.

Datendurchsatz

INSSLR2 leitet mindestens 7 MB/Sekunde weiter, abhängig von Dokumentgröße und verfügbarer Netzwerkbandbreite

Gleichzeitige Verbindungen

Mit seinem Standardspeicher unterstützt INSSLR2 mindestens 500 gleichzeitig ausstehende Anfragen. Eine ausstehende Anfrage ist eine offene TCP-Verbindung vom Client, auf der eine oder mehrere unvollständige HTTP-Anfragen vorhanden sind.

Die maximale Zahl der gleichzeitigen Verbindungen hängt vom verfügbaren Speicher ab. Die Anzahl an gleichzeitigen http-Transaktionen wird pro 16 MB Speicher um 500 erhöht.

Beispiel: Wenn Sie im redundanten Modus 2.000 Verbindungen gleichzeitig aufrechterhalten möchten, benötigen Sie 100 M + 3*16 M = 148 M. Der im redundanten Modus mindestens benötigte Speicher beträgt 100 M.

Benachrichtigungen

Beim Ausführen im redundanten Modus ("fover_mode" ist nicht "none"), gibt INSSLR2 bei Aktivität/Passivität Benachrichtigungen aus. Dies erfolgt beim Starten des aktiven Knotens bzw. bei der Durchführung eines Failovers. Jeder Knoten sendet eine Benachrichtigung darüber, dass er aktiv oder passiv wurde.

INSSLR2 sendet zwei Benachrichtigungen:

Mit "fover_nfy_prefix" können Sie den Speicherort des aufgerufenen Remote-Skripts ändern und/oder zusätzliche Parameter hinzufügen.

Beispiele für Werte vom Typ "fover_nfy_prefix":

/path/to/script.php?, /path/to/script.php?username=user&password=pass&. 

Hinweise:

Systemintegritätsprüfung

INSSLR2 führt einen Cronjob pro Minute aus, der das Folgende überprüft:

Wenn eine der Aussagen zutrifft, wird eine Fehlermeldung an das Grid-Dashboard gesendet. Wenn mehr als ein Test fehlschlägt, wird eine zusammenfassende Meldung mit allen Fehlern im Grid-Dashboard platziert.

Jeder Fehler wird nur ein Mal pro Stunde an das Grid-Dashboard gesendet. In den ersten 5 Minuten nach dem Start der Appliance werden keine Fehler gemeldet. Dies verhindert Fehlalarme, wenn der andere Knoten in der Replikation noch nicht gestartet wurde.

Serverzertifikate

Um SSL zu verwenden, benötigen Sie sowohl das Zertifikat mit Signatur als auch den privaten Schlüssel, mit dem es verschlüsselt wurde. Der Schlüssel und das Zertifikat sollten im PEM-Format vorliegen und in einer von der Eigenschaft "cert_file" angegebenen Datei gespeichert sein.

Serverzertifikate generieren

Sie können ein Serverzertifikat generieren, das gegen eine Gebühr von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert werden kann. Alternativ erstellen Sie ein selbstsigniertes Zertifikat.

Führen Sie folgende Schritte aus:

  1. Generieren Sie mithilfe des folgenden Befehls einen privaten Schlüssel:
    openssl genrsa -out privkey.pem 2048 
    

    Mithilfe des folgenden Befehls können Sie außerdem einen kennwortgeschützten Schlüssel generieren. Wenn Sie einen kennwortgeschützten Schlüssel generieren, müssen Sie allerdings das Kennwort entfernen, bevor Sie ihn für INSSLR2 verwenden. INSSLR2 benötigt einen Schlüssel ohne Kennwort.

    openssl genrsa -des3 -out privkey.pem 2048 
    
  2. Erstellen Sie ein Zertifikat, indem Sie wie folgt vorgehen:

Verwenden von Serverzertifikaten

Sie können jetzt Zertifikat und Schlüssel in einer Datei speichern und in INSSLR2 verwenden, indem Sie den folgenden Befehl ausführen:

cat privkey.pem  server.crt > server.pem 

Wenn Ihr Schlüssel kennwortgeschützt ist, können Sie das Kennwort durch die Ausführung des folgenden Befehls entfernen:

openssl rsa -in key_with_pass.pem -out privkey.pem 

Verwenden vorhandener apache+mod_ssl-Serverzertifikate

INSSLR2 ermöglicht es Ihnen, ein vorhandenes Zertifikat zu verwenden, das in Apache verwendet wird. Überprüfen Sie anhand der obigen Schritte, ob der Schlüssel kennwortgeschützt ist, und speichern Sie anschließend das private Zertifikat und den Schlüssel in einer Datei.

Zum Beispiel:

Wenn Sie ein verkettetes Zertifikat verwenden, sollten Sie auch das vom Aussteller bereitgestellte vorübergehende Zertifikat einschließen. Speichern Sie den privaten Schlüssel, das Zertifikat und das vorläufige Zertifikat in dieser Reihenfolge in einer Datei.

Zum Beispiel:

Wichtig! Der Serversignaturschlüssel ist der Identitätsnachweis Ihrer Website. Er ist angreifbar, weil er ist nicht kennwortverschlüsselt ist, sodass die Appliance ihn ohne Ihre Hilfe lesen kann.

Achten Sie bei der Installation auf dem Daten-Volume darauf, die Schlüsseldatei zu schützen. Verwenden Sie das Daten-Volume nicht für andere Zwecke, und machen Sie es nicht sichtbar für einen Webserver, beispielsweise, um Daten mit Webzugriff, wie HTML-Seiten oder -Skripte, zu hosten.

Client-Zertifikate

Das folgende Beispiel zeigt, wie Sie Ihre eigene Zertifizierungsstelle erstellen und sie zum Unterzeichnen eigener Zertifikate mit OpenSSL verwenden. Dies wurde mithilfe von OpenSSL 0.9.8b getestet, die gleiche Version, die in INSSLR2 installiert ist.

Zertifizierungsstelle erstellen

Wenn Sie bereits über eine eigene Zertifizierungsstelle verfügen, mit der ein selbstsigniertes Serverzertifikat erstellt wird, können Sie diesen Schritt überspringen und diese Zertifizierungsstelle verwenden. Wenn Sie die Instrumente der vertrauenswürdigen Zertifizierungsstelle für Ihre Anwendung erstellt haben, ist es wichtig, dass die Umgebung sicher ist.

Wichtig! Der private Schlüssel für die Zertifizierungsstelle bildet die Vertrauensgrundlage für die Anwendung. Sie sollten also immer wissen, wo er sich befindet und ihn nicht an Dritte weitergeben.

Führen Sie folgende Schritte aus:

  1. Erstellen Sie ein Arbeitsverzeichnis auf einem sicheren Host und innerhalb dieses Verzeichnisses:
  2. Erstellen Sie einen kennwortgeschützten RSA-Schlüssel für die CA mit einer Schlüssellänge von 2048 Bit:
    openssl genrsa -des3 -out CA/private/CA_key.pem 2048 
    
  3. Erstellen Sie mit dem privaten Schlüssel das Zertifikat für öffentliche Schlüssel für die CA:
    openssl req -new -key CA/private/CA_key.pem -x509 -days 365 -out CA/CA_cert.pem 
    

Von der Zertifizierungsstelle signierte Client-Zertifikate erstellen

Sie können Client-Zertifikate erstellen, die von einer Zertifizierungsstelle signiert werden.

Führen Sie folgende Schritte aus:

  1. Generieren Sie einen privaten RSA-Schlüssel:
    openssl genrsa -out clientA_privkey.pem 2048 
    

    Um einen kennwortgeschützten Schlüssel zu erstellen, verwenden Sie den "-des3"-Schalter.

  2. Generieren Sie eine Zertifikatsignieranfrage (Certificate Signing Request, CSR) vom privaten Schlüssel:
    openssl req -new -key clientA_privkey.pem -out clientA_request.csr 
    
  3. Unterschreiben Sie das in der Zertifikatsignieranfrage enthaltene Zertifikat mit dem für CA generierten Zertifikat:
    openssl x509 -req -days 365 -in clientA_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAcreateserial -out clientA.cer 
    

Hinweise:

Erstellen der von INSSLR2 verwendeten CA-Listen-Dateien

Widerrufen der von der Zertifizierungsstelle signierten Client-Zertifikate

Um ein von der CA herausgegebenes Client-Zertifikat zu widerrufen, verwenden Sie den folgenden Befehl:

openssl ca. -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise 

Unten sehen Sie ein Beispiel für "openssl.conf". Der Parameter "crl_reason" kann entweder "unspecified", "keyCompromise", "CACompromise", "affiliationChanged", "superseded", "cessationOfOperation", "certificateHold" oder "removeFromCRL" sein. Bei der Abstimmung des Grunds wird die Groß-/Kleinschreibung nicht beachtet.

So generieren Sie die Zertifikatsaufhebungsliste (Certificate Revocation List, CRL) neu:

openssl ca. -config openssl.conf -gencrl -out CA/crl.pem 

In diesem Beispiel ist "crl.pem" die Datei, die als Eigenschaft "cert_revocation_list" an INSSLR2 übergeben werden muss.

Dies ist eine Beispielkonfigurationsdatei für das obige Beispiel: 
      ####################################################################
      [ ca ]
      default_ca      = CA_default            # The default ca section

      ####################################################################
      [ CA_default ]

      dir       = ./CA         # Where everything is kept
      certs      = $dir/certs      # Where the issued certs are kept
      crl_dir     = $dir/crl       # Where the issued crl are kept
      database    = $dir/index.txt    # database index file.
      #unique_subject = no          # Set to 'no' to allow creation of
                                        # several ctificates with same subject.
      new_certs_dir  = $dir/newcerts     # default place for new certs.

      certificate   = $dir/cacert.pem    # The CA certificate
      serial     = $dir/serial      # The current serial number
      crlnumber    = $dir/crlnumber    # the current crl number
                                        # must be commented out to leave a V1 CRL
      crl       = $dir/crl.pem     # The current CRL
      private_key   = $dir/private/cakey.pem# The private key
      RANDFILE    = $dir/private/.rand  # private random number file

      default_days  = 365          # how long to certify for
      default_crl_days= 30          # how long before next CRL
      default_md   = sha1         # which md to use.
      preserve    = no          # keep passed DN ordering

      policy     = policy_anything

      [ policy_anything ]
      countryName       = optional
      stateOrProvinceName   = optional
      localityName      = optional
      organizationName    = optional
      organizationalUnitName = optional
      commonName       = supplied
      emailAddress      = optional

Erstellen der von INSSLR2 verwendeten Zertifizierungsstellen-Listendateien

Sie können Zertifizierungsstellen-Listendateien erstellen, die von INSSLR2 verwendet werden.

Erstellen der von der Eigenschaft "ca_list_client" identifizierten Datei:

  1. Greifen Sie auf die folgende Datei zu:
    cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem 
    
  2. Legen Sie diese Datei auf dem Schlüssel-Volume oder auf dem Volume ab, das von nfs über das fs-Terminal bereitgestellt wird .

    Bei Bedarf kann das Serverzertifikat von INSSLR2, z. B. "server.pem", wie die Client-Zertifikate erstellt und ebenso von der erstellten Zertifizierungsstelle signiert werden. Verwenden Sie für dieses Zertifikat kein Kennwort.

  3. Wenn "server.pem" und "ca_list_client.pem" eingerichtet sind, können Sie die Client-Zertifikatauthentifizierung wie folgt testen:

Client-Zertifikat-Header

Wenn sich ein Client über HTTPS mit INSSLR2 verbindet, und es sich um ein Client-Zertifikat handelt, fügt INSSLR2 die folgenden Header in die Anfrage ein, die an den Backend-Server ausgegeben wird:

Die Anwendung kann selbst entscheiden, ob diese Header verwendet werden oder nicht. INSSLR2 gibt diese Informationen einfach weiter, ohne sie zu überprüfen. Geprüft werden ausschließlich die Richtigkeit von Signatur und Verschlüsselung.

Typische Verwendung

Webanwendungen

Um den http(s)-Zugriff auf Ihre Anwendung zu ermöglichen, schließen Sie das HTTP-Terminal direkt an die NET-Appliance an.

APP--Webanwendungen_Bereitstellen von HTTPS--ICO

Wenn Sie eine skalierbare Webanwendung benötigen, verbinden Sie das HTTP-Terminal mit einer HALB-Appliance.

APP--Webanwendungen_Skalierbar--ICO

In den Konfigurationsbeispielen werden nur Eigenschaften aufgeführt, die auf Nicht-Standard-Werte festgelegt sind.

Name

Typ

Description

17_accept

http/https/both

Gibt an, welches l7-Protokoll verwendet wird.

Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten.

Webanwendungen mit Zusatzdiensten

Wenn Sie abgesehen von http über weitere Dienste in Ihrer Anwendung verfügen, können Sie HTTP-Datenverkehr mithilfe von INSSLR2 an das HTTP-Terminal weiterleiten und das Terminal "aux" für andere Dienste verwenden.


APP--Webanwendungen mit Zusatzdiensten--ICO

Eigenschaft

Wert

Hinweise

17_accept

http/https/both

Gibt an, welches l7-Protokoll verwendet wird.

Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten.

l3_accept_proto

tcp

Tcp-Ports 25.110.143 an Terminal "aux" umleiten.

l3_accept_port

25,110,143

Tcp-Ports 25.110.143 an Terminal "aux" umleiten.

Webanwendungen mit mehreren Zusatzdiensten

Wenn Sie mehrere TCP/UDP-Dienste und HTTP haben, können Sie den HTTP-Datenverkehr mithilfe von INSSLR2 an das HTTP-Terminal weiterleiten und das Terminal "aux" für die Weiterleitung des übrigen Datenverkehrs an PS8 verwenden. PS8 übergibt den gewünschten Datenverkehr anschließend an die Backend-Server.

APP--Webanwendungen mit weiteren Zusatzdiensten--ICO

Eigenschaft

Wert

Hinweise

17_accept

http/https/both

Gibt an, welches l7-Protokoll verwendet wird.

Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten.

l3_accept_proto

all

Leiten Sie den gesamten IP-Datenverkehr (ausgenommen ICMP), der nicht an das HTTP-Terminal übergeben wird, an das Terminal "aux" weiter.

Redundante Webanwendungen

Wenn Sie eine redundante Webanwendung bereitstellen möchten, können Sie die Anwendung kopieren und mithilfe von INSSLR2 Failover-Funktionen für die externe IP-Adresse bereitstellen.

Hinweis: Wenn zwei INSSLR2-Appliances in der gleichen Anwendung für die Ausführung im redundanten Modus konfiguriert werden, wird eine Warnmeldung angezeigt, wenn Sie die gleiche IP-Adresse auf zwei unterschiedlichen Schnittstellen konfigurieren. Ignorieren Sie diesen Fehler.

Sicherungswebanwendung

Wenn Sie nur eine Sicherungsanwendung benötigen, die Benutzer über Ausfallzeiten benachrichtigt, können Sie mithilfe von INSSLR2 eine Sicherungsanwendung erstellen, die minimale Ressourcen benötigt.

Verwendete Appliances:

INSSLR2 auf primärer Anwendung

Eigenschaft

Wert

Hinweise

fover_mode

asymmetric

Ausführung im asymmetrischen Modus, um die Sicherungsanwendung nur zu verwenden, wenn die primäre Anwendung ausgefallen ist.

fover_remote_ip

192.168.100.2

Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll.

INSSLR2 auf Sicherungsanwendung

Eigenschaft

Wert

Hinweise

fover_mode

asymmetric

Ausführung im asymmetrischen Modus, um die Sicherungsanwendung nur zu verwenden, wenn die primäre Anwendung ausgefallen ist.

fover_remote_ip

192.168.100.1

Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll.

Hinweis: Sie können die Attribute der mit dem Fover-Terminal verbundenen Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren. Beispiel: Eigenschaften "fover_local_ip" und "fover_netmask".

Redundante Webanwendung (einzelne Anwendung)

Wenn Ihre Anwendung im redundanten Modus ausgeführt werden soll, ohne dass eine neue Anwendung erstellt wird, können Sie die Appliances verdoppeln und im redundanten Modus ausführen. Da dies bedeutet, mindestens zwei Webserver und zwei Datenbank-Appliances im normalem Modus zu verwenden, werden sie alle verwendet, was eine zusätzliche Skalierbarkeit ermöglicht. Allerdings können beide auch getrennt voneinander von der Anwendung verwendet werden, falls eine der Appliances ausfällt.

Wenn Sie zusätzliche Skalierbarkeit benötigen, können Sie weitere Web- und Datenbank-Appliances hinzufügen. In diesem Beispiel wird die Hälfte der Appliances (in1, sw1, web1, db1) in einer Failover-Gruppe ausgeführt. Die übrigen Appliances (in2, sw2, web2, db2) befinden sich in einer anderen Failover-Gruppe, sodass die Anwendung einen Serverabsturz überstehen kann. Diese Anwendung bietet Redundanz zu sehr geringen Kosten, da alle Appliances (außer einer INSSLR2- und einer HALB-Appliance, die sehr geringe Ressourcen benötigen) sich im aktiven Zustand befinden und keine Ressourcen für die Sicherungsanwendung benötigt werden. Diese wird nämlich nur ausgeführt, wenn die primäre Appliance fehlschlägt.

APP--Redundante Webanwendung_einzelne Anwendung_ICO

in1

Eigenschaft

Wert

Hinweise

fover_mode

symmetric

Im symmetrischem Modus ausführen.

fover_remote_ip

192.168.100.2

Remote-IP-Adresse, die für die Kommunikation zwischen den INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll.

in2

Eigenschaft

Wert

Hinweise

fover_mode

symmetric

Im symmetrischem Modus ausführen.

fover_remote_ip

192.168.100.1

Remote-IP-Adresse, die für die Kommunikation zwischen den INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll.

db1

Eigenschaftsname

Wert

Hinweise

auto_create

1

Datenbank erstellen, wenn die Volumes leer sind.

server_id

1

Masterserver 1. Muss von der Remote-Anwendung abweichen

rpl_mode

master_and_slave

Master und Slave

db2

Eigenschaftsname

Wert

Hinweise

auto_create

1

Datenbank erstellen, wenn die Volumes leer sind.

server_id

1

Masterserver 1, muss von der Remote-Anwendung abweichen

rpl_mode

master_and_slave

Master und Slave

Redundante Webanwendung (zwei identische Anwendungen)

Sie können zwei identische Anwendungen auf dem gleichen Grid, aber auf getrennten Servern, oder auf unterschiedlichen Grids ausführen, wenn von beiden Grids auf die IP-Adresse zugegriffen werden kann. Dies bewirkt, dass der Ausfall eines Servers nur eine der Anwendungen betrifft.

Hinweis: Wenn zwei INSSLR2-Appliances in der gleichen Anwendung für die Ausführung im redundanten Modus konfiguriert werden, wird eine Warnmeldung angezeigt, wenn Sie die gleiche IP-Adresse auf zwei unterschiedlichen Schnittstellen konfigurieren. Ignorieren Sie diesen Fehler.

Das Beispiel unten zeigt eine Anwendung, die eine Datenbank-Appliance verwendet, die auch im redundanten Modus ausgeführt wird. Wenn eine Anwendung fehlschlägt, kann die andere Anwendung ohne Datenverlust übernehmen.

APP--Redundant Webanwendung_Zwei identische Anwendungen--ICO

Verwendete Appliances:

Clientanfragen treffen auf dem Insslr-Gateway ein. Das Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an den Webserver "web1" oder "web2" leitet.

Die Webserver greifen auf die db-Datenbank zu. Die Db-Appliance stellt eine Verbindung zur Remote-Anwendung her. Damit die Datenbank reproduziert werden kann, ist die Remote-Anwendung eine identische Kopie, wobei der einzige Unterschied in der "server_id" von "db" und der Netzwerkeinrichtung besteht.

Die Remote-Anwendung ist mit der db-Appliance über das Gateway "repl_in" verbunden, das so konfiguriert ist, dass nur die Verbindung vom Gateway "repl_out" der Remote-Anwendung möglich ist. Die db-Appliances in den beiden Anwendungen werden in einer Master-Master-Einrichtung ausgeführt, sodass sie immer über identische Daten verfügen.

Beispiel für eine Eigenschaftskonfiguration

Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden. Webzugriff auf db ist über den admin-Gateway auf Port 8080 verfügbar.

insslr

Eigenschaft

Wert

Hinweise

fover_mode

symmetric

Im symmetrischem Modus ausführen.

fover_remote_ip

192.168.100.2

Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den zwei Anwendungen verwendet werden soll. Ändern Sie diese in 192.168.100.1 auf der Remote-Anwendung.

db

Eigenschaftsname

Wert

Hinweise

auto_create

1

Datenbank erstellen, wenn die Volumes leer sind.

error_log_filename

db.error

Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll.

error_log_level

Fehler

Fehlerprotokollierungs-Ebene

server_id

1

Masterserver 1, muss auf der zweiten Anwendung abweichen

rpl_mode

master_and_slave

Master und Slave

Wichtig! Nur eine der Anwendungen ist jederzeit aktiv, die andere wird einfach für Failover ausgeführt und verwendet, wenn die aktive Anwendung fehlschlägt.

Hinweise:

In der Appliance verwendete Open Source- und Drittanbietersoftware

INSSLR2 verwendet zusätzlich zu den Drittanbieter-Open-Source-Paketen der jeweiligen Basisklasse LUX6 die folgenden Drittanbieter-Open-Source-Pakete.

Software

Version

Geändert

Lizenz

Hinweise

PyXML

0.8.4-19

Nein

BSD

N/A

heartbeat

3.0.4-1

Nein

LGPLv2.1

N/A

heartbeat-libs

3.0.4-1

Nein

LGPLv2.1

N/A

iptables

1.4.7-5.1.el6_2

Nein

GPLv2

N/A

libgcrypt

1.4.5-9.el6_2.2

Nein

GPLv2

N/A

libgpg-error

1.7-4

Nein

LGPLv2.1

N/A

lighttpd

1.4.18-1

Nein

BSD

N/A

nginx

0.7.62-1

Ja

BSD

N/A

sudo

1.7.4p5-13.el6_3

Nein

BSD

N/A

telnet

0.17-47

Nein

BSD

N/A