MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Tipps für die Remoteverwaltung von MongoDB

Remote-Arbeiten aufgrund der Covid-19-Pandemie bedeutet eine zunehmende Bedeutung isolierter Infrastrukturen; genauer gesagt solche, auf die nur über ein internes Netzwerk zugegriffen werden kann, aber auf eine Weise, dass autorisierte Personen von außen jederzeit und überall auf das System zugreifen können.

In diesem Artikel teilen wir einige grundlegende Schritte, die Sie mit MongoDB implementieren müssen, um einen sicheren Zugriff während der Verwaltung der Datenbank zu gewährleisten.

MongoDB sichern

Bevor Sie remote auf die MongoDB-Datenbank zugreifen, müssen Sie eine „Härtung“ der Umgebung durchführen. Stellen Sie auf der Infrastrukturseite Folgendes ein:

MongoDB-Authentifizierung aktivieren 

Diese Funktion muss zwingend aktiviert werden, unabhängig davon, ob wir vom internen Netzwerk oder von einem externen Netzwerk auf die MongoDB-Datenbank zugreifen möchten. Bevor Sie die Autorisierung aktivieren, müssen Sie zunächst einen Administratorbenutzer in MongoDB erstellen. Sie können den folgenden Befehl ausführen, um einen Administratorbenutzer auf Ihrem MongoDB-Server zu erstellen:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

Der obige Befehl erstellt einen neuen Benutzer namens admin mit Root-Rechten. Sie können die MongoDB-Authentifizierungsfunktion aktivieren, indem Sie die Datei /etc/mongod.conf öffnen und dann die folgende Zeile hinzufügen:

  security:

   authorization: 'enabled'

Vergessen Sie nicht, Ihren mongoDB-Dienst neu zu starten, um die Änderungen zu übernehmen. Der obige Befehl beschränkt den Zugriff auf die Datenbank auf denjenigen, der über Zugangsdaten verfügt und zur Anmeldung berechtigt ist.

Rollen und Berechtigungen einrichten

Um den Missbrauch des Zugriffs auf MongoDB zu verhindern, können wir einen rollenbasierten Zugriff implementieren, indem wir mehrere Rollen und ihre Berechtigungen erstellen.

Stellen Sie sicher, dass Sie eine Liste von Benutzern haben, die auf die Datenbank zugreifen müssen, und verstehen Sie die Bedürfnisse und Verantwortlichkeiten jedes Einzelnen. Erstellen Sie Rollen und weisen Sie diesen erstellten Rollen die Berechtigungen zu. Danach können Sie Ihren Benutzer basierend auf den Verantwortlichkeiten einer Rolle zuweisen.

Dieser Ansatz hilft uns, den Missbrauch von Autorität zu minimieren und die Rolle und den Benutzer sofort zu identifizieren, wenn etwas Unerwünschtes passiert.

SSL/TLS-Verbindung konfigurieren

MongoDB unterstützt SSL/TLS-Verbindungen zum Sichern von Daten während der Übertragung. Um dies zu implementieren, müssen Sie Ihren eigenen SSL-Schlüssel generieren, Sie können ihn mit openssl generieren. Um die SSL/TLS-Unterstützung zu aktivieren, können Sie die Datei /etc/mongod.conf bearbeiten und den folgenden Parameter hinzufügen:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

Nachdem Sie diese Parameter hinzugefügt haben, müssen Sie den MongoDB-Dienst neu starten. Wenn Sie über eine MongoDB-Replicaset-Architektur verfügen, müssen Sie diese auf jedem Knoten anwenden. SSL ist auch erforderlich, wenn der Client auf MongoDB zugreift, sei es von der Anwendungsseite oder direkt vom Client.

Für den Produktionseinsatz sollten Sie gültige Zertifikate verwenden, die von einer einzigen Zertifizierungsstelle generiert und signiert wurden. Sie oder Ihre Organisation können Zertifikate als unabhängige Zertifizierungsstelle generieren und verwalten oder Zertifikate verwenden, die von TLS/SSL-Drittanbietern generiert wurden. Verhindern Sie die Verwendung eines selbstsignierten Zertifikats, es sei denn, es handelt sich um ein vertrauenswürdiges Netzwerk.

Beschränken Sie den Datenbankport

Sie müssen sicherstellen, dass nur der MongoDB-Port auf dem Firewall-Server oder der Firewall-Appliance geöffnet ist, stellen Sie sicher, dass keine anderen Ports geöffnet sind.

Sichern der MongoDB-Verbindung

Eine Fernverbindung über das öffentliche Internet birgt das Risiko, dass Daten von lokalen Benutzern zum Datenbankserver übertragen werden und umgekehrt. Angreifer können die Verbindung unterbrechen, was in diesem Fall als MITM-Angriff (Min-in-The-Middle) bezeichnet wird. Das Sichern der Verbindung ist sehr wichtig, wenn wir die Datenbank aus der Ferne verwalten / verwalten. Einige Dinge, die wir anwenden können, um unseren Zugriff auf die Datenbank zu schützen, sind die folgenden:

Privater Netzwerkzugriff

VPN (Virtual Private Network) ist eines der grundlegenden Dinge, wenn wir sicher von außen auf unsere Infrastruktur zugreifen wollen. VPN ist ein privates Netzwerk, das öffentliche Netzwerke verwendet, um auf die entfernten Standorte zuzugreifen. Die VPN-Einrichtung erfordert Hardware, die auf der Seite des privaten Netzwerks vorbereitet werden muss, außerdem benötigt der Client auch eine VPN-Software, die den Zugriff auf das private Netzwerk unterstützt.

Neben der Verwendung von VPN ist eine weitere Möglichkeit, auf den MongoDB-Server zuzugreifen, die Portweiterleitung des Datenbankports über SSH oder besser bekannt als SSH-Tunneling.

SSL / TLS vom Client zum Datenbankserver verwenden

Zusätzlich zur Implementierung eines sicheren Zugriffs über VPN oder SSH-Tunneling können wir SSL / TLS verwenden, das zuvor auf der MongoDB-Seite konfiguriert wurde. Sie brauchen nur den SSL-Schlüssel, den Sie haben, und versuchen Sie, sich mit dem SSL-Schlüssel mit der Datenbank zu verbinden.

Datenbanküberwachung aktivieren

Es ist wichtig, dass der Überwachungsdienst den aktuellen Zustand der Datenbanken versteht. Der Überwachungsserver kann unter der öffentlichen Domäne installiert werden, für die SSL/TLS aktiviert ist, sodass der automatische Zugriff auf den Browser HTTPs verwenden kann.

Fazit

Es macht wirklich Spaß, von zu Hause aus zu arbeiten, Sie können mit Ihren Kindern interagieren und gleichzeitig Ihre Datenbank überwachen. Sie müssen die obigen Richtlinien befolgen, um sicherzustellen, dass Sie nicht angegriffen werden oder Daten gestohlen werden, wenn Sie remote auf Ihre Datenbank zugreifen.