MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was bewirkt die Konfigurationsoption --bindip in mongodb?

Auf bindIp

127.0.0.1 Konventionsgemäß ist dies die IP-Adresse von localhost und ist an die Loopback-Schnittstelle gebunden, auf die nur von derselben Maschine aus zugegriffen werden kann.

Die Verwendung dieser Adresse als Standard ist die bewährte Methode, da es dadurch unmöglich ist, einen Dienst versehentlich der Öffentlichkeit zugänglich zu machen. Sie müssen sich bewusst dafür entscheiden, die Bindungs-IP zu ändern, um Ihren Dienst öffentlich verfügbar zu machen. Was Sie nur tun sollten, nachdem Sie sich gewiss gemacht haben dass Sie angemessene Sicherheitsmaßnahmen ergriffen haben.

Typischerweise hat eine Maschine die Loopback-Schnittstelle und eine oder mehrere "echte" Netzwerkschnittstellen.

Angenommen, Sie haben eine Netzwerkschnittstelle, die "intern" ist (nur für Ihre Anwendungsserver zugänglich, da Sie sie in dasselbe Netzwerk einfügen), und Sie haben eine Netzwerkschnittstelle, die "extern" ist (zu Wartungszwecken über das öffentliche Internet erreichbar). Wenn Sie nun Ihre MongoDB-Instanz an alle Schnittstellen binden würden (Sie würden die IP-Adresse 0.0. 0,0 um das zu tun), wäre Ihre MongoDB-Instanz aus dem öffentlichen Internet zugänglich – kaum eine erwünschte Situation. Angreifer könnten versuchen, Ihre Passwörter per Brute-Force zu erzwingen, und erhalten möglicherweise Zugriff auf Ihre MongoDB-Instanz. Verhindern Sie besser jeden Zugriff aus dem öffentlichen Internet.

Was Sie lieber haben möchten, dass Ihre MongoDB-Instanz für Ihre Anwendungsserver und von dem Computer aus zugänglich ist, auf dem sie ausgeführt wird. Sie würden MongoDB also sowohl an die IP der Loopback-Schnittstelle (127.0.0.1 ) und die IP des privaten Netzwerks, die im Allgemeinen eine von sein würde

  • der Bereich von 10.0.0.0 an 10.255.255.255
  • der Bereich von 172.16.0.0 an 172.31.255.255
  • der Bereich von 192.168.0.0 an 192.168.255.255

Nehmen wir unser Beispiel und sagen, dass sich sowohl die Anwendungsserver als auch die MongoDB-Instanz in einem privaten Netzwerk im Bereich 192.168.X.X befinden und Sie haben der MongoDB-Instanz die IP-Adresse 192.168.0.1 gegeben . Sie möchten also, dass Ihre MongoDB-Instanz über 192.168.0.1 zugänglich ist damit die Anwendungsserver mit ihm kommunizieren können und über 127.0.0.1 um die Verwaltungstools von der Maschine, auf der MongoDB läuft, mühelos zu verwenden.

Mit der YAML-Konfigurationssyntax würden Sie also mehrere IPs übergeben

HINWEIS Fügen Sie bei mehreren IPs kein Leerzeichen zwischen Kommas hinzu

# WARNING!!! WARNING!!! WARNING!!!
# DO NOT DO THIS UNLESS YOU HAVE CLIENT AUTHENTICATION ENABLED
# (or you really, really, really know what you are doing)
net:
  bindIp: 127.0.0.1,192.168.0.1

Zu den Warnungen

Kurz gesagt, das ist MongoDBs Art zu sagen:

Es gibt eine Art implizites „Es sei denn, Sie wirklich weiß was du tust!", denn iirc, die Warnung verschwindet, wenn du entweder die Client-Authentifizierung oder aktivierst ändern Sie die bindIp.