Comment installer et sécuriser MongoDB sur Debian 11

MongoDB est une base de données open-source, polyvalente, basée sur des documents et distribuée, conçue pour les développeurs d’applications modernes. On l’appelle aussi une base de données NoSQL car elle ne repose pas sur une structure de base de données relationnelle traditionnelle basée sur des tables. Elle stocke les données au format JSON au lieu de la méthode du style tableau. Elle peut être intégrée facilement à divers langages de programmation. Elle est utilisée par de nombreuses entreprises connues, notamment Facebook, Cisco, Forbes, Adobe, Nokia, etc.

Dans ce billet, nous allons te montrer comment installer et sécuriser la base de données NoSQL MongoDB sur Debian 11.

Conditions préalables

  • Un serveur fonctionnant sous Debian 11.
  • Un mot de passe root est configuré sur le serveur.

Ajouter le référentiel MongoDB

Par défaut, le paquet MongoDB n’est pas inclus dans le référentiel par défaut de Debian 11. Tu devras donc ajouter le dépôt officiel MongoDB à l’APT.

Tout d’abord, installe les dépendances requises à l’aide de la commande suivante :

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

Une fois que toutes les dépendances sont installées, télécharge et ajoute la clé GPG à l’aide de la commande suivante :

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

Ensuite, ajoute le référentiel MongoDB au fichier de la liste des sources d’APT à l’aide de la commande suivante :

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

Ensuite, mets à jour le référentiel et installe le serveur MongoDB avec la commande suivante :

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

Après l’installation réussie, démarre le service MongoDB et active-le pour qu’il démarre au redémarrage du système :

systemctl start mongod
systemctl enable mongod

Ensuite, vérifie la version de MongoDB à l’aide de la commande ci-dessous :

mongod --version

Tu devrais obtenir le résultat suivant :

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

Activer l’authentification MongoDB

Par défaut, l’authentification n’est pas activée dans MongoDB. Pour des raisons de sécurité, il est recommandé d’activer l’authentification MongoDB.

Pour ce faire, tu dois créer un utilisateur administratif pour MongoDB.

Tout d’abord, connecte-toi au shell MongoDB avec la commande suivante :

mongo

Une fois que tu es connecté, crée une base de données nommée admin avec la commande suivante :

> use admin

Ensuite, crée un utilisateur admin et définis un mot de passe :

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

Tu devrais voir la sortie suivante :

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

Ensuite, appuie sur CTRL+D pour quitter le shell MongoDB. Puis, modifie le fichier de configuration MongoDB avec la commande suivante :

nano /etc/mongod.conf

Ajoute les lignes suivantes pour activer l’authentification :

security:
 authorization: enabled

Enregistre et ferme le fichier puis redémarre le service MongoDB pour appliquer les modifications.

systemctl restart mongod

Vérifier la connexion MongoDB

À ce stade, l’authentification MongoDB est activée. Maintenant, exécute la commande suivante pour te connecter au shell MongoDB à l’aide du nom d’utilisateur et du mot de passe :

mongo -u madmin -p

Après l’authentification réussie, tu obtiendras la sortie suivante :

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
> 

Ensuite, change la base de données en admin et liste tous les utilisateurs à l’aide de la commande suivante :

> use admin
> show users

Tu devrais obtenir le résultat suivant :

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

Désinstalle MongoDB

Si tu n’as pas besoin de MongoDB dans ton système, tu peux le désinstaller de ton système.

Tout d’abord, arrête le service MongoDB avec la commande suivante :

systemctl stop mongod

Ensuite, supprime le paquetage MongoDB en exécutant la commande suivante :

apt-get remove mongodb-org --purge

Ensuite, supprime les répertoires de logs et de données MongoDB en exécutant la commande suivante: :

rm -rf /var/lib/mongodb

Conclusion

Félicitations ! Tu as réussi à installer et à sécuriser MongoDB sur Debian 11. Tu peux maintenant utiliser MongoDB avec tes applications Web. Pour plus d’informations, consulte la documentation officielle de MongoDB.

Vous aimerez aussi...