Sichern Sie MongoDB mit Benutzername und Passwort

Tahseen Tauseef 20 Juni 2023
Sichern Sie MongoDB mit Benutzername und Passwort

In diesem MongoDB-Artikel erfahren Sie, wie Sie die grundlegendste Sicherheitsfunktion richtig konfigurieren: das Sichern von MongoDB mit einem Benutzernamen und einem Kennwort, indem Sie einen Authentifizierungsbenutzer erstellen, während Sie remote auf MongoDB zugreifen.

Wie Sie wissen, wird MongoDB als NoSQL-Datenbank beschrieben und folgt keiner relationalen DB-Struktur; Stattdessen speichert es Daten in JSON-Dokumenten.

Wenn Sie MongoDB installieren, ist für die MongoDB-Fernverbindungssicherheit keine Authentifizierung aktiviert, was bedeutet, dass jeder mit Ihrer HOST-IP schnell auf Ihre MongoDB-Dienste zugreifen und CRUD-Operationen ohne MongoDB-Authentifizierung ausführen kann, was keine sichere Methode zur Integration des mongod ist. Datenbank weltweit.

Darüber hinaus bedeutet keine Authentifizierung, jeden einzuladen, in Ihre Datenbanken einzudringen, alles zu beschlagnahmen und möglicherweise Lösegeld für Ihre Daten zu verlangen.

In diesem MongoDB-Artikel wird beschrieben, wie die MongoDB-Authentifizierung gesichert wird, sodass nur der Benutzer mit MongoDB-Authentifizierungsdaten auf die Datenbanken zugreifen kann.

Die in diesem MongoDB-Artikel behandelten Themen sind:

– Aktivieren der Sicherheitsauthentifizierung auf MongoDB

  1. Starten Sie MongoDB ohne Authentifizierung
  2. Stellen Sie über die MongoDB-Shell eine Verbindung zum Server her
  3. Erstellen Sie den Benutzeradministrator
  4. Aktivieren Sie die Authentifizierung in der Konfigurationsdatei mongod
  5. Stellen Sie eine Verbindung her und authentifizieren Sie sich als Benutzeradministrator
  6. Erstellen Sie weitere Benutzer

Aktivieren Sie die Sicherheitsauthentifizierung auf MongoDB

Dieser MongoDB-Artikel gilt nur für selbstverwaltete MongoDB-Server. Alle MongoDB as a Service-Anbieter ermöglichen bereits eine präventive Authentifizierung.

Starten Sie MongoDB ohne Authentifizierung

Öffnen Sie eine Shell und führen Sie den MongoDB-Client aus. Das ist einfach, da dies das Standardverhalten für MongoDB ist.

$ mongo

Stellen Sie über die MongoDB-Shell eine Verbindung zum Server her

$ mongo mongodb://<host>:<port>

Die Portnummer wird wahrscheinlich 27017 sein, aber Sie können sie für zusätzliche Sicherheit jederzeit auf eine andere ändern.

Erstellen Sie den Benutzeradministrator

Wechseln Sie in die Admin-Datenbank:

> use admin

Sie müssen einen Benutzer mit der Rolle userAdminAnyDatabase erstellen, mit der Sie andere Benutzer für jede vorhandene Datenbank erstellen können. Das folgende Beispiel erstellt den Benutzer admin123 mit dem Passwort pass123.

> db.createUser(
  {
    user: "admin123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Trennen Sie dann die Mongo-Shell mit Strg+D.

Aktivieren Sie die Authentifizierung in der Konfigurationsdatei mongod

Bearbeiten Sie mongod.conf mit Ihrem bevorzugten Editor und aktivieren Sie Autorisierung.

$ sudo vi /etc/mongod.conf

Öffnen Sie /etc/mongod.conf mit einem beliebigen Code-Editor und suchen Sie nach den folgenden Zeilen.

security:
    authorization: "disabled"

Entfernen Sie im Abschnitt Sicherheit ein beliebiges #, ändern Sie die Autorisierung in aktiviert oder fügen Sie es hinzu, falls es fehlt. Es sollte so aussehen:

security:
  authorization: "enabled"

Wenn Sie mongod.conf nicht finden können oder sie stattdessen mongodb.conf heisst, verwenden Sie eine veraltete und kaputte Version von MongoDB.

In diesem Fall müssen Sie wahrscheinlich ein Upgrade auf eine neuere Version von MongoDB in Erwägung ziehen. Aber wenn es Ihnen egal ist, tun Sie dies:

$ sudo vi /etc/mongodb.conf

Suchen Sie nach auth, entfernen Sie # und stellen Sie sicher, dass es auf true gesetzt ist. Es sollte so aussehen:

auth = true

Nachdem Sie disabled auf enabled geändert haben, müssen Sie die Datei speichern und mongod neu starten.

$ sudo service mongodb restart

Alle Clients, die sich mit diesem Server verbinden, müssen sich als gültige Benutzer authentifizieren und können nur Aktionen ausführen, die von ihren zugewiesenen Rollen bestimmt werden.

Verbinden und authentifizieren Sie sich als Benutzeradministrator

$ mongo mongodb://<host>:<port>> db.auth("admin123", "pass123")
1

Der Benutzer kann sich auch in einem einzigen Schritt mit mongo mongodb://superadmin:thepianohasbeendrinking@<host>:<port> verbinden und authentifizieren. Diese Option wird jedoch nicht empfohlen, da Ihre Anmeldeinformationen in Ihrem Terminalverlauf sichtbar bleiben, den jedes Programm auf Ihrem Computer lesen kann.

Erstellen Sie zusätzliche Benutzer

Die folgende Operation fügt der Testdatenbank einen Benutzer admin456 hinzu, der die Rolle readWrite in der Testdatenbank hat.

> use test
> db.createUser(
  {
    user: "admin456",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" } ]
  }
)

Drücken Sie Enter, dann antwortet Mongo mit Erfolgreich hinzugefügter Benutzer: …. Geben Sie dann exit ein oder verwenden Sie CTRL+C.

Verwandter Artikel - MongoDB Authentication