Comment installer MongoDB sur Debian 8

introduction

http://mongodb.com [MongoDB] est une base de données de documents NoSQL gratuite et à code source ouvert, couramment utilisée dans les applications Web modernes. Ce didacticiel vous aidera à configurer MongoDB sur votre serveur pour une utilisation dans un environnement d’application de production. Vous allez installer MongoDB et configurer des règles de pare-feu pour limiter l’accès à MongoDB.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Étape 1 - Installation de MongoDB

MongoDB est déjà inclus dans les dépôts de paquets Debian, mais le dépôt officiel MongoDB fournit la version la plus récente et constitue le moyen recommandé d’installer le logiciel. Dans cette étape, nous allons ajouter ce référentiel officiel sur notre serveur.

Debian assure l’authenticité des progiciels en vérifiant qu’ils sont signés avec des clés GPG. Nous devons donc d’abord importer leur clé pour le référentiel officiel MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Après avoir importé avec succès la clé, vous verrez:

Sortie

gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Ensuite, nous devons ajouter les détails du référentiel MongoDB afin que + apt + sache où télécharger les paquets.

Exécutez la commande suivante pour créer un fichier de liste pour MongoDB.

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

Après avoir ajouté les détails du référentiel, mettez à jour la liste des packages:

sudo apt-get update

Maintenant, installez le paquet MongoDB lui-même avec la commande suivante:

sudo apt-get install -y mongodb-org

Cela installe la dernière version stable de MongoDB, ainsi que des outils de gestion utiles pour le serveur MongoDB.

Une fois que MongoDB est installé, démarrez le service et assurez-vous qu’il démarre lorsque votre serveur redémarre:

sudo systemctl enable mongod.service
sudo systemctl start mongod

Puis utilisez + systemctl + pour vérifier que le service a bien démarré:

sudo systemctl status mongod

Vous devriez voir la sortie suivante, indiquant que le service est en cours d’exécution:

Sortie

●  - High-performance, schema-free document-oriented database
  Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
  Active: active (running) since Tue 2017-02-28 19:51:51 UTC; 7s ago
    Docs: https://docs.mongodb.org/manual
Main PID: 8958 (mongod)
  CGroup: /system.slice/mongod.service
          └─8958 /usr/bin/mongod --quiet --config /etc/mongod.conf

Feb 28 19:51:51 cart-61037 systemd[1]: Started High-performance, schema-free document-oriented database.

Maintenant que MongoDB est installé avec succès, sécurisons-le avec le pare-feu logiciel.

Étape 2 - Sécuriser MongoDB avec un pare-feu

Dans la plupart des cas, MongoDB doit être accessible uniquement à partir de certains emplacements approuvés, tels qu’un autre serveur hébergeant une application. Pour accomplir cette tâche, vous pouvez autoriser l’accès au port par défaut de MongoDB tout en spécifiant l’adresse IP d’un autre serveur explicitement autorisé à se connecter. Nous allons utiliser le pare-feu iptables pour configurer cette règle, ainsi que quelques autres règles pour sécuriser le système.

Avant d’écrire des règles, installez le paquetage + iptables-persistent + afin de pouvoir sauvegarder les règles que vous avez créées. De cette façon, les règles seront appliquées chaque fois que vous redémarrez votre serveur. Exécutez cette commande:

sudo apt-get install iptables-persistent

Ensuite, supprimez les règles existantes éventuellement en place, au cas où:

sudo iptables -F

Ajoutez ensuite une règle qui permet aux connexions établies de continuer à parler. Ainsi, notre connexion SSH existante ne sera pas interrompue:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Ensuite, assurez-vous que l’accès SSH est autorisé:

sudo iptables -A INPUT -p tcp --dport  -j ACCEPT

Si vous envisagez de vous connecter à MongoDB à partir d’un serveur distant, ajoutez ces règles qui permettront d’accéder au port par défaut de MongoDB à partir de votre serveur d’application:

sudo iptables -A INPUT -s  -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -d  -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

Ensuite, ajoutez ces règles qui autorisent le trafic sur le périphérique de bouclage local:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

Enfin, modifiez la stratégie de pare-feu pour supprimer tout autre trafic:

sudo iptables -P INPUT DROP

Vérifiez que les règles semblent correctes:

sudo iptables -S

Vous devriez voir une sortie semblable à ceci:

Output-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s /32 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -d /32 -p tcp -m tcp --sport 27017 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

Enfin, sauvegardez les règles:

netfilter-persistent save

Pour en savoir plus sur ces règles de pare-feu, consultez https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-iptables-on-ubuntu-14-04 [ Comment configurer un pare-feu en utilisant Iptables sur Ubuntu 14.04].

Étape 3 - Activation de l’accès aux serveurs externes (facultatif)

Les versions actuelles de MongoDB n’acceptent pas les connexions externes par défaut. Si vous avez limité l’accès à des adresses IP spécifiques avec le pare-feu, vous pouvez modifier la configuration de MongoDB pour accepter les connexions distantes.

Editez le fichier de configuration MongoDB:

sudo nano /etc/mongod.conf

Localisez cette section:

mongod.conf

# network interfaces
net:
 port: 27017
 bindIp:

Mongo écoute sur l’adresse de bouclage local, il accepte donc uniquement les connexions locales. Modifiez la valeur + bindIp + afin qu’elle inclue l’adresse IP de votre serveur MongoDB:

mongod.conf

# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1

Enregistrez le fichier et quittez l’éditeur.

Puis redémarrez MongoDB pour appliquer le changement:

sudo systemctl restart mongod

Votre machine distante devrait maintenant pouvoir se connecter. Cependant, vous pouvez également souhaiter enable authentication pour sécuriser davantage votre base de données.

Conclusion

Vous trouverez des instructions plus détaillées sur l’installation et la configuration de MongoDB à l’adresse these Articles de la communauté DigitalOcean. Assurez-vous de https://www.digitalocean.com/community/tutorials/how-to-create-and-use-mongodb-backups-on-ubuntu-14-04 pour sauvegarder vos données] et découvrez comment https: //docs.mongodb.com/manual/core/security-transport-encryption/[encrypt data en transit].