MongoDB installeren en beveiligen op Debian 11

MongoDB is een open-source, algemene, document-gebaseerde en gedistribueerde databank, ontworpen voor moderne toepassingsontwikkelaars. Het wordt ook wel een NoSQL databank genoemd omdat het niet steunt op een traditionele tabel-gebaseerde relationele databasestructuur. Het slaat gegevens op in JSON formaat in plaats van de tabelachtige methode. Het kan gemakkelijk met verschillende programmeertalen geïntegreerd worden. Het wordt gebruikt door veel bekende bedrijven, waaronder, Facebook, Cisco, Forbes, Adobe, Nokia, enz.

In dit artikel laten we je zien hoe je MongoDB NoSQL databank op Debian 11 kunt installeren en beveiligen.

Vereisten

  • Een server met Debian 11.
  • Een root wachtwoord is op de server ingesteld.

MongoDB bewaarplaats toevoegen

Standaard is het MongoDB pakket niet opgenomen in de standaard repository van Debian 11. Je zult dus de officiële repository van MongoDB aan de APT moeten toevoegen.

Installeer eerst de vereiste afhankelijkheden met het volgende commando:

apt-get install curl apt-transport-https software-properties-common gnupg2 -y

Als alle afhankelijkheden geïnstalleerd zijn, download je de GPG sleutel en voeg je die toe met het volgende commando:

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

Voeg vervolgens de MongoDB repository toe aan het APT sources list bestand met het onderstaande commando:

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.list

Werk vervolgens de repository bij en installeer de MongoDB server met het volgende commando:

apt-get update -y
apt-get install mongodb-org -y

Na de succesvolle installatie start je de MongoDB service en schakel je hem in om te starten bij het herstarten van het systeem:

systemctl start mongod
systemctl enable mongod

Controleer vervolgens de versie van MongoDB met het onderstaande commando:

mongod --version

Je zou de volgende uitvoer moeten krijgen:

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"
    }
}

Schakel MongoDB Authenticatie in

Standaard is authenticatie niet ingeschakeld in MongoDB. Om veiligheidsredenen is het aan te raden de authenticatie van MongoDB in te schakelen.

Om dat te doen, moet je een administratieve gebruiker voor MongoDB aanmaken.

Maak eerst verbinding met de MongoDB shell met het volgende commando:

mongo

Zodra je verbonden bent, maak je een database met de naam admin met het volgende commando:

> use admin

Maak vervolgens een admin gebruiker aan en stel een wachtwoord in:

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

Je zou de volgende uitvoer moeten zien:

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

Druk vervolgens op CTRL+D om de MongoDB shell te verlaten. Bewerk dan het MongoDB configuratiebestand met het volgende commando:

nano /etc/mongod.conf

Voeg de volgende regels toe om de authenticatie in te schakelen:

security:
 authorization: enabled

Sla het bestand op en sluit het af, herstart dan de MongoDB dienst om de veranderingen toe te passen.

systemctl restart mongod

Verifieer de MongoDB verbinding

Op dit punt is de MongoDB authenticatie ingeschakeld. Voer nu het volgende commando uit om de MongoDB shell te verbinden met de gebruikersnaam en het wachtwoord:

mongo -u madmin -p

Na de geslaagde authenticatie krijg je de volgende uitvoer:

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
> 

Verander vervolgens de database in admin en geef een lijst van alle gebruikers met het volgende commando:

> use admin
> show users

Je zou de volgende uitvoer moeten krijgen:

{
	"_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"
	]
}

Verwijder MongoDB

Als je MongoDB niet nodig hebt in je systeem, kun je het van je systeem verwijderen.

Stop eerst de MongoDB dienst met het volgende commando:

systemctl stop mongod

Verwijder vervolgens het MongoDB pakket door het volgende commando uit te voeren:

apt-get remove mongodb-org --purge

Verwijder vervolgens de MongoDB logs en gegevensmappen door het volgende commando uit te voeren:

rm -rf /var/lib/mongodb

Conclusie

Gefeliciteerd! Je hebt met succes MongoDB geïnstalleerd en beveiligd op Debian 11. Je kunt nu MongoDB gebruiken met je web toepassingen. Voor meer informatie, zie de officiële documentatie van MongoDB.