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:
-
Un serveur Debian 8 avec un utilisateur sudo non root. Vous pouvez configurer un utilisateur avec ces privilèges dans notre guide Initial Initial Server avec Debian 8.
É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].