it-swarm.com.de

MongoDB unter Linux dazu bringen, Remoteverbindungen abzuhören

Ich habe MongoDB erfolgreich unter Windows (auf einem lokalen Computer) als Dienst installiert, möchte MongoDb jetzt jedoch auf einen separaten Server verschieben. Also extrahierte ich den Tarball auf einen virtuellen Server im Netzwerk (unter Linux).

Als ich mit PuTTY von meinem lokalen Computer aus eine Verbindung zum Server ("testmongoserver") herstellte, startete ich den mongod-Server und es wurde mir mitgeteilt, dass er den standardmäßigen 28017-Port abhört. Die Mongo-Konsole funktioniert ebenfalls und ich konnte eine neue Datenbank (testdb) erstellen und Benutzer hinzufügen.

Ich konnte jedoch nicht remote auf den Server zugreifen. Wenn ich testmongoserver:28017 Eingebe, wird die HTTP-Konsole nicht wie auf meinem lokalen Computer localhost:28017 Geöffnet. Ich kann auch keine Verbindung mit offiziellen Treibern herstellen und eine Verbindungszeichenfolge bereitstellen.

Was sind die notwendigen Schritte, um MongoDB unter Linux zu installieren, damit ich von einem entfernten Rechner mit einem Verbindungsstring darauf zugreifen und seine HTTP-Konsole über testmongoserver:28017 Verwenden kann?

Vielen Dank!

55
user315648
  1. Führen Sie netstat -a auf dem Mongo-Server aus und überprüfen Sie einen Port.
  2. Überprüfen Sie die DNS-Einstellungen und stellen Sie sicher, dass der Linux-Server externe Verbindungen zulässt.
  3. Stellen Sie sicher, dass Mongodb externe/Remote-Verbindungen akzeptieren kann.

Der Standardport für Mongo ist 27017. 28017 - Port für Webstats.

Siehe http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports

19

1. IP-Option binden

Bind IP ist eine MongoDB-Option, mit der Verbindungen auf bestimmte IP-Adressen beschränkt werden.

Schauen Sie sich Ihre Mongod-Konfigurationsdatei an. Die meiste Zeit ist bind_ip aus offensichtlichen Sicherheitsgründen auf 127.0.0.1 Gesetzt. Sie können:

  1. Fügen Sie die gewünschte IP-Adresse hinzu, indem Sie eine Liste von durch Kommas getrennten Werten verknüpfen, um MongoDB an mehrere IP-Adressen zu binden.
  2. Entfernen oder kommentieren Sie (mit dem Zeichen #) Die Zeile bind_ip. Beachten Sie jedoch, dass alle Remoteverbindungen Ihren MongoDB-Server verbinden können!

Weitere Informationen zur Konfigurationsoption bind_ip: https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

Bind IP kann auch als Befehlsargument festgelegt werden: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip

2. Firewall

Stellen Sie sicher, dass Sie nicht hinter einer Firewall ausgeführt werden

79
Yves M.

Stellen Sie sicher, in Ihrem /etc/mongodb.conf Datei haben Sie die folgende Zeile,

bind_ip = 0.0.0.0

http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html

33
victorkurauchi

Hatte gerade dieses Problem und das hat es behoben:

Bearbeiten /etc/mongod.conf mit Sudo nano /etc/mongod.conf stellen Sie sicher, dass der Abschnitt net wie folgt aussieht (localhost-Bindung erlaubt standardmäßig keinen Remotezugriff):

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Stellen Sie sicher, dass Sie mongod neu starten, wenn Sie oben mit unten fertig sind (vorausgesetzt, systemd ubuntu 16.04+ usw.):

Sudo service mongod restart

Aus Sicht der Sicherheit ist es offensichtlich, dass Sie, wenn Sie Mongo für Ihr Netzwerk/die Welt öffnen wollen, sich der Auswirkungen dessen bewusst sind (falls vorhanden).

8
John Culviner

Ein weiteres Problem kann sein, dass der Mongodb-Port nicht aktiviert ist. Überprüfen Sie von einem anderen Host aus die auf Ihrem Server aktivierten Ports. Dafür können Sie den Befehl verwenden:

Sudo nmap -P0 your_server_ip

Sie können eine Antwort wie folgt erhalten:

Host is up (0.052s latency).
Not shown: 997 filtered ports
PORT    STATE  SERVICE
22/tcp  open   ssh
80/tcp  open   http
443/tcp closed https

Wenn Sie einen virtuellen Server in der Cloud als AWS verwenden, müssen Sie eine neue Regel hinzufügen, um einen Mongodb-Port hinzuzufügen (standardmäßig 27017).

Wichtig : Beachten Sie, dass mit dieser Konfiguration jeder Zugriff auf Ihre Datenbank haben kann

enter image description here

3
J.C. Gras