GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So übernehmen Sie die Kontrolle über Ihre MongoDB-Sicherheit

Hacker werden immer raffinierter und wissen, wie sie Schwachstellen ausnutzen können. Wenn Sie sensible Daten in Ihrer MongoDB-Datenbank haben, ist es wichtig, die Sicherheit ernst zu nehmen. Aber wie? Mach dir keine Sorgen! Dieses Tutorial hat Sie abgedeckt!

In diesem Tutorial erfahren Sie, wie Sie Ihre MongoDB-Datenbanken schützen und Hacker abwehren, indem Sie Sicherheitsmaßnahmen einrichten.

Lesen Sie weiter und übernehmen Sie die Kontrolle über Ihre MongoDB-Sicherheit!

Voraussetzungen

  • Dieses Tutorial ist eine praktische Demonstration. Um mitzumachen, stellen Sie sicher, dass Sie Folgendes haben:
  • MongoDB auf Ihrem Linux-Rechner installiert.
  • Ein Nicht-Root-Benutzer mit sudo Privilegien.

Erstellen eines dedizierten Administratorbenutzers

MongoDB hat kein eingebautes Authentifizierungssystem. Standardmäßig hat jeder mit Zugriff auf die Datenbank volle Administratorrechte – zu gefährlich! Wie sichern Sie Ihre Datenbank? Sie erstellen einen Benutzer mit Administratorrechten und sperren die Datenbanken für diesen Administrator.

Mit dieser Einrichtung können Sie einen einzigen Benutzerzugriffspunkt mit Administratorrechten bereitstellen und gleichzeitig einschränken, was jeder Benutzer in der Datenbank tun kann. Beispielsweise sollten Entwickler Lesezugriff auf Datenbanken haben, während Administratoren Daten erstellen und bearbeiten können.

1. Öffnen Sie Ihr Terminal und führen Sie mongo aus Befehl unten ohne Argumente. Mit diesem Befehl können Sie sich als standardmäßiger Administratorbenutzer mit Ihrer MongoDB-Shell verbinden.

Dieser Admin-Benutzer ist leistungsstark, da er vollen Lese-/Schreibzugriff auf alle Datenbanken auf dem Server hat, und es ist am besten, diesen Benutzer nicht für die tägliche Arbeit zu verwenden.

mongo

Sie erhalten eine Warnung, die besagt, dass Zugriffskontrolle nicht aktiviert ist …., Wie nachfolgend dargestellt.

Diese Warnung weist darauf hin, dass jeder, der auf den MongoDB-Server zugreifen kann, die gewünschten Aktionen mit den Datenbanken ausführen kann. Zu diesen Aktionen gehören unter anderem das Löschen, Löschen und Aktualisieren von Datenbanken.

Diese Warnung wird angezeigt, weil Sie die Zugriffssteuerung noch nicht aktiviert haben. Machen Sie sich vorerst keine Sorgen. Im folgenden Abschnitt erfahren Sie, wie Sie die Zugriffskontrolle aktivieren.

2. Führen Sie als Nächstes show dbs aus Befehl, um alle Datenbanken auf dem Server anzuzeigen, einschließlich admin Datenbanken, die ein normaler Benutzer nicht sehen sollte.

show dbs

3. Führen Sie use admin aus Befehl unten, um zur Admin-Datenbank zu wechseln, da Ihr Fokus auf der Erstellung eines dedizierten administrativen Benutzers liegt. Dieser Befehl ändert Ihren aktuellen Datenbankkontext so, dass er die Admin-Datenbank verwendet, wie unten gezeigt.

MongoDB verwendet die Admin-Datenbank, um Zugriffskontrollregeln zu speichern und integrierte Authentifizierung, Benutzernamen und Passwörter für Benutzer und ihre Rollen bereitzustellen. Sie können die Admin-Datenbank nicht löschen oder umbenennen, da dies für die Funktionalität der Datenbank unerlässlich ist.

use admin

4. Kopieren Sie nun den folgenden Code, fügen Sie ihn in die Mongo-Shell ein und drücken Sie die Eingabetaste. Dieser Code erstellt einen Benutzer namens AdminATA , mit dem Passwort LDWbPf6Fy9Ezs3Mv , aber Sie können nach Belieben andere Anmeldeinformationen verwenden.

Dieser neue Benutzer hat Lese-/Schreibzugriff (readWriteAnyDatabase ) Zugriff auf alle Datenbanken und Administratorzugriff auf alle Sammlungen. Dieser Benutzer hat jedoch keine Berechtigungen zum Löschen/Löschen von Datenbanken und kann die Berechtigungen anderer Benutzer nicht löschen oder ändern.

Nachdem Sie den Befehl ausgeführt haben und Sie eine Fehlermeldung erhalten, überprüfen Sie Ihren Code erneut und versuchen Sie es erneut.

# The db.createUser() method creates a new user on the current database, with the privileges specified by roles.
db.createUser(
{
# Specifying the username AdminATA, but you can enter whatever username you like
user: "AdminATA",
# The passwordPrompt() method is a universal helper function 
# that tells the MongoDB shell to prompt you for a password for the AdminATA user.
pwd: passwordPrompt(),
# Specifying  the roles you want your AdminATA user to have.
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

5. Geben Sie ein sicheres Passwort ein, wenn Sie dazu aufgefordert werden, wie unten gezeigt, und drücken Sie die Eingabetaste.

Unten sehen Sie einen erfolgreich hinzugefügten Benutzer Botschaft. Diese Ausgabe bestätigt, dass Sie erfolgreich einen Benutzer mit Administratorrechten erstellt und ihn auf die am wenigsten erforderlichen Rechte beschränkt haben.

Zu diesem Zeitpunkt haben Sie bereits einen administrativen Benutzer namens AdminATA, der alles tun kann, was Sie für die Datenbank benötigen, ohne allen Zugriff zu gewähren.

6. Führen Sie abschließend den Exit-Befehl aus, um die Mongo-Shell zu verlassen.

exit

Hinzufügen von Sicherheit durch Aktivieren der Authentifizierung

Da Sie nun einen administrativen Benutzer haben, fügen Sie eine weitere Sicherheitsebene hinzu, indem Sie die Authentifizierung aktivieren. Dadurch erhalten nur Benutzer mit den richtigen Anmeldeinformationen Zugriff auf die Datenbank.

Authentifizierung bezieht sich auf den Prozess der Validierung einer Verbindung, typischerweise durch Angabe eines Benutzernamens und Passworts oder Verwendung eines Authentifizierungstokens. Die Authentifizierung stellt sicher, dass Sie der sind, für den Sie sich ausgeben, und kein Betrüger, der versucht, auf Ressourcen zuzugreifen.

1. Aktivieren Sie die Authentifizierung, indem Sie die MongoDB-Konfigurationsdatei wie folgt bearbeiten und die Änderungen speichern:

  • Öffnen Sie die /etc/mongod.conf Datei in Ihrem bevorzugten Texteditor. Die /etc/mongod.conf Datei enthält die Konfiguration Ihres MongoDB-Clusters.
  • Suchen Sie nach #security und entfernen Sie das Kommentarzeichen Direktive durch Entfernen des # Symbol vor der Anweisung, wie unten gezeigt. Diese Direktive weist MongoDB an, in der Konfigurationsdatei nach der Sicherheitseinstellung zu suchen.
  • Fügen Sie unterhalb der Sicherheit eine neue Zeile hinzu Direktive, die besagt:authorization:enabled . Beachten Sie, dass die Autorisierung:aktiviert ist Zeile ist eingerückt (hat zwei Leerzeichen am Anfang), wie unten gezeigt.

2. Führen Sie als Nächstes den folgenden systemctl aus Befehl, um den MongoDB-Server neu zu starten, damit die Änderungen wirksam werden.

sudo systemctl restart mongod

3. Führen Sie schließlich den folgenden Befehl aus, um den Status Ihres MongoDB-Dienstes anzuzeigen.

sudo systemctl status mongod

Unten sehen Sie eine Zeile mit der Aufschrift Active:active (running) in grünem Text, was darauf hinweist, dass Ihr MongoDB-Server ausgeführt wird und bereit ist, Verbindungen anzunehmen.

Testen, ob die Authentifizierung funktioniert

Sie haben gerade die Authentifizierung aktiviert, aber woher wissen Sie, dass sie funktioniert? Sie melden sich beim Administrator an, um zu testen und sicherzustellen, dass Ihre Authentifizierung funktioniert, indem Sie Datenbanken anzeigen.

1. Führen Sie die folgenden Befehle aus, um auf mongo zuzugreifen Shell, wie Sie es im Abschnitt „Erstellen eines dedizierten Administratorbenutzers“ (Schritt eins) getan haben.

mongo

Wie Sie unten sehen können, erhalten Sie nicht mehr die Meldung Zugriffskontrolle ist nicht aktiviert… Warnung vor der Aktivierung der Authentifizierung. Stattdessen erhalten Sie eine Meldung, die Ihnen die Version Ihres MongoDB-Servers und der MongoDB-Shell mitteilt.

2. Als nächstes führen Sie show dbs erneut aus Befehl, um zu prüfen, ob Sie noch auf die Datenbank zugreifen können.

show dbs

Der Befehl sollte Ihnen alle Datenbanken anzeigen, sogar die Admin-Datenbank. Aber wie Sie unten sehen, wird nichts angezeigt. Wieso den? Das Anzeigen der Liste der Datenbanken ist ein Privileg, das nur administrativen Benutzern vorbehalten ist.

Sie haben Ihre Mongo-Shell nicht für die Verwendung der Administratorrolle authentifiziert, daher sind Sie nicht berechtigt, die Liste der Datenbanken anzuzeigen.

Bei aktivierter Authentifizierung schlägt die Verbindung fehl, wenn jemand versucht, mit einer Verbindungszeichenfolge auf die Datenbank zuzugreifen, die nicht die richtigen Anmeldeinformationen enthält.

Die Authentifizierung von Verbindungszeichenfolgen ist ein zentraler Bestandteil der MongoDB-Sicherheit, und Sie sollten die Authentifizierung auf allen Ebenen der Anwendung implementieren. Alle Verbindungen zu MongoDB müssen eine Authentifizierungszeichenfolge verwenden, die aus Anmeldeinformationen besteht. Diese Anmeldeinformationen beinhalten den korrekten Benutzernamen und das richtige Passwort.

3. Führen Sie exit aus Befehl zum Verlassen der MongoDB-Shell.

exit

4. Führen Sie nun den folgenden Befehl aus, um sich mit dem Benutzernamen Ihres neu erstellten administrativen Benutzers (-u) bei der MongoDB-Shell anzumelden ) und Passwort (-p ). Ersetzen Sie AdminATA mit dem Benutzernamen, den Sie im Abschnitt „Erstellen eines dedizierten Administratorbenutzers“ (Schritt 4) erstellt haben.

Die --authenticationDatabase -Parameter weist die MongoDB-Shell an, sich bei admin zu authentifizieren Datenbank.

mongo -u AdminATA -p --authenticationDatabase admin

5. Geben Sie Ihr Kennwort für Ihren Administratorbenutzer ein, wenn Sie dazu aufgefordert werden.

6. Führen Sie schließlich show dbs erneut aus Befehl, um zu versuchen, ob Sie alle Datenbanken anzeigen können.

show dbs

Wie Sie unten sehen, wird diesmal die Liste der Datenbanken angezeigt, da Sie ein Administratorbenutzer sind.

Schlussfolgerung

In diesem Lernprogramm haben Sie gelernt, wie Sie eine Verbindung herstellen, um einen Administratorbenutzer zu erstellen und die Authentifizierung zu aktivieren. Sie haben gelernt, die Kontrolle über Ihre MongoDB-Sicherheit zu übernehmen und den Zugriff auf Datenbanken auf Ihrem Server einzuschränken.

An dieser Stelle entscheiden Sie, wer auf was zugreifen darf. Was kommt als nächstes für dich? Vielleicht erfahren Sie, wie Sie einen MongoDB-Container sicher verwenden?


Linux
  1. So fügen Sie einen Benutzer zu Ihrem Linux-Desktop hinzu

  2. Wie können Sie Ihren Computer schützen?

  3. So erstellen Sie ein Backup Ihrer Datenbank über das Plesk Control Panel

  4. So erstellen Sie eine neue Datenbank oder einen neuen Datenbankbenutzer im Plesk Control Panel

  5. Helligkeitsregler – Übernehmen Sie die vollständige Kontrolle über die Helligkeit Ihres Monitors

So überprüfen Sie die MySQL-Benutzerrechte unter Linux

Wie erstelle ich eine Sicherungskopie der MySQL-Datenbank von der HELM-Systemsteuerung?

Wie füge ich eine MySQL-Datenbank in SolidCP hinzu?

So ändern Sie das Kennwort des Datenbankbenutzers

So erstellen Sie ein Datenbank-Backup auf Plesk

So installieren Sie WordPress im Vesta Control Panel