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
- Starten Sie MongoDB ohne Authentifizierung
- Stellen Sie über die MongoDB-Shell eine Verbindung zum Server her
- Erstellen Sie den Benutzeradministrator
- Aktivieren Sie die Authentifizierung in der Konfigurationsdatei
mongod
- Stellen Sie eine Verbindung her und authentifizieren Sie sich als Benutzeradministrator
- 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.