-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft allgemein Systeme und Vorrichtungen zum sicheren Managen von Netzwerkverbindungen.
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
-
HINTERGRUND
-
Computervorrichtungen kommunizieren oft über Netzwerke, wie beispielsweise ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), das Internet und/oder ähnliches. Weil Computersysteme oft verwendet werden, um wichtige Betriebssysteme zu steuern, vertrauliche Daten zu speichern oder auf diese zuzugreifen oder andere wichtige oder sensible Funktionen durchzuführen, ist eine Sicherheit von Computersystemen von großer Wichtigkeit. In einigen Fällen kann eine Sicherheit durch Begrenzen oder Steuern von den Vorrichtungen oder Systemen, mit welchen ein spezifisches Computersystem kommunizieren darf, erhöht werden.
-
Figurenliste
-
Nicht beschränkende und nicht erschöpfende Implementierungen der vorliegenden Offenbarung werden unter Bezugnahme auf die folgenden Figuren beschrieben, wobei sich gleiche Bezugszeichen auf gleiche Teile in allen verschiedenen Ansichten beziehen, solange nichts anderes spezifiziert ist. Vorteile der vorliegenden Offenbarung werden in Bezug auf die folgende Beschreibung und die beigefügten Zeichnungen besser verstanden werden, wobei:
- 1 ein schematisches Blockdiagramm ist, das eine beispielhafte Betriebsumgebung für einen Managementhost gemäß einer Implementierung darstellt;
- 2 ein schematisches Blockdiagramm ist, das beispielhafte Komponenten eines Managementhosts gemäß einer Implementierung darstellt;
- 3 ein schematisches Signaldiagramm ist, das ein Verfahren zum Managen von Kommunikationskonfigurationen an Endpunkten gemäß einer Implementierung darstellt;
- 4 ein schematisches Ablaufdiagramm ist, das ein Verfahren zum Managen von Netzwerkverbindungen gemäß einer Implementierung darstellt; und
- 5 ein Blockdiagramm ist, das eine beispielhafte Computervorrichtung oder ein beispielhaftes Computersystem gemäß dem Ermöglichen einer Offenbarung der hierin gelehrten Computerprozesse darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Gegenwärtige Ansätze zum Sichern eines Systems richten sich auf ein Sichern oder Konfigurieren von Endpunkten von Kommunikationen. Beispielsweise können IP-Tabellen, ein Kernwerkzeug in Linux™ zum Sichern von Systemen, zulassen, dass ein spezifisches System einen Zugriff auf das System basierend auf Ports und Internetprotokoll-(IP-)Adressblöcken verweigert. Amazon Web Services™ (AWS) stellt Sicherheitsgruppen durch Spezifizieren von zugelassenen Verbindungen zu und von anderen Sicherheitsgruppen zur Verfügung, welche mehr als eine Maschine oder eine Adresse enthalten können.
-
Die Anmelder haben erkannt, dass gegenwärtige Technologien kein effizientes Verfahren zum Bestätigen zur Verfügung stellen, dass die zugelassenen Verbindungen vollständig und richtig sind. Innerhalb eines Softwareprodukts kann es interne Verbindungen zwischen bestimmten Diensten geben, die zwei Endpunkte auf zwei oder mehr Maschinen erfordern. Weil existierende Technologien auf einer Einzelendpunktbasis konfiguriert sind, riskiert dieser Ansatz fehlangepasste Konfigurationen. Beispielsweise kann eine Maschine für eine Verbindung zulassend sein, während es die andere nicht ist. Amazon stellt ein Werkzeug, CloudFormation™, für die Erzeugung von Sicherheitsgruppen zur Verfügung, aber es erfordert explizit einen Einzelendansatz. Wenn zwei Sicherheitsgruppen erforderlich sind, um zu kommunizieren, muss ein Administrator zwei Regeln in der Schablone eingeben, wie es in der folgenden Anmerkung für AWS CloudFormation™ angegeben ist, die gefunden wird bei
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html:
- Wenn Sie zwei Sicherheitsgruppen bei den Eingangs- und Ausgangsregeln von diesen Sicherheitsgruppen mit Querverweisen versehen, verwenden Sie die Ressourcen AWS::EC2::SecurityGroupEgress und AWS::EC2::SecurityGrouplngress, um Ihre Regeln zu definieren. Verwenden Sie nicht die eingebetteten Eingangs- und Ausgangsregeln in AWS::EC2::SecurityGroup. Wenn Sie dies tun, führt es zu einer zirkularen Abhängigkeit, welche AWS CloudFormation nicht zulässt.
-
Basierend auf den vorangehenden Beschränkungen haben die Anmelder Systeme, Verfahren und Vorrichtungen entwickelt, die ein Netzwerkverbindungsmanagement verbessern. Die Anmelder erkannten, dass bei wenigstens einer Ausführungsform ein Managen von Netzwerkkommunikationszulassungen aus der Perspektive von zwei Endpunkten zusammen, eher als ein Managen von Endpunkten separat, zu einer großartigeren Steuerung und Effizienz führt.
-
Bei einer Ausführungsform kann ein System zum Managen von Netzwerkverbindungen eine Liste von erwarteten Verbindungen für eine Vielzahl von gemanagten Maschinen, Vorrichtungen oder Computersystemen speichern. Beispielsweise kann die Liste von erwarteten Verbindungen unter Verwendung einer Auszeichnungssprache oder einem Datenserialisierungsstandard, wie beispielsweise YAML, gespeichert werden. YAML steht für eine vereinfachte Auszeichnungssprache zur Datenserialisierung und zielt darauf ab, ein menschlich lesbarer Standard für viele oder alle Programmiersprachen zu sein. Bei einer Ausführungsform ist jede Verbindung in der Liste von erwarteten Verbindungen mit einem Startpunkt, einem Endpunkt, einem IP-Protokoll und einer Port-Nummer oder einem Bereich von Port-Nummern definiert. Das managende System kann auch ein Werkzeug enthalten, um nötige Erlaubnisse an beiden Endpunkten zu untersuchen und zu erzeugen, ein Werkzeug, um diese Verbindungen zu validieren, und/oder ein Werkzeug, um Abbildungen zu spezifizieren, wenn sich Endpunkte auf mehrere Maschinen abbilden. Eines oder mehrere dieser Werkzeuge kann oder können verwendet werden, um Verbindungsinformation auf entfernten Maschinen zu einer einzigen Maschine zu aggregieren (z.B. dem managenden System), und für die Fähigkeit, Konfigurationen von der einzigen Maschine zu entfernten Maschine zu drücken bzw. stoßen.
-
Bei einer Ausführungsform kann eine Liste von erwarteten Verbindungen, wie beispielsweise die Verbindungen beschreibende YAML-Datei als ein Quellcodeartefakt gemanagt werden (unter Verwendung von irgendeiner Anzahl von Quellcodeversionssystemen). Die allerletzte Version kann dann verwendet werden, um existierende Konfigurationen oder Verbindungen gegenüber denjenigen, die in der Liste definiert sind, zu validieren. Bei einer Ausführungsform können bei Live- bzw. Direkt-Konfigurationen durchgeführte Änderungen gegenüber erwarteten Konfigurationen geprüft werden und Alarme erzeugt werden, wenn die Konfigurationen außerhalb einer Synchronisation sind.
-
Bei einer Ausführungsform enthält ein System zum Managen von Netzwerkverbindungen eine Speicherkomponente, eine Decodierkomponente, eine Regelmanagerkomponente und eine Benachrichtigungskomponente. Die Speicherkomponente ist konfiguriert, um eine Liste von erwarteten Verbindungen für eine Vielzahl von vernetzten Maschinen zu speichern. Jede Verbindung in der Liste von erwarteten Verbindungen definiert einen Startpunkt und einen Endpunkt für die Verbindung. Die Decodierkomponente ist konfiguriert, um Nachrichten von der Vielzahl von vernetzten Maschinen zu decodieren, die eine oder mehrere Verbindungen für eine entsprechende Maschine anzeigen. Die Regelmanagerkomponente ist konfiguriert, um ein unerwartetes Vorhandensein oder Nichtvorhandensein einer Verbindung basierend auf der Liste von erwarteten Verbindungen auf wenigstens einer der Vielzahl von vernetzten Verbindungen zu identifizieren. Die Benachrichtigungskomponente ist konfiguriert, um eine Benachrichtigung oder Anzeige über das unerwartete Vorhandensein oder Nichtvorhandensein zur Verfügung zu stellen.
-
Nimmt man nun Bezug auf die Figuren, stellt 1 ein beispielhaftes System 100 dar, das eine Betriebsumgebung für einen Managementhost 102 zur Verfügung stellt. Das System 100 enthält eine Vielzahl von gemanagten Computersystemen 104 und eine Vielzahl von externen Systemen 106. Der Managementhost 102 und die Computersysteme 104 können Computervorrichtungen enthalten, wie beispielsweise Server, virtuelle Maschinen oder irgendeine andere Computervorrichtung, die einen Teil eines vernetzten Computersystems 108 bildet. Der Managementhost 102 und die Computersysteme 104 des Netzwerkcomputersystems 108 können physikalisch innerhalb desselben Datenzentrums oder derselben Serverfarm angeordnet sein oder können entfernt voneinander angeordnet sein und können durch den Managementhost 102 gemeinsam gemanagt werden. Die externen Systeme 106 stellen Systeme dar, die durch den Managementhost 102 nicht gemanagt werden, und können Computersysteme enthalten, die innerhalb desselben Datenzentrums oder entfernt von dem Managementhost 102 angeordnet sind. Der Managementhost 102, die Computersysteme 104 und die externen Systeme 106 können alle mit einem oder mehreren Netzwerken oder Netzwerkvorrichtungen verbunden sein, was zulässt, dass sie miteinander kommunizieren. Beispielsweise können der Managementhost 102, die Computersysteme 104 und die externen Systeme 106 über das Internet, durch private Netze oder irgendeinen Typ von Netzwerk miteinander kommunizieren.
-
Die internen oder gemanagten Computersysteme 104 können jeweils Verbindungskonfigurationen, wie beispielsweise in einer Konfigurationsdatei, für sich selbst speichern. Die Verbindungskonfigurationen können in einer Weiterleitungstabelle, einer IP-Tabelle, einer Firewall oder irgendeinem anderen Format oder Programm gespeichert werden. Die Verbindungskonfigurationen können andere Vorrichtungen, Adressen oder Sicherheitsgruppen anzeigen, für die zugelassen ist, dass sie mit dem Computersystem 104 kommunizieren. Die Verbindungskonfigurationen können eine Kommunikationsbenachrichtigung (z.B. eingehend oder abgehend), eine Adresse, eine Port-Nummer (oder einen Bereich von Port-Nummern), einen Sicherheitsgruppenidentifizierer oder ähnliches für eine spezifische Verbindung spezifizieren. Ein Sicherheitsgruppenidentifizierer kann einen Namen, eine Nummer oder einen anderen Identifizierer enthalten, der einer Vielzahl von Maschinen oder Adressen entspricht. Beispielsweise enthält eine erste Sicherheitsgruppe 110 zwei gemanagte Computersysteme 104 und enthält eine zweite Sicherheitsgruppe 112 zwei externe Systeme 106. Somit kann ein Verbindungseintrag in einer Konfigurationsdatei für ein spezifisches Computersystem 104 anzeigen, dass zugelassen ist, dass ein Computersystem mit irgendeinem System in der ersten Sicherheitsgruppe 110 oder der zweiten Sicherheitsgruppe 112 (entweder eingehend oder abgehend) kommuniziert, ohne Maschinen in den Sicherheitsgruppen explizit zu identifizieren. Bei einer Ausführungsform speichert jedes Computersystem 104 nur Konfigurationen für sich selbst.
-
Der Managementhost 102 speichert eine Verbindungs-Masterdatei bzw. -Hauptdatei, die Master- bzw. Hauptinformation für alle gemanagten Computersysteme 104 enthält. Beispielsweise kann die Verbindungs-Hauptdatei eine Liste von erwarteten Verbindungen für alle der gemanagten Computersysteme 104 in dem vernetzten Computersystem 108 enthalten. Somit speichert die Liste bei einer Ausführungsform Verbindungsinformation für jedes der Computersysteme 104, so dass alle der Konfigurationen für die Computersysteme 104 in der Verbindungs-Hauptdatei gespeichert sind. Die Verbindungs-Hauptdatei kann basierend auf irgendeinem Dateienformat gespeichert werden, wie beispielsweise einer Auszeichnungssprache oder einem Datenserialisierungsstandard. Gemäß einer Ausführungsform umfasst die Verbindungs-Hauptdatei eine YAML-Datei.
-
Mit der durch den Managementhost 102 gespeicherten Verbindungs-Hauptdatei kann der Managementhost dann aktuelle Konfigurationen für die Computersysteme 104 überwachen (z.B. basierend auf den Konfigurationsdateien). Bei einer Ausführungsform kann jedes der Computersysteme 104 periodisch, oder in Reaktion auf eine Anfrage, seine Konfigurationsdatei zum Managementhost 102 senden. Wenn die Konfigurationsdateien durch den Managementhost 102 empfangen worden sind, kann der Managementhost 102 die Konfigurationsdateien mit der Verbindungs-Hauptdatei vergleichen, um irgendwelche Unterschiede zu erfassen. Bei einer Ausführungsform können die Unterschiede das Vorhandensein einer unerwarteten Verbindung in einer Konfigurationsdatei bei einem Computersystem enthalten. Beispielsweise kann ein Verbindungseintrag in einer Konfigurationsdatei keinen entsprechenden Eintrag in der Verbindungs-Hauptdatei haben. Bei einer Ausführungsform können die Unterschiede das Nichtvorhandensein einer erwarteten Verbindung in einer Konfigurationsdatei bei dem Computersystem enthalten. Beispielsweise kann ein Verbindungseintrag in der Verbindungs-Hauptdatei keinen entsprechenden Eintrag in der Konfigurationsdatei (den Konfigurationsdateien) für das richtige eine oder die richtigen mehreren Computersysteme 104 haben.
-
Die durch den Managementhost 102 identifizierten Unterschiede können anzeigen, dass es einen Fehler/eine Weglassung bei entweder der Verbindungs-Hauptdatei oder der Konfigurationsdatei (den Konfigurationsdateien) für ein oder mehrere Computersysteme 104 gibt. Wenn es beispielsweise eine unerwartete Verbindung in einer Konfigurationsdatei (in Bezug auf die Verbindungs-Hauptdatei) gibt, kann es sein, dass die Verbindungs-Hauptdatei nicht richtig konfiguriert worden ist und die unerwartete Verbindung aktuell in der Verbindungs-Hauptdatei sein sollte. Andererseits kann die unerwartete Verbindung zeigen, dass die Konfigurationsdatei für das Computersystem 104 nicht richtig ist und dass es ein Sicherheitsrisiko oder ein Betriebsrisiko für das Computersystem gibt.
-
Bei einer Ausführungsform können der Managementhost 102 und seine Funktionen und Merkmale signifikante Vorteile gegenüber anderen verfügbaren Technologien zur Verfügung stellen. Beispielsweise haben existierende Technologien, die alle einzelendpunktbasiert sind, keinen einfachen Mechanismus, um existierende Konfigurationen gegenüber erwarteten Konfigurationen zu überwachen. Weil der Managementhost 102 eine einfache und schnelle Weise zur Verfügung stellt, um Verbindungen auf einer Verbindungsbasis zu überwachen und zu managen, eher als auf einer Einzelendpunktbasis, erhöht der Managementhost 102 die Sicherheit und reduziert Kosten beim Überwachen. Weiterhin können diese Überwachungsaspekte als gültige Steuerungen für verschiedene Sicherheitszertifizierungen wirken, einschließlich beispielsweise der Dienstorganisationssteuerung 2 (SOC2)-Zertifizierung und der Gesundheitsversicherungskontierbarkeitshandlung (HIPAA)-Zertifizierung und -Zustimmung.
-
Bei einer Ausführungsform können der Managementhost 102 und die Verbindungs-Hauptdatei verwendet werden, um Sicherheitsgruppenkonfigurationen in existierenden Cloud-Diensten zu managen, wie beispielsweise in AWSTM-Konten von Amazon. Bei einem Beispiel können AWS-Sicherheitsgruppen an Endpunkten zusammen mit externen Unternetzen, wie es erforderlich ist, verwendet werden. Die Verbindungs-Hauptdatei (wie beispielsweise eine YAML-Datei) kann anmerken, dass ein bestimmter Dienst oder eine bestimmte Maschine mit einem anderen Dienst oder einer anderen Maschine kommunizieren muss. Durch Laufenlassen eines Regelmanagers kann der Managementhost 102 sicherstellen, dass die Regel an den Endpunkten existiert. Der Regelmanager kann auch Regeln in einer Sicherheitsgruppe untersuchen und diejenigen Regeln löschen, die nicht erwartet sind. Bei einer Ausführungsform kann der Regelmanager als Validierer (z.B. in Reaktion auf Flags, wenn der Regelmanager initiiert wird) arbeiten, um eine Zahl von Unterschieden zwischen der erwarteten Gruppe von Regeln (z.B. in der Verbindungs-Hauptdatei) und den existierenden Regeln (z.B. in den Konfigurationsdateien) zur Verfügung zu stellen.
-
Zu Darstellungszwecken könnte eine beispielhafte Regel eine solche sein, die zulässt, dass externe Lastausgleicher auf einem einzelnen Port zu Instanzen für globale Dienste (GS) sprechen. Ein Administrator kann eine Sicherheitsgruppe prod_elb für die elastischen Lastausgleicher und prod_gs für globale Dienste definieren, die die Maschinen, Adressen, Identifizierer oder ähnliches identifizieren, die zu jeder Gruppe oder jedem Dienst gehören. Die Regel kann in einer YAML-Datei wie folgt gespeichert werden.
- Quelle: prod_elb
- Zielort: prod_gs
- Protokoll: tcp
- Dienst: snowflake_elb
-
Die obige Regel teil einem Regelmanager (z.B. Managementhost 102 oder Dienst, der auf dem Managementhost 102 laufengelassen wird) mit, einen Port zu erwarten, der als snowflake_elb definiert ist (z.B. mit einem Wert 8084), um mit dem Übertragungssteuerungsprotokoll (TCP) mit einer abgehenden Regel auf prod_elb zu prod_gs und einer eingehenden Regel auf prod_gs von prod_elb geöffnet zu werden. Eine zweite Abbildungsdatei kann verwendet werden, um zu definieren, welche Maschinen (z.B. Adressen, Identifizierer, etc.) die Rolle für globale Dienste (GS) haben, um prod_gs als eine Sicherheitsgruppe zu enthalten, und Lastausgleiche, um prod_elb zu enthalten. Ein beispielhafter Code für GS kann wie folgt sein:
- Rolle: GS
- Gruppen:
- - Gruppe: prod_gs
- - Gruppe: prod_core
-
Bei einer Ausführungsform ist die Rolle für GS mit einer Gruppe prod_gs und einer zweiten Gruppe prod_core für Regeln enthalten, die über alle Instanzen hinweg gemeinsam genutzt werden. Beispielsweise kann eine Rolle zu mehr als einer Sicherheitsgruppe gehören (Amazon-AWSTM lässt bis zu fünf Sicherheitsgruppen bei jeder Instanz zu). Bei einer Ausführungsform kann der Managementhost ein Validierungsprogramm ausführen, um zu bestätigen, dass alle GS-Instanzen mit beiden Sicherheitsgruppen laufen.
-
Das obige Beispiel ist nur illustrativ und enthält Lehren und Prinzipien, die erweitert werden können, um für irgendeine Konfiguration mit mehreren Endpunkten zu gelten. Bei einer Ausführungsform kann der Managementhost 102 dann Konfigurationen zu den Endpunkten drücken (oder die gemanagten Computersysteme 104 können ziehen). Bei einer Ausführungsform kann die aktuelle Konfiguration an einem Endpunkt (z.B. ein gemanagtes Computersystem 102) durch den Managementhost angefragt werden und/oder zu diesem gesendet werden. Weiterhin wird erwogen, dass eine weite Vielfalt von Dateienformattypen oder Kommunikationskonfigurationen für Endpunkte innerhalb des Schutzumfangs der vorliegenden Offenbarung sind. Beispielsweise können Endpunkte jeweils Führungstabellen haben und können durch einen einzigen Führungstabellenmanager auf einem Managementhost 102 gemanagt werden.
-
2 ist ein schematisches Blockdiagramm, das beispielhafte Komponenten eines Managementhosts 102 darstellt. Bei der dargestellten Ausführungsform enthält der Managementhost 102 eine Speicherkomponente 202, eine Decodierkomponente 204, eine Regelmanagerkomponente 206, eine Benachrichtigungskomponente 208 und eine Drückkomponente 210. Die Komponenten 202, 210 sind nur anhand einer Illustration angegeben und es kann sein, dass nicht alle in allen Ausführungsformen enthalten sind. Tatsächlich können einige Ausführungsformen ohne Beschränkung nur eine oder irgendeine Kombination von zwei oder mehr der Komponenten 202-210 enthalten. Einige der Komponenten 202-210 können außerhalb des Managementhosts 102 auf unterschiedlichen Systemen oder Maschinen angeordnet sein oder der Managementhost 102 kann eine Vielzahl von unterschiedlichen Maschinen oder Systemen enthalten, die eine oder mehrere der Komponenten 202-212 enthalten.
-
Die Speicherkomponente 202 ist konfiguriert, um eine Liste von erwarteten Verbindungen für eine Vielzahl von vernetzten Maschinen zu speichern, wie beispielsweise das gemanagte Computersystem 104 der 1. Bei einer Ausführungsform definiert jede Verbindung in der Liste von erwarteten Verbindungen einen Startpunkt und einen Endpunkt für die Verbindung. Die Liste von erwarteten Verbindungen kann als Teil einer YAML-Datei gespeichert sein, oder in irgendeinem anderen Format oder Typ einer Datei. Die Liste von erwarteten Verbindungen kann Schlüsselworte enthalten, die Aktionen für die Verbindungen definieren, wie beispielsweise, ob eine Verbindung nur extern oder intern ist (ob sie zulässt, dass sich nicht gemanagte Vorrichtungen oder Systeme unter Verwendung dieser Verbindung verbinden). Bei einer Ausführungsform kann die Liste von erwarteten Verbindungen in einer Quellensteuerung gespeichert sein, um eine Versionsverfolgung für die Liste zur Verfügung zu stellen.
-
Jeder Eintrag in der Liste kann eine Vielzahl von zusätzlichen Erfordernissen für die Verbindung enthalten, wie beispielsweise ein Protokoll, eine Port-Nummer und einen Port-Nummernbereich für die entsprechende Verbindung oder Kommunikation. Bei einer Ausführungsform enthält der Startpunkt und/oder der Endpunkt für eine Verbindung in der Liste von erwarteten Verbindungen eine Gruppe, wie beispielsweise eine Sicherheitsgruppe. Eine Verwendung von Gruppen kann zulassen, dass irgendein Element von dieser Gruppe an der Kommunikation teilnimmt (gemäß den Kommunikations- oder Verbindungserfordernissen), ohne dass das Element spezifisch identifiziert wird.
-
Die Speicherkomponente 202 kann die Liste von erwarteten Verbindungen in einer Verbindungs-Hauptdatei lokal zu dem Managementhost 102 speichern oder kann die Liste an einem über ein Netzwerk zugreifbaren Speicherstandort speichern.
-
Die Decodierkomponente 204 ist konfiguriert, um eine Nachricht von einer oder mehreren Maschinen zu empfangen und/oder zu decodieren, die durch den Managementhost 102 gemanagt werden. Beispielsweise kann die Decodierkomponente 204 eine Netzwerkschnittstellenkarte (NIC), eine Führungskomponente oder andere Hardware oder Software enthalten, um Nachrichten von gemanagten Vorrichtungen zu empfangen, zu decodieren, zu zerlegen bzw. parsen oder auf andere Weise zu verarbeiten. Die Nachrichten können Information enthalten, die eine oder mehrere Verbindungen für eine entsprechende Maschine anzeigt. Beispielsweise können die Nachrichten eine oder mehrere einer aktuellen Verbindung oder einer konfigurierten Verbindung für die entsprechende Maschine enthalten. Beispielsweise können die Nachrichten Information in einer Konfigurationsdatei enthalten oder können Information enthalten, die aktuelle gegenwärtige Kommunikationsverbindungen einer spezifischen Maschine zu einer spezifischen Zeit zeigt. Bei einer Ausführungsform können die Nachrichten eine Führungstabelle für eine Maschine, Konfigurationen für eine Firewall, oder andere Information darüber, welche Verbindungen zugelassen oder nicht zugelassen durch eine spezifische Maschine oder ein spezifisches System sind, enthalten.
-
Die Regelmanagerkomponente 206 ist konfiguriert, um zu bestimmen, ob Verbindungen oder Konfigurationen an Endpunkten, wie beispielsweise Computersystemen 104, mit der Liste von erwarteten Verbindungen übereinstimmen. Bei einer Ausführungsform ist eine Regelmanagerkomponente 206 konfiguriert, um ein unerwartetes Vorhandensein oder Nichtvorhandensein einer Verbindung auf wenigstens einer der Vielzahl von vernetzten Maschinen basierend auf der Liste von erwarteten Verbindungen zu identifizieren. Bei einer Ausführungsform ist die Regelmanagerkomponente 206 konfiguriert, um zu bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine erwartet wird, wenn es einen passenden Eintrag in der Liste von erwarteten Verbindungen gibt. Bei einer Ausführungsform ist die Regelmanagerkomponente 206 konfiguriert, um das Vorhandensein der unerwarteten Verbindung basierend auf einer Verbindung ohne passenden Eintrag in der Liste von erwarteten Verbindungen zu identifizieren. Bei einer Ausführungsform ist die Regelmanagerkomponente 206 konfiguriert, um das unerwartete Nichtvorhandensein einer Verbindung basierend auf einem Eintrag in der Liste von erwarteten Verbindungen ohne passende Verbindung bei der einen oder den mehreren Verbindungen für die entsprechende Maschine zu identifizieren.
-
Bei einer Ausführungsform ist die Regelmanagerkomponente 206 konfiguriert, um die Vollständigkeit und/oder Genauigkeit von Kommunikationskonfigurationen zu validieren. Beispielsweise kann die Regelmanagerkomponente 206 eine Anzahl von Unterschieden zwischen der Liste von erwarteten Verbindungen und den tatsächlichen Verbindungen von gemanagten Systemen zählen. Wenn die Anzahl von Unterschieden nicht Null ist, kann dies bedeuten, dass entweder die Liste von erwarteten Verbindungen ungenau ist oder dass die Endpunkte unrichtig konfiguriert sind. Bei einer Ausführungsform kann ein Administrator benachrichtigt werden, wenn es Unterschiede gibt, und der Administrator wird bestimmen, ob eine Änderung an der Liste von unerwarteten Verbindungen durchgeführt werden muss. Die Validierungsrolle, die durch die Regelmanagerkomponente 206 durchgeführt ist, kann eine Bestimmung diesbezüglich zulassen, ob die Konfiguration zu der erwarteten Konfiguration passt, und macht es für Administratoren einfach, zu identifizieren, wo irgendwelche Unterschiede sind. Beispielsweise kann auf einfache Weise bestimmt werden, dass alle Endpunkte gemäß der Liste von erwarteten Verbindungen innerhalb einer Verbindungs-Hauptdatei konfiguriert sind.
-
Bei einer Ausführungsform ist die Regelmanagerkomponente 206 konfiguriert, um die erwarteten Verbindungen in der Liste von erwarteten Verbindungen zu verstärken. Beispielsweise kann die Regelmanagerkomponente 206 eine Konfiguration basierend auf der Liste von erwarteten Verbindungen nach unten zu jedem Endpunkt drücken. Die Regelmanagerkomponente 206 kann einen Eintrag in der Liste in spezifische Regeln für jeden gemanagten Endknoten umsetzen. Beispielsweise kann die Regelmanagerkomponente 206 eine Regel in einer YAML-Datei in ein Format einer Konfigurationsdatei umwandeln. Weiterhin kann die Regel in der YAML-Datei von einer gesamten Verbindungsregel (oder beiden Enden einer Kommunikation) in eine Einzelendpunktregel zur Speicherung durch eine spezifische Endpunktmaschine umgewandelt werden. Diese Konfigurationen, die zu den Endpunkten nach unten gedrückt oder gesendet worden sind (z.B. unter Verwendung der Drückkomponente 210), können in einem Löschen oder einem Hinzufügen von Regeln an dem Endpunkt resultieren oder können in einem Ersetzen von allen Verbindungsregeln am Endpunkt resultieren.
-
Bei einer Ausführungsform kann die Regelmanagerkomponente 206 allgemein als Validierer arbeiten und dann, in Reaktion auf eine Eingabe von einem Administrator, die erwarteten Verbindungen an den Endpunkten verstärken. Beispielsweise kann die Regelmanagerkomponente 206 periodisch oder in Reaktion auf einen Befehl eine Validierung der Konfigurationen an Endpunkten durchführen. Wenn es Unterschiede gibt, kann die Regelmanagerkomponente 206 veranlassen, dass eine Nachricht (z.B. unter Verwendung der Benachrichtigungskomponente 208) zum Administrator gesendet wird. Der Administrator kann dann die Unterschiede durchsuchen, um zu bestimmen, ob irgendeine Änderung an der Liste von erwarteten Verbindungen durchgeführt werden muss. Wenn keine Änderungen nötig sind, kann der Administrator dann veranlassen, dass die Regelmanagerkomponente 206 die Änderungen auf irgendwelche Endpunkte drückt oder verstärkt, die unterschiedlich davon konfiguriert sind, wie es durch die Liste von erwarteten Verbindungen erforderlich ist. Wenn Änderungen nötig sind, kann der Administrator dann eine Änderung an der Liste von erwarteten Verbindungen durchführen und eine weitere Validierungsprozedur und/oder Verstärkung der überarbeiteten Liste initiieren.
-
Die Benachrichtigungskomponente 208 ist konfiguriert, um eine Benachrichtigung zu einem Administrator, einem managenden System oder einem Benachrichtigungssystem zur Verfügung zu stellen. Bei einer Ausführungsform kann die Benachrichtigungskomponente 208 eine Benachrichtigung zur Verfügung stellen, die eine Anzeige des Vorhandenseins oder Nichtvorhandenseins einer unerwarteten Verbindung enthält. Beispielsweise kann die Benachrichtigung eine Verbindung in der Liste von erwarteten Verbindungen identifizieren, die fehlt, und zwar von einer Konfiguration eines spezifischen Systems. Als ein weiteres Beispiel kann die Benachrichtigung eine Verbindung in einer Konfiguration eines Systems identifizieren, die nicht in der Liste von erwarteten Verbindungen ist, die durch den Managementhost gespeichert sind. Bei einer Ausführungsform kann die Benachrichtigung einen Indikator für die Anzahl von Unterschieden zwischen der Liste von erwarteten Verbindungen und aktuellen Verbindungen oder Konfigurationen auf der Vielzahl von Maschinen enthalten.
-
Bei einer Ausführungsform kann die Benachrichtigung zu einem oder mehreren von einer Protokollierungsdatei, einem Benachrichtigungsbereich einer Anwenderschnittstelle, einer Email-Adresse, einer Textnachricht oder als Teil von einer anderen Nachricht zur Verfügung gestellt werden. Als ein Beispiel kann die Benachrichtigungskomponente 208 eine Benachrichtigung zu einem Überwachungssystem zur Verfügung stellen. Nagios™ ist ein Beispiel eines Überwachungssystems, das verwendet werden kann, um Benachrichtigungen zu liefern. Die Benachrichtigung kann zu einem Administrator gesendet werden, so dass er über den Unterschied unterrichtet wird und Schritte unternehmen kann, um die Diskrepanz zu überprüfen und/oder zu korrigieren. Bei einer Ausführungsform ist die Benachrichtigungskomponente 208 konfiguriert, um einen Eintrag in der Liste von erwarteten Verbindungen oder in einer Konfigurationsdatei eines Endpunkts mit einem Flag zu versehen, um das unerwartete Vorhandensein oder Nichtvorhandensein der Verbindung zu zeigen.
-
Die Drückkomponente 210 ist konfiguriert, um Verbindungsregeln zu Endpunkten basierend auf der Liste von erwarteten Verbindungen zur Verfügung zu stellen, die durch die Speicherkomponente 202 gespeichert sind. Beispielsweise kann ein Administrator dazu fähig sein, die Liste von erwarteten Verbindungen einzustellen und/oder zu überprüfen und dann veranlassen, dass basierend auf der Liste von erwarteten Verbindungen Regeln für jeden Endpunkt erzeugt werden. Bei einer Ausführungsform ist die Stoß- bzw. Drückkomponente 210 konfiguriert, um Verbindungskonfigurationen auf der Vielzahl von Maschinen basierend auf der Liste von erwarteten Verbindungen hinzuzufügen oder zu löschen. Beispielsweise kann die Drückkomponente 210 eine Regel zu einem Endpunkt, dem eine Regel fehlt, entsprechend einem Eintrag in der Liste von erwarteten Verbindungen hinzufügen. Als weiteres Beispiel kann die Drückkomponente 210 eine Regel an einem Endpunkt löschen, die basierend auf der Liste von erwarteten Verbindungen nicht dort sein sollte.
-
3 ist ein schematisches Signaldiagramm, das ein Verfahren 300 zum Managen von Netzwerkverbindungen darstellt. Das Verfahren 300 kann durch einen Managementhost 102 und ein oder mehrere gemanagte Computersysteme 104 durchgeführt werden.
-
Der Managementhost 102 speichert bei 302 eine Haupt-Verbindungsliste in einer YAML-Datei. Beispielsweise kann die Haupt-Verbindungsliste eine Liste von erwarteten Verbindungen und/oder eine Haupt-Verbindungsdatei, wie es hierin diskutiert ist, enthalten. Der Managementhost 102 kann die YAML-Datei in einem Versionsverfolgungs- und Steuersystem speichern, das Änderungen an der Datei verfolgt, und kann effektiv überwacht und verfolgt werden. Der Managementhost 102 fordert bei 304 zu einem Bericht über gegenwärtige Verbindungen von den gemanagten Computersystemen 104 auf. Beispielsweise kann der Managementhost 102 periodisch Aufforderungen für gegenwärtige Verbindungen senden, um zu überwachen, wie gemanagte Endpunkte konfiguriert sind. Bei einer Ausführungsform kann die Aufforderung eine Aufforderung für Verbindungskonfigurationen und/oder aktuellen gegenwärtigen Verbindungen eines Endpunkts enthalten.
-
Der Managementhost 102 empfängt bei 306 eine oder mehrere Nachrichten, die gegenwärtige Verbindungen bei den Computersystemen 104 anzeigen. Beispielsweise können gemanagte Computersysteme 104 Nachrichten senden, die gegenwärtige bzw. aktuelle Verbindungskonfigurationen oder gegenwärtige bzw. aktuelle Kommunikationsverbindungen anzeigen. Die Nachricht kann die gegenwärtigen Verbindungen gemäß einem oder mehreren unterschiedlichen Formaten anzeigen, wie beispielsweise in einem IP-Tabellenformat, einem AWS™-Format oder irgendeinem anderen Format. Obwohl das Verfahren 300 darstellt, dass die Nachrichten bei 306 in Reaktion auf eine Aufforderung vom Managementhost 102 empfangen werden, können die Computersysteme 104 (oder andere Endpunkte) periodisch Information über gegenwärtige Verbindungen autonom oder ohne zu erfordern, dass der Managementhost 102 eine Aufforderung sendet, zur Verfügung stellen.
-
In Reaktion auf ein Empfangen der Nachrichten bei 306 erfasst der Managementhost 102 bei 308 Unterschiede zwischen der YAML-Datei und den momentanen Konfigurationen oder Verbindungen der Computersysteme 104. Beispielsweise kann der Managementhost 102 prüfen, ob jeder Eintrag in der YAML-Datei einen entsprechenden Eintrag in entsprechenden Endpunkten hat, und prüfen, ob jeder Eintrag in einer Endpunktkonfiguration einen entsprechenden Eintrag in der YAML-Datei hat. Der Managementhost 102 kann die Anzahl von erfassten Unterschieden zählen und/oder jeden der Unterschiede mit einem Flag versehen. Der Managementhost 102 kann bei 310 eine Benachrichtigung senden, die die Unterschiede anzeigt (z.B. die Anzahl von Unterschieden und/oder der mit Flag versehenen Einträge in der YAML-Datei oder in Endpunktkonfigurationen). Die Benachrichtigung kann bei 310 zu einer Schnittstellen- oder Administratorvorrichtung 314 gesendet werden, wo ein Administrator oder ein automatisierter Dienst bestimmen kann, wie die Unterschiede zu handhaben sind. Beispielsweise kann der Administrator dazu fähig sein, jeden Unterschied einzeln zu überprüfen und auszuwählen, ob die YAML-Dateienversion, die Endpunktkonfigurationsversion, auszuschließen ist und/oder eine neue Regel für die YAML-Datei oder den Endpunkt zu definieren ist. Beispielsweise kann der Administrator erkennen, dass der Endpunkt geeignet konfiguriert ist, aber die YAML-Datei fehlend oder unrichtig ist. Andererseits kann der Administrator bestätigen, dass die YAML-Datei richtig ist und der Endpunkt unrichtig oder ungeeignet konfiguriert ist. Wenn der Administrator einmal bestimmt hat, wie die Unterschiede zu handhaben sind, kann der Administrator anzeigen, dass die YAML-Datei endgültig ist (oder dass ein spezifischer Unterschied angenommen bzw. akzeptiert oder abgelehnt wird). Die Schnittstellen- oder Administratorvorrichtung 314 stellt bei 312 die akzeptierten oder abgelehnten Unterschiede dem Managementhost 102 zur Verfügung. Beispielsweise können die durch die Schnittstellen- oder Administratorvorrichtung 314 gesendeten akzeptierten oder abgelehnten Unterschiede eine Eingabe von dem Administrator enthalten, die anzeigt, wie die Unterschiede zu handhaben sind (z.B. Löschen einer Regel von einem Computersystem 104 oder Hinzufügen einer Regel zu der Liste in der YAML-Datei).
-
Der Managementhost 102 updated bei 316 die Verbindungsliste in der YAML-Datei basierend auf den bei 312 empfangenen akzeptierten oder abgelehnten Unterschieden, wie es nötig ist. Der Kasten entsprechend einem Updaten 316 der Verbindungsliste ist mit einer gestrichelten Umrandung gezeigt, um anzuzeigen, dass Änderungen an der Verbindungsliste in der YAML-Datei nicht erforderlich sein können, und zwar basierend auf der vom Administrator empfangenen Eingabe. Beispielsweise kann die Haupt-Verbindungsliste nur upgedated werden, wenn die bei 312 empfangenen akzeptierten oder abgelehnten Unterschiede anzeigen, dass eine Regel zu der YAML-Datei hinzugefügt oder von dieser gelöscht werden muss. Der Managementhost 102 drückt bei 318 Hauptkonfigurationen zu den Endpunkten, wie es nötig ist. Beispielsweise können die durch einen Administrator akzeptierten oder abgelehnten Änderungen nicht Änderungen an den Endpunktkonfigurationen erfordern oder können Änderungen an irgendeiner Kombination von einem oder mehreren der Endpunkte erfordern.
-
Nimmt man nun Bezug auf 4, ist ein schematisches Ablaufdiagramm eines Verfahrens 400 zum Managen von Kommunikationskonfigurationen dargestellt. Das Verfahren 400 kann durch einen Managementhost, wie beispielsweise den Managementhost 102 der 1, 2 oder 3, durchgeführt werden.
-
Das Verfahren 400 beginnt und eine Decodierkomponente 204 empfängt Nachrichten von der Vielzahl von vernetzten Maschinen, die eine oder mehrere Verbindungen für eine entsprechende Maschine anzeigen, bei 402. Eine Regelmanagerkomponente 206 identifiziert bei 404 ein unerwartetes Vorhandensein oder Nichtvorhandensein einer Verbindung auf wenigstens einer der Vielzahl von vernetzten Maschinen basierend auf der Liste von erwarteten Verbindungen. Beispielsweise kann eine Verbindungs-Hauptliste mit den momentanen Konfigurationen der Endpunkte verglichen werden, um zu bestimmen, ob es unerwartete Verbindungsregeln gibt oder ob es Regeln gibt, die bei den momentanen Konfigurationen fehlen.
-
Eine Benachrichtigungskomponente 208 stellt bei 406 eine Benachrichtigung oder Anzeige des unerwarteten Vorhandenseins oder Nichtvorhandenseins von Verbindungsregeln zur Verfügung. Die Benachrichtigung kann zu einer Maschine oder einer Schnittstelle zur Überprüfung durch einen Administrator gesendet werden. Der Administrator kann dann Schritte unternehmen, um jede Konfiguration an einem Endpunkt oder innerhalb einer Verbindungs-Hauptliste oder einer Liste von erwarteten Verbindungen zu korrigieren.
-
5 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung 500 darstellt. Bei einigen Ausführungsformen wird die Computervorrichtung 500 verwendet, um ein oder mehrere der Systeme und Komponenten zu implementieren, die hierin diskutiert sind. Beispielsweise kann die Computervorrichtung 500 zulassen, dass ein Anwender oder ein Administrator auf den Managementhost 102 zugreift; oder der Managementhost 102, die Computersysteme 104 und/oder externe Computersysteme 106 können als eine Computervorrichtung 500 mit Komponenten oder Modulen implementiert sein, die als computerlesbarer Code in computerlesbaren Speichermedien gespeichert sind. Weiterhin kann die Computervorrichtung 500 mit irgendeinem der Systeme und/oder irgendeiner der Komponenten interagieren, die hierin beschrieben sind. Demgemäß kann die Computervorrichtung 500 verwendet werden, um verschiedene Prozeduren und Aufgaben durchzuführen, wie beispielsweise diejenigen, die hierin diskutiert sind. Die Computervorrichtung 500 kann als ein Server, ein Client oder irgendeine andere Computereinheit fungieren. Die Computervorrichtung 500 kann irgendeine einer weiten Vielfalt von Computervorrichtungen sein, wie beispielsweise ein Desktopcomputer, ein Notebookcomputer, ein Servercomputer, ein in der Hand gehaltener Computer bzw. Handheld-Computer, ein Tablet und ähnliches.
-
Die Computervorrichtung 500 enthält einen oder mehrere Prozessoren 502, eine oder mehrere Speichervorrichtungen 504, eine oder mehrere Schnittstellen 506, eine oder mehrere Massenspeichervorrichtungen 508 und eine oder mehrere Eingabe/Ausgabe-(I/O-)Vorrichtungen 510, von welchen alle mit einem Bus 512 gekoppelt sind. Der Prozessor (die Prozessoren) 502 enthält (enthalten) eine oder mehrere Prozessoren oder Steuerungen, die Anweisungen ausführen, die in der Speichervorrichtung (den Speichervorrichtungen) 504 und/oder der Massenspeichervorrichtung (den Massenspeichervorrichtungen) 508 gespeichert sind. Der Prozessor (die Prozessoren) 502 kann (können) auch verschiedene Typen von computerlesbaren Medien enthalten, wie beispielsweise einen Cachespeicher.
-
Die Speichervorrichtung (die Speichervorrichtungen) 504 enthält (enthalten) verschiedene computerlesbare Medien, wie beispielsweise einen flüchtigen Speicher (z.B. Direktzugriffsspeicher (RAM)) und/oder einen nichtflüchtigen Speicher (z.B. einen Nurlesespeicher (ROM)). Die Speichervorrichtung(en) 504 kann (können) auch einen wiederbeschreibbaren ROM enthalten, wie beispielsweise einen Flash-Speicher.
-
Die Massenspeichervorrichtung(en) 508 enthält (enthalten) verschiedene computerlesbare Medien, wie beispielsweise Magnetbänder, Magnetplatten, optische Platten, einen Festkörperspeicher (z.B. einen Flash-Speicher) und so weiter. Verschiedene Laufwerke können auch in der Massenspeichervorrichtung (den Massenspeichervorrichtungen) 508 enthalten sein, um ein Lesen von den verschiedenen computerlesbaren Medien und/oder ein Schreiben zu diesen zu ermöglichen. Die Massenspeichervorrichtung(en) 508 enthält (enthalten) entfernbare Medien und/oder nicht entfernbare Medien.
-
Die I/O-Vorrichtung(en) 510 enthält (enthalten) verschiedene Vorrichtungen, die zulassen, dass Daten und/oder andere Information zu der Computervorrichtung 500 eingegeben oder daraus wiedergewonnen bzw. ausgelesen wird. Die I/O-Vorrichtung(en) 510 enthält (enthalten) als Beispiel Cursorsteuervorrichtungen, Tastaturen, Keypads bzw. kleine Tastaturen bzw. Folientastaturen, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzwerkschnittstellenkarten, Modems, eine Optik oder andere Bilderfassungsvorrichtungen und ähnliches.
-
Die Schnittstelle(n) 506 enthält (enthalten) verschiedene Schnittstellen, die zulassen, dass die Computervorrichtung 500 mit anderen Systemen, Vorrichtungen oder Computerumgebungen interagiert. Die Schnittstelle(n) 506 enthält (enthalten) als Beispiel irgendeine Anzahl von unterschiedlichen Netzwerkschnittstellen, wie beispielsweise Schnittstellen zu lokalen Netzen (LANs), Weitverkehrsnetzen (WANs), drahtlosen Netzen und dem Internet.
-
Der Bus 512 lässt zu, dass der Prozessor (die Prozessoren) 502, die Speichervorrichtung(en) 504, die Schnittstelle(n) 506, die Massenspeichervorrichtung(en) 508 und die I/O-Vorrichtung(en) 512 miteinander sowie mit anderen Vorrichtungen oder Komponenten, die mit dem Bus 512 gekoppelt sind, kommunizieren. Der Bus 12 stellt einen oder mehrere von einigen Typen von Strukturen dar, wie beispielsweise einen Systembus, einen PCI-Bus, einen IEEE 1394-Bus, einen USB-Bus und so weiter.
-
Zu Darstellungszwecken sind Programme und andere ausführbare Programmkomponenten hierin als diskrete Blöcke gezeigt, obwohl es verstanden wird, dass solche Programme und Komponenten zu verschiedenen Zeiten in unterschiedlichen Speicherkomponenten der Computervorrichtung 500 sitzen können, und durch den Prozessor (die Prozessoren) 502 ausgeführt werden. Alternativ können die hierin beschriebenen Systeme und Prozeduren in Hardware oder einer Kombination aus Hardware, Software und/oder Firmware implementiert sein. Beispielsweise kann eine oder können mehrere anwendungsspezifische integrierte Schaltungen (ASICs) programmiert sein, um eines oder mehrere der Systeme und der Prozeduren auszuführen, die hierin beschrieben sind. Wie es hierin verwendet ist, sollen die Ausdrücke „Modul“ oder „Komponente“ die Implementierungsvorrichtung zum Erreichen eines Prozesses fördern, wie beispielsweise durch Hardware oder eine Kombination aus Hardware, Software und/oder Firmware, zu den Zwecken eines Durchführens von allen oder Teilen von Operationen, die hierin offenbart sind.
-
Beispiele
-
Die folgenden Beispiele gehören zu weiteren Ausführungsformen.
-
Beispiel 1 ist ein System zum Managen von Netzwerkverbindungen, das eine Speicherkomponente, eine Decodierkomponente, einen Regelmanager und eine Benachrichtigungskomponente enthält. Die Speicherkomponente ist konfiguriert, um eine Liste von erwarteten Verbindungen für eine Vielzahl von vernetzten Maschinen zu speichern, wobei jede Verbindung in der Liste von erwarteten Verbindungen einen Startpunkt und einen Endpunkt für die Verbindung definiert. Die Decodierkomponente ist konfiguriert, um Nachrichten von der Vielzahl von vernetzten Maschinen zu decodieren, die eine oder mehrere Verbindungen für eine entsprechende Maschine anzeigen. Die Regelmanagerkomponente ist konfiguriert, um ein unerwartetes Vorhandensein oder Nichtvorhandensein einer Verbindung auf wenigstens einer der Vielzahl von vernetzten Maschinen basierend auf der Liste von erwarteten Verbindungen zu identifizieren. Die Benachrichtigungskomponente ist konfiguriert, um eine Benachrichtigung oder Anzeige des unerwarteten Vorhandenseins oder Nichtvorhandenseins zur Verfügung zu stellen.
-
Bei einem Beispiel 2 enthält die Liste von erwarteten Verbindungen im Beispiel 1 eine Liste, die in einem YAML-Dateienformat gespeichert ist.
-
Bei einem Beispiel 3 ist die Speicherkomponente in einem der Beispiele 1-2 konfiguriert, um eine Versionsverfolgung und -steuerung der Liste von erwarteten Verbindungen zur Verfügung zu stellen.
-
Bei einem Beispiel 4 enthält eine Verbindung in der Liste von erwarteten Verbindungen bei einem der Beispiele 1-3 weiterhin eines oder mehreres von einem Protokoll, einer Port-Nummer und einem Port-Nummernbereich für die entsprechende Verbindung.
-
Bei einem Beispiel 5 enthält eines oder mehreres von dem Startpunkt und dem Endpunkt für eine Verbindung in der Liste von erwarteten Verbindungen bei einem der Beispiele 1-4 eine Gruppe, wie beispielsweise eine Sicherheitsgruppe.
-
Bei einem Beispiel 6 enthalten die Nachrichten bei einem der Beispiele 1-5 eines oder mehreres von einer momentanen Verbindung oder einer konfigurierten Verbindung für die entsprechende Maschine.
-
Bei einem Beispiel 7 enthält wenigstens eine Nachricht der Nachrichten bei einem der Beispiele 1-6 eine Führungstabelle für eine Maschine, wobei die Liste von erwarteten Verbindungen eine Haupt-Führungstabelle enthält.
-
Bei einem Beispiel 8 ist die Regelmanagerkomponente bei einem der Beispiele 1-7 konfiguriert, um zu bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine erwartet wird, wenn es einen passenden Eintrag in der Liste von erwarteten Verbindungen gibt.
-
Bei einem Beispiel 9 ist die Regelmanagerkomponente bei einem der Beispiele 1-8 konfiguriert, um das unerwartete Vorhandensein der Verbindung basierend auf einer Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine ohne passenden Eintrag in der Liste von erwarteten Verbindungen zu identifizieren.
-
Bei einem Beispiel 10 ist die Regelmanagerkomponente bei einem der Beispiele 1-9 konfiguriert, um das unerwartete Nichtvorhandensein der Verbindung basierend auf einem Eintrag in der Liste von erwarteten Verbindungen ohne passende Verbindung bei der einen oder den mehreren Verbindungen für die entsprechende Maschine zu identifizieren.
-
Bei einem Beispiel 11 ist die Benachrichtigungskomponente bei einem der Beispiele 1-10 konfiguriert, um eine Warnung zu einer Protokollierungsdatei oder einem Benachrichtigungsbereich einer Anwenderschnittstelle zur Verfügung zu stellen.
-
Bei einem Beispiel 12 ist die Benachrichtigungskomponente bei einem der Beispiele 1-11 konfiguriert, um die Benachrichtigung in einer Nachricht zu einem Administrator zur Verfügung zu stellen.
-
Bei einem Beispiel 13 ist die Benachrichtigungskomponente bei einem der Beispiele 1-12 konfiguriert, um einen Eintrag in der Liste von erwarteten Verbindungen mit einem Flag zu versehen, um das unerwartete Vorhandensein oder Nichtvorhandensein der Verbindung zu zeigen.
-
Bei einem Beispiel 14 ist die Benachrichtigungskomponente bei einem der Beispiele 1-13 konfiguriert, um eine Anzahl von Unterschieden zwischen der Liste von erwarteten Verbindungen und aktuellen Verbindungen oder Konfigurationen aus der Vielzahl von Maschinen zu bestimmen.
-
Bei einem Beispiel 15 enthält das System bei einem der Beispiele 1-14 weiterhin eine Stoß- bzw. Drückkomponente, die konfiguriert ist, um Verbindungskonfigurationen auf der Vielzahl von Maschinen basierend auf der Liste von erwarteten Verbindungen hinzuzufügen oder zu löschen.
-
Ein Beispiel 16 ist ein Verfahren zum Managen von Netzwerkverbindungen. Das Verfahren enthält ein Speichern einer Liste von erwarteten Verbindungen für eine Vielzahl von vernetzten Maschinen, wobei jede Verbindung in der Liste von erwarteten Verbindungen einen Startpunkt und einen Endpunkt für die Verbindung definiert. Das Verfahren enthält ein Empfangen einer Anzeige von der Vielzahl von vernetzten Maschinen, die eine oder mehrere Verbindungen für eine jeweilige Maschine anzeigt. Das Verfahren enthält ein Identifizieren eines unerwarteten Vorhandenseins oder Nichtvorhandenseins einer Verbindung auf wenigstens einer der Vielzahl von vernetzten Maschinen basierend auf der Liste von erwarteten Verbindungen. Das Verfahren enthält weiterhin ein Bereitstellen einer Benachrichtigung oder Anzeige des unerwarteten Vorhandenseins oder Nichtvorhandenseins.
-
Bei einem Beispiel 17 enthält die Liste von erwarteten Verbindungen beim Beispiel 16 eine Liste, die in einem YAML-Dateienformat gespeichert ist.
-
Bei einem Beispiel 18 enthält das Verfahren bei einem der Beispiele 16-17 weiterhin ein Bereitstellen einer Versionsverfolgung und -steuerung der Liste von erwarteten Verbindungen.
-
Bei einem Beispiel 19 enthält eine Verbindung in der Liste von erwarteten Verbindungen bei einem der Beispiele 16-18 weiterhin eines oder mehreres von einem Protokoll, einer Port-Nummer und einem Port-Nummernbereich für die entsprechende Verbindung.
-
Bei einem Beispiel 20 enthält eines oder mehreres von dem Startpunkt und dem Endpunkt für eine Verbindung in der Liste von erwarteten Verbindungen bei einem der Beispiele 16-19 eine Gruppe, wie beispielsweise eine Sicherheitsgruppe.
-
Bei einem Beispiel 21 enthalten die Nachrichten bei einem der Beispiele 16-20 eines oder mehreres von einer momentanen Verbindung oder einer konfigurierten Verbindung für die entsprechende Maschine.
-
Bei einem Beispiel 22 enthält wenigstens eine Nachricht der Nachrichten bei einem der Beispiele 16-21 eine Führungstabelle für eine Maschine, wobei die Liste von erwarteten Verbindungen eine Haupt-Führungstabelle enthält.
-
Bei einem Beispiel 23 enthält ein Bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine erwartet wird, bei einem der Beispiele 16-22 ein Bestimmen, dass es einen passenden Eintrag in der Liste von erwarteten Verbindungen gibt.
-
Bei einem Beispiel 24 enthält ein Bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine unerwartet vorhanden ist, bei einem der Beispiele 16-23 ein Bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine keinen passenden Eintrag in der Liste von erwarteten Verbindungen enthält.
-
Bei einem Beispiel 25 enthält ein Bestimmen, dass eine Verbindung von der einen oder den mehreren Verbindungen für die entsprechende Maschine unerwartet nicht vorhanden ist, bei einem der Beispiele 16-24 ein Bestimmen, dass ein Eintrag in der Liste von erwarteten Verbindungen keine passende Verbindung bei der einen oder den mehreren Verbindungen für die entsprechende Maschine enthält.
-
Bei einem Beispiel 26 enthält ein Bereitstellen der Benachrichtigung bei einem der Beispiele 16-25 ein Bereitstellen einer Warnung zu einer Protokollierungsdatei oder einem Benachrichtigungsbereich einer Anwenderschnittstelle.
-
Bei einem Beispiel 27 enthält ein Bereitstellen der Benachrichtigung bei einem der Beispiele 16-26 ein Bereitstellen der Benachrichtigung in einer Nachricht zu einem Administrator.
-
Bei einem Beispiel 28 enthält ein Bereitstellen der Benachrichtigung bei einem der Beispiele 16-27 ein Versehen mit Flags eines Eintrags in der Liste von erwarteten Verbindungen, um das unerwartete Vorhandensein oder Nichtvorhandensein der Verbindung zu zeigen.
-
Bei einem Beispiel 29 enthält das Verfahren bei einem der Beispiele 16-28 weiterhin ein Bestimmen einer Anzahl von Unterschieden zwischen der Liste von erwarteten Verbindungen und aktuellen bzw. tatsächlichen Verbindungen oder Konfigurationen auf der Vielzahl von Maschinen.
-
Bei einem Beispiel 30 enthält das Verfahren bei einem der Beispiele 16-29 weiterhin ein Hinzufügen oder Löschen von Verbindungskonfigurationen auf der Vielzahl von Maschinen basierend auf der Liste von erwarteten Verbindungen.
-
Ein Beispiel 31 ist ein System oder eine Vorrichtung, das oder die eines oder eine Vielzahl von Mitteln zum Implementieren eines Verfahrens oder zum Realisieren eines Systems oder einer Vorrichtung wie bei einem der Beispiele 1-30 enthält.
-
Bei der obigen Offenbarung ist Bezug genommen worden auf die beigefügten Zeichnungen, die einen Teil davon bilden und wobei anhand einer Illustration spezifische Implementierungen gezeigt sind, in welchen die Offenbarung ausgeführt werden kann. Es wird verstanden, dass andere Implementierungen verwendet werden können und strukturelle Änderungen durchgeführt werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Beschreibung auf „eine einzige Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“, etc. zeigen an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik enthalten kann, aber es kann sein, dass nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Charakteristik enthält. Darüber hinaus sind solche Phrasen nicht notwendigerweise Bezug nehmend auf dieselbe Ausführungsform. Weiterhin wird dann, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik in Verbindung mit einer Ausführungsform beschrieben wird, vorausgesetzt, dass es innerhalb des Wissens eines Fachmanns auf dem Gebiet ist, ein solches Merkmal, eine solche Struktur oder eine solche Charakteristik in Verbindung mit anderen Ausführungsformen wirken zu lassen, gleichgültig ob es explizit beschrieben ist oder nicht.
-
Implementierungen der Systeme, Vorrichtungen und Verfahren, die hierin offenbart sind, können einen speziellen oder einen allgemeinen Computer umfassen oder verwenden, der Computerhardware enthält, wie beispielsweise einen oder mehrere Prozessoren und einen Systemspeicher, wie es hierin diskutiert ist. Implementierungen innerhalb des Schutzumfangs der vorliegenden Offenbarung können auch physikalische und andere computerlesbare Medien zum Tragen oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen enthalten. Solche computerlesbaren Medien können irgendwelche verfügbaren Medien sein, auf die durch ein allgemeines oder spezielles Computersystem zugegriffen werden kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind Computerspeichermedien (Vorrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen tragen, sind Übertragungsmedien. Somit können anhand eines Beispiels und nicht einer Beschränkung Implementierungen der Offenbarung wenigstens zwei eindeutig unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien (Vorrichtungen) und Übertragungsmedien.
-
Computerspeichermedien (Vorrichtungen) enthalten RAM, ROM EEPROM, CD-ROM, Festkörpervorrichtungen („SSDs“) (z.B. basierend auf RAM), einen Flash-Speicher, einen Phasenänderungsspeicher („PCM“), andere Typen von Speichern, andere optische Plattenspeicher, magnetische Plattenspeicher oder andere magnetische Speichervorrichtungen oder irgendein anderes Medium, das verwendet werden kann, um erwünschte Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen allgemeinen oder einen speziellen Computer zugegriffen werden kann.
-
Eine Implementierung der hierin offenbaten Vorrichtungen, Systeme und Verfahren können über ein Computernetzwerk kommunizieren. Ein „Netzwerk“ ist als eine oder mehrere Datenverbindungen definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wenn über ein Netzwerk oder eine andere Kommunikationsverbindung (entweder hartverdrahtet, drahtlos oder eine Kombination von hartverdrahtet oder drahtlos) Information zu einem Computer transferiert oder bereitgestellt wird, betrachtet der Computer geeignet die Verbindung als ein Übertragungsmedium. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen enthalten, die verwendet werden können, um erwünschte Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu tragen, und auf die durch einen allgemeinen oder speziellen Computer zugegriffen werden kann. Kombinationen des Obigen sollten innerhalb des Schutzumfangs von computerlesbaren Medien enthalten sein.
-
Computerausführbare Anweisungen umfassen beispielsweise Anweisungen und Daten, die dann, wenn sie bei einem Prozessor ausgeführt werden, veranlassen, dass ein allgemeiner Computer, ein spezieller Computer oder eine spezielle Verarbeitungsvorrichtung eine bestimmte Funktion oder eine Gruppe von Funktionen durchführt. Die computerausführbaren Anweisungen können beispielsweise Binärzahlen, Zwischenformatanweisungen, wie beispielsweise in Assemblersprache, oder sogar ein Quellcode sein. Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die spezifisch für strukturelle Merkmale und/oder methodenmäßiges Handeln spezifisch ist, ist es zu verstehen, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die beschriebenen Merkmale oder Handlungen beschränkt ist, die oben beschrieben sind. Vielmehr sind die beschriebenen Merkmale und Handlungen als beispielhafte Formen zum Implementieren der Ansprüche offenbar.
-
Fachleute auf dem Gebiet werden erkennen, dass die Offenbarung in Netzwerkcomputerumgebungen mit vielen Typen von Computersystemkonfigurationen ausgeführt werden kann, einschließlich Personal-Computern, Desktopcomputern, Laptopcomputern, Nachrichtenprozessoren, in der Hand gehaltenen Vorrichtungen, Mehrprozessorsystemen, prozessorbasierter oder programmierbarer Unterhaltungselektronik, Netzwerk-PCs, Minicomputern, Mainframe-Computern, Mobiltelefonen, PDAs, Tablets, Pagern, Routern, Switches, verschiedenen Speichervorrichtungen und ähnlichem. Die Offenbarung kann auch in verteilten Systemumgebungen ausgeführt werden, wo lokale und entfernte Computersysteme, die durch ein Netzwerk verbunden sind (entweder durch hartverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus hartverdrahteten und drahtlosen Datenverbindungen) beide Aufgaben durchführen. In einer verteilten Systemumgebung können Programmmodule in sowohl lokalen als auch entfernten Speicherspeicherungsvorrichtungen angeordnet sein.
-
Weiterhin können, wo es geeignet ist, hierin beschriebene Funktionen in einem oder mehreren von Folgendem durchgeführt werden: Hardware, Software, Firmware, digitalen Komponenten oder analogen Komponenten. Beispielsweise kann oder können eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) programmiert werden, um eines oder mehreres von den hierin beschriebenen Systemen und Prozeduren auszuführen. Bestimmte Ausdrücke sind in der gesamten Beschreibung und allen Ansprüchen verwendet, um sich auf bestimmte Systemkomponenten zu beziehen. Wie es ein Fachmann auf dem Gebiet erkennen wird, kann auf Komponenten durch unterschiedliche Namen Bezug genommen sein. Es ist nicht beabsichtigt, dass dieses Dokument zwischen Komponenten unterscheidet, die in Bezug auf den Namen unterschiedlich sind, nicht aber bezüglich der Funktion.
-
Es sollte angemerkt werden, dass die oben diskutierten Ausführungsformen Computerhardware, -software, -firmware oder irgendeine Kombination davon umfassen können, um wenigstens einen Teilbereich von ihren Funktionen durchzuführen. Beispielsweise kann ein Modul einen Computercode enthalten, der konfiguriert ist, um in einem oder mehreren Prozessoren ausgeführt zu werden, und kann Hardwarelogik/eine elektrische Schaltung, gesteuert durch den Computercode, enthalten. Diese beispielhaften Vorrichtungen sind hierin zu Illustrationszwecken zur Verfügung gestellt und es ist nicht beabsichtigt, dass sie beschränkend sind. Ausführungsformen der vorliegenden Offenbarung können in weiteren Typen von Vorrichtungen implementiert sein, wie es Fachleuten auf dem relevanten Gebiet (den relevanten Gebieten) bekannt sein würde.
-
Wenigstens einige Ausführungsformen der Offenbarung sind auf Computerprogrammprodukte gerichtet, die eine solche Logik umfassen (z.B. in der Form von Software), die auf irgendeinem computernutzbaren Medium gespeichert ist. Eine solche Software veranlasst dann, wenn sie in einer oder mehreren Datenverarbeitungsvorrichtungen aufgeführt wird, dass eine Vorrichtung arbeitet, wie es hierin beschrieben ist.
-
Während verschiedener Ausführungsformen der vorliegenden Offenbarung oben beschrieben worden sind, sollte es verstanden werden, dass sie nur anhand eines Beispiels präsentiert worden sind, und keine Beschränkung sind. Es wird Fachleuten auf dem Gebiet offensichtlich werden, dass verschiedene Änderungen in Form und Detail dabei durchgeführt werden können, ohne vom Sinngehalt und Schutzumfang der Offenbarung abzuweichen. Somit sollte die Breite und der Schutzumfang der vorliegenden Offenbarung nicht durch irgendeines der oben beschriebenen beispielhaften Ausführungsformen beschränkt sein, sondern sollte nur gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert sein. Die vorangehende Beschreibung ist zu Darstellungszwecken und für eine Beschreibung präsentiert. Es ist nicht beabsichtigt, dass sie erschöpfend ist oder die Offenbarung auf die präzise Form, die offenbart ist, beschränkt. Viele Modifikationen und Variationen sind angesichts der obigen Lehre möglich. Weiterhin sollte es beachtet werden, dass irgendeine oder alle der vorgenannten alternativen Implementierungen in irgendeiner Kombination verwendet werden können, die erwünscht ist, um zusätzliche Hybridimplementierungen der Offenbarung zu bilden.
-
Weiterhin ist, obwohl spezifische Implementierungen der Offenbarung beschrieben und dargestellt worden sind, die Offenbarung nicht auf die spezifischen Formen oder Anordnungen von Teilen beschränkt, die so beschrieben und dargestellt sind. Der Schutzumfang der Offenbarung ist durch die hieran angehängten Ansprüche zu definieren, und zukünftige Ansprüche, die hier und in anderen Anmeldungen eingereicht sind, und ihren eigenen Äquivalenten.
-
Die Offenbarung betrifft allgemein Systeme und Vorrichtungen zum Managen von Netzwerkverbindungen. Ein System zum Managen von Netzwerkverbindungen enthält eine Speicherkomponente, eine Decodierkomponente, eine Regelmanagerkomponente und eine Benachrichtigungskomponente. Die Speicherkomponente ist konfiguriert, um eine Liste von erwarteten Verbindungen für eine Vielzahl von vernetzten Maschinen zu speichern, wobei jede Verbindung in der Liste von erwarteten Verbindungen einen Startpunkt und einen Endpunkt für die Verbindung definiert. Die Decodierkomponente ist konfiguriert, um Nachrichten von der Vielzahl von vernetzten Maschinen zu decodieren, die eine oder mehrere Verbindungen für eine entsprechende Maschine enthalten. Die Regelmanagerkomponente ist konfiguriert, um ein unerwartetes Vorhandensein oder Nichtvorhandensein einer Verbindung auf wenigstens einer der Vielzahl von vernetzten Maschinen basierend auf der Liste von erwarteten Verbindungen zu identifizieren. Die Benachrichtigungskomponente ist konfiguriert, um eine Benachrichtigung oder Anzeige des unerwarteten Vorhandenseins oder Nichtvorhandenseins bereitzustellen.