Wie man MongoDB unter Debian 11 installiert und absichert
MongoDB ist eine universelle, dokumentenbasierte und verteilte Open-Source-Datenbank, die für moderne Anwendungsentwickler entwickelt wurde. Sie wird auch als NoSQL-Datenbank bezeichnet, weil sie nicht auf einer traditionellen tabellenbasierten relationalen Datenbankstruktur basiert. Sie speichert Daten im JSON-Format und nicht im Tabellenformat. Sie lässt sich leicht in verschiedene Programmiersprachen integrieren. Sie wird von vielen bekannten Unternehmen wie Facebook, Cisco, Forbes, Adobe, Nokia usw. genutzt.
In diesem Beitrag zeigen wir dir, wie du die NoSQL-Datenbank MongoDB unter Debian 11 installieren und sichern kannst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein Root-Passwort ist auf dem Server eingerichtet.
MongoDB-Repository hinzufügen
Standardmäßig ist das MongoDB-Paket nicht im Standard-Repository von Debian 11 enthalten. Daher musst du das offizielle MongoDB-Repository zum APT hinzufügen.
Installiere zunächst die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install curl apt-transport-https software-properties-common gnupg2 -y
Sobald alle Abhängigkeiten installiert sind, lädst du den GPG-Schlüssel herunter und fügst ihn mit dem folgenden Befehl hinzu:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
Als Nächstes fügst du das MongoDB-Repository mit folgendem Befehl zur APT-Quellenlistendatei hinzu:
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.list
Als Nächstes aktualisierst du das Repository und installierst den MongoDB-Server mit dem folgenden Befehl:
apt-get update -y apt-get install mongodb-org -y
Nach der erfolgreichen Installation startest du den MongoDB-Dienst und aktivierst ihn so, dass er beim Neustart des Systems startet:
systemctl start mongod systemctl enable mongod
Als Nächstes überprüfst du die MongoDB-Version mit folgendem Befehl:
mongod --version
Du solltest die folgende Ausgabe erhalten:
db version v4.4.9 Build Info: { "version": "4.4.9", "gitVersion": "b4048e19814bfebac717cf5a880076aa69aba481", "openSSLVersion": "OpenSSL 1.1.1k 25 Mar 2021", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "debian10", "distarch": "x86_64", "target_arch": "x86_64" } }
Aktiviere die MongoDB-Authentifizierung
Standardmäßig ist die Authentifizierung in MongoDB nicht aktiviert. Aus Sicherheitsgründen ist es empfehlenswert, die MongoDB-Authentifizierung zu aktivieren.
Dazu musst du einen administrativen Benutzer für MongoDB anlegen.
Verbinde dich zunächst mit folgendem Befehl mit der MongoDB-Shell:
mongo
Sobald du verbunden bist, erstelle eine Datenbank mit dem Namen admin mit dem folgenden Befehl:
> use admin
Als Nächstes erstellst du einen Benutzer admin und legst ein Passwort fest:
> db.createUser( { user: "madmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Du solltest die folgende Ausgabe sehen:
Successfully added user: { "user" : "madmin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
Als Nächstes drückst du STRG+D, um die MongoDB-Shell zu verlassen. Bearbeite dann die MongoDB-Konfigurationsdatei mit dem folgenden Befehl:
nano /etc/mongod.conf
Füge die folgenden Zeilen hinzu, um die Authentifizierung zu aktivieren:
security: authorization: enabled
Speichere und schließe die Datei und starte den MongoDB-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart mongod
Überprüfe die MongoDB-Verbindung
Jetzt ist die MongoDB-Authentifizierung aktiviert. Führe nun den folgenden Befehl aus, um die MongoDB-Shell mit dem Benutzernamen und dem Passwort zu verbinden:
mongo -u madmin -p
Nach der erfolgreichen Authentifizierung erhältst du die folgende Ausgabe:
MongoDB shell version v4.4.9 Enter password: connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8366d28f-55d3-4471-bd94-331329828181") } MongoDB server version: 4.4.9 >
Als Nächstes änderst du die Datenbank in admin und listest alle Benutzer mit dem folgenden Befehl auf:
> use admin > show users
Du solltest die folgende Ausgabe erhalten:
{ "_id" : "admin.madmin", "userId" : UUID("26dd5225-7bb6-4a57-96a0-7efc4e1a98ba"), "user" : "madmin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
MongoDB deinstallieren
Wenn du MongoDB nicht in deinem System brauchst, kannst du es deinstallieren.
Beende zunächst den MongoDB-Dienst mit dem folgenden Befehl:
systemctl stop mongod
Als Nächstes entfernst du das MongoDB-Paket, indem du den folgenden Befehl ausführst:
apt-get remove mongodb-org --purge
Als Nächstes entfernst du die MongoDB-Logs und -Datenverzeichnisse, indem du den folgenden Befehl ausführst:
rm -rf /var/lib/mongodb
Fazit
Glückwunsch! Du hast MongoDB unter Debian 11 erfolgreich installiert und gesichert. Jetzt kannst du MongoDB für deine Webanwendungen nutzen. Weitere Informationen findest du in der offiziellen Dokumentation von MongoDB.