MongoDB est une base de données open source, à usage général, basée sur des documents et distribuée, conçue pour les développeurs d'applications modernes. Elle est également appelée 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. Il stocke les données au format JSON au lieu de la méthode de style de table. Il peut être facilement intégré à divers langages de programmation. Il est utilisé par de nombreuses entreprises bien connues, notamment Facebook, Cisco, Forbes, Adobe, Nokia, etc.
Dans cet article, nous vous montrerons comment installer et sécuriser la base de données NoSQL MongoDB sur Debian 11.
Prérequis
- Un serveur exécutant Debian 11.
- Un mot de passe root est configuré sur le serveur.
Ajouter un référentiel MongoDB
Par défaut, le package MongoDB n'est pas inclus dans le référentiel par défaut de Debian 11. Vous devrez donc ajouter le référentiel officiel MongoDB à l'APT.
Tout d'abord, installez les dépendances requises à l'aide de la commande suivante :
apt-get install curl apt-transport-https software-properties-common gnupg2 -y
Une fois toutes les dépendances installées, téléchargez et ajoutez la clé GPG avec la commande suivante :
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
Ensuite, ajoutez le référentiel MongoDB au fichier de liste des sources APT à l'aide de la commande ci-dessous :
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.list
Ensuite, mettez à jour le référentiel et installez le serveur MongoDB avec la commande suivante :
apt-get update -y
apt-get install mongodb-org -y
Une fois l'installation réussie, démarrez le service MongoDB et activez-le pour qu'il démarre au redémarrage du système :
systemctl start mongod
systemctl enable mongod
Ensuite, vérifiez la version de MongoDB à l'aide de la commande ci-dessous :
mongod --version
Vous devriez 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, vous devrez créer un utilisateur administratif pour MongoDB.
Tout d'abord, connectez-vous au shell MongoDB avec la commande suivante :
mongo
Une fois connecté, créez une base de données nommée admin avec la commande suivante :
> use admin
Ensuite, créez un utilisateur administrateur et définissez un mot de passe :
> db.createUser(
{
user: "madmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Vous devriez voir le résultat suivant :
Successfully added user: { "user" : "madmin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
Ensuite, appuyez sur CTRL + D pour quitter le shell MongoDB. Ensuite, éditez le fichier de configuration MongoDB avec la commande suivante :
nano /etc/mongod.conf
Ajoutez les lignes suivantes pour activer l'authentification :
security: authorization: enabled
Enregistrez et fermez le fichier, puis redémarrez 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écutez la commande suivante pour connecter le shell MongoDB en utilisant le nom d'utilisateur et le mot de passe :
mongo -u madmin -p
Une fois l'authentification réussie, vous obtiendrez le résultat suivant :
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, modifiez la base de données en admin et répertoriez tous les utilisateurs à l'aide de la commande suivante :
> use admin
> show users
Vous devriez 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ésinstaller MongoDB
Si vous n'avez pas besoin de MongoDB dans votre système, vous pouvez le désinstaller de votre système.
Tout d'abord, arrêtez le service MongoDB avec la commande suivante :
systemctl stop mongod
Ensuite, supprimez le package MongoDB en exécutant la commande suivante :
apt-get remove mongodb-org --purge
Ensuite, supprimez les journaux MongoDB et les répertoires de données en exécutant la commande suivante :
rm -rf /var/lib/mongodb
Conclusion
Toutes nos félicitations! vous avez installé et sécurisé avec succès MongoDB sur Debian 11. Vous pouvez maintenant utiliser MongoDB avec vos applications Web. Pour plus d'informations, consultez la documentation officielle de MongoDB.