MongoDB NoSQL Database installeren en beveiligen op Ubuntu 22.04

MongoDB is een gratis, open-source en een van de populairste NoSQL databasesystemen. Het slaat gegevens op in JSON in plaats van de gebruikelijke methode in tabelstijl die je in SQL-databases aantreft. Het kan gemakkelijk geïntegreerd worden met andere programma’s en wordt daarom veel gebruikt in webapplicaties. Het vereist geen vooraf gedefinieerd schema, en de gegevensstructuur kan in de loop der tijd worden gewijzigd. Het is geschreven in C++ en biedt schaalbaarheid, hoge prestaties en hoge beschikbaarheid.

In deze tutorial laten we zien hoe je MongoDB installeert op Ubuntu 22.04.

Voorwaarden

  • Een server waarop Ubuntu 22.04 draait.
  • Een root wachtwoord is geconfigureerd op de server.

MongoDB archief toevoegen

Het MongoDB pakket is standaard niet opgenomen in de Ubuntu 22.04 standaard repository, dus moet je de MongoDB officiële repository toevoegen aan de APT.

Installeer eerst alle vereiste afhankelijkheden met het volgende commando:

apt install wget gnupg2 curl -y

Download en voeg vervolgens de MongoDB GPG-sleutel toe met het volgende commando:

curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -

Voeg vervolgens de MongoDB repository toe aan APT met het volgende commando:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Zodra de MongoDB repository is toegevoegd, werk je de repository cache bij met het volgende commando:

apt update -y

MongoDB installeren op Ubuntu 22.04

Je kunt nu het MongoDB-pakket installeren met het volgende commando:

apt install mongodb-org -y

Start vervolgens de MongoDB service en schakel deze in om te starten bij het opnieuw opstarten van het systeem met het volgende commando:

systemctl start mongod

Je kunt de status van de MongoDB controleren met het volgende commando:

systemctl status mongod

Je zou de volgende uitvoer moeten zien:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-05-28 15:04:49 UTC; 7s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 27422 (mongod)
     Memory: 63.3M
        CPU: 967ms
     CGroup: /system.slice/mongod.service
             ??27422 /usr/bin/mongod --config /etc/mongod.conf

May 28 15:04:49 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Om de MongoDB-versie te controleren gebruik je het volgende commando:

mongo --version

Je zou de MongoDB-versie moeten zien in de volgende uitvoer:

MongoDB shell version v4.4.14
Build Info: {
    "version": "4.4.14",
    "gitVersion": "0b0843af97c3ec9d2c0995152d96d2aad725aab7",
    "openSSLVersion": "OpenSSL 1.1.1l  24 Aug 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Je kunt ook de MongoDB verbindingsinformatie controleren met het volgende commando:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Je zou de volgende uitvoer moeten krijgen:

MongoDB shell version v4.4.14
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("44560246-9673-418a-95c9-112bba345f4f") }
MongoDB server version: 4.4.14
{
	"authInfo" : {
		"authenticatedUsers" : [ ],
		"authenticatedUserRoles" : [ ]
	},
	"ok" : 1
}

MongoDB Admin Gebruiker aanmaken

Standaard is MongoDB toegankelijk zonder gebruikersnaam en wachtwoord. Om veiligheidsredenen is het raadzaam een admin gebruiker aan te maken om MongoDB te authenticeren.

Log eerst in op de MongoDB shell met het volgende commando:

mongo

Zodra je bent ingelogd, verander je de database in admin met het volgende commando:

use admin

Maak vervolgens een admin gebruiker en stel een wachtwoord in met het volgende commando:

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

Je zou de volgende uitvoer moeten zien:

Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

Bewerk vervolgens het MongoDB-configuratiebestand en schakel de MongoDB-authenticatie in. Dat doe je door het MongoDB configuratiebestand te bewerken:

nano /etc/mongod.conf

Voeg de volgende regel toe om de MongoDB-authenticatie in te schakelen:

security:
  authorization: enabled

Sla het bestand op en sluit het en herstart vervolgens de MongoDB service om de wijzigingen toe te passen:

systemctl restart mongod

MongoDB authenticatie verifiëren

Nu kun je de MongoDB authenticatie verifiëren met het volgende commando:

mongo -u admin -p --authenticationDatabase admin

Je wordt gevraagd om een MongoDB admin wachtwoord op te geven:

MongoDB shell version v4.4.14
Enter password: 

Geef je admin-wachtwoord en druk op de Enter-toets. Je zou de volgende uitvoer moeten zien:

connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("05106893-c382-4895-a55b-7560858b31eb") }
MongoDB server version: 4.4.14
> 

Om alle MongoDB databases op te sommen voer je het volgende commando uit:

> show dbs

Je zou de volgende uitvoer moeten zien:

admin   0.000GB
config  0.000GB
local   0.000GB

Gefeliciteerd! Je hebt MongoDB met succes geïnstalleerd op Ubuntu 22.04.