web-dev-qa-db-fra.com

mongodb.conf bind_ip = 127.0.0.1 ne fonctionne pas mais 0.0.0.0 fonctionne

Je ne pouvais pas comprendre ce que bind_ip dans mongodb est. Je pourrais établir une connexion à distance entre le bureau et la machine EC2 en ayant bind_ip = 0.0.0.0, mais n'a pas pu le faire fonctionner avec bind_ip = 127.0.0.1.

Veuillez m'expliquer en quoi consiste bind_ip et pourquoi cela fonctionne pour 0.0.0.0 et pas pour 127.0.0.1.

Pour référence à partir de mongodb docs :

bind_ip

Par défaut: toutes les interfaces.

Définissez cette option pour configurer le processus mongod ou mongos pour se lier à et écouter les connexions des applications sur cette adresse. Vous pouvez attacher des instances mongod ou mongos à n'importe quelle interface; cependant, si vous attachez le processus à une interface accessible au public, appliquez des restrictions d'authentification ou de pare-feu appropriées pour protéger l'intégrité de votre base de données.

Vous pouvez concaténer une liste de valeurs séparées par des virgules pour lier mongod à plusieurs adresses IP.

25
GJain

Avant de lier votre serveur à 0.0.0.0, veuillez être clair sur les implications de sécurité de ces changements: Votre serveur sera publiquement exposé à toutes les IP sur Internet. Assurez-vous d'activer l'authentification sur votre serveur!

Vous ne pouvez pas accéder à votre ordinateur lorsque vous le liez à 127.0.0.1 sur EC2. Ce n'est pas un bug, il est motivé par les liaisons d'interface réseau.

127.0.0.1 ne se liera qu'à l'interface de bouclage (vous ne pourrez donc y accéder que localement), tandis que 0.0.0.0 le liera à toutes les interfaces réseau disponibles.

C'est pourquoi vous pouvez accéder à votre mongodb sur EC2 lorsque vous le liez à 0.0.0.0 (car il est désormais disponible sur Internet) et non via 127.0.0.1.

Pour les serveurs locaux (comme un serveur WAMP ou un serveur mongodb local) qui ne vous sembleront pas différents, mais dans ce cas, vous devriez également penser à la liaison à 0.0.0.0 pour les serveurs locaux peut les rendre disponibles sur toutes les interfaces réseau (il peut donc être public pour quelqu'un qui connaît votre IP, s'il n'y a pas de pare-feu!)

Lisez un question similaire sur Server Fault ici.

40
ConcurrentHashMap

Partout où il est écrit que vous devez les lier comme ça

bindIp : 127.0.0.1,192.168.0.50

mais ça ne marche pas.

comment cela fonctionne, dans la version 3.2.0 est

bindIp : [127.0.0.1,192.168.0.50]

essayez donc d'ajouter vos ips à l'intérieur du []

exemple:

# network interfaces
net:
      port: 27017
      bindIp : [127.0.0.1,0.0.0.0]

Cependant 0.0.0.0 s'ouvre. Bien que ce soit correct pour le TEST, pour la production, vous devez connaître les implications de sécurité de ce paramètre!

46
OWADVL

Il devrait être clair pour quiconque recherche cette réponse que lier votre mongoDB à 0.0.0.0 pourrait être votre pire décision.

Veuillez lire ce qui suit article et assurez-vous que chaque fois que vous décidez de rendre tout public avec vos données (et celles de vos clients), vous tenez compte des éléments suivants:

  • Avez-vous des règles de pare-feu supplémentaires pour décider qui ou quoi peut
    accédez à votre service
  • Comprenez que lorsque vous utilisez Amazon EC2, si vous autorisez le trafic "interne", il doit être considéré comme la même chose que de l'ouvrir grand, vous n'êtes pas seul sur Amazon
  • Vos services sont-ils protégés par mot de passe? Et quel genre d'authentification? Les données sont-elles soumises en texte clair ou en utilisant
    Cryptage
  • Utilisez-vous les noms de base de données par défaut ou avez-vous copié un exemple?
12
Sam Hermans