Wie installiere ich MongoDB auf Debian 8?

Einführung

http://mongodb.com [MongoDB] ist eine kostenlose und quelloffene NoSQL-Dokumentendatenbank, die häufig in modernen Webanwendungen verwendet wird. Dieses Tutorial hilft Ihnen, MongoDB auf Ihrem Server für die Verwendung in einer Produktionsanwendungsumgebung einzurichten. Sie installieren MongoDB und konfigurieren Firewall-Regeln, um den Zugriff auf MongoDB einzuschränken.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Debian 8-Server mit einem sudo-Nicht-Root-Benutzer. Sie können einen Benutzer mit diesen Berechtigungen in unserem Handbuch Initial Server Setup with Debian 8 einrichten.

Schritt 1 - MongoDB installieren

MongoDB ist bereits in Debians Paket-Repositorys enthalten, aber das offizielle MongoDB-Repository bietet die aktuellste Version und ist die empfohlene Methode zur Installation der Software. In diesem Schritt fügen wir dieses offizielle Repository unserem Server hinzu.

Debian stellt die Authentizität von Software-Paketen sicher, indem es überprüft, ob sie mit GPG-Schlüsseln signiert sind. Daher müssen sie zunächst für das offizielle MongoDB-Repository importiert werden.

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

Nach dem erfolgreichen Import des Schlüssels wird Folgendes angezeigt:

Ausgabe

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

Als nächstes müssen wir die MongoDB-Repository-Details hinzufügen, damit + apt + weiß, wo die Pakete heruntergeladen werden sollen.

Geben Sie den folgenden Befehl ein, um eine Listendatei für MongoDB zu erstellen.

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

Aktualisieren Sie nach dem Hinzufügen der Repository-Details die Paketliste:

sudo apt-get update

Installieren Sie nun das MongoDB-Paket selbst mit dem folgenden Befehl:

sudo apt-get install -y mongodb-org

Dadurch wird die neueste stabile Version von MongoDB zusammen mit einigen hilfreichen Verwaltungstools für den MongoDB-Server installiert.

Starten Sie nach der Installation von MongoDB den Dienst und stellen Sie sicher, dass er beim Neustart des Servers gestartet wird:

sudo systemctl enable mongod.service
sudo systemctl start mongod

Verwenden Sie dann "+ systemctl +", um zu überprüfen, ob der Dienst ordnungsgemäß gestartet wurde:

sudo systemctl status mongod

Sie sollten die folgende Ausgabe sehen, die darauf hinweist, dass der Dienst ausgeführt wird:

Ausgabe

●  - 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.

Nachdem MongoDB erfolgreich installiert wurde, sichern wir es mit der Software-Firewall.

Schritt 2 - MongoDB mit einer Firewall sichern

In den meisten Fällen sollte auf MongoDB nur von bestimmten vertrauenswürdigen Speicherorten aus zugegriffen werden, z. B. von einem anderen Server, auf dem sich eine Anwendung befindet. Um diese Aufgabe auszuführen, können Sie den Zugriff auf den Standardport von MongoDB zulassen und gleichzeitig die IP-Adresse eines anderen Servers angeben, der explizit eine Verbindung herstellen darf. Wir verwenden die iptables-Firewall, um diese Regel einzurichten, sowie einige andere Regeln, um das System zu schützen.

Bevor wir Regeln schreiben, installieren Sie das Paket + iptables-persistent +, damit Sie die von Ihnen erstellten Regeln speichern können. Auf diese Weise werden die Regeln bei jedem Neustart des Servers angewendet. Führen Sie diesen Befehl aus:

sudo apt-get install iptables-persistent

Entfernen Sie als Nächstes alle vorhandenen Regeln, nur für den Fall:

sudo iptables -F

Fügen Sie dann eine Regel hinzu, mit der die bestehenden Verbindungen fortgesetzt werden können. So wird unsere bestehende SSH-Verbindung nicht unterbrochen:

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

Stellen Sie als Nächstes sicher, dass der SSH-Zugriff zulässig ist:

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

Wenn Sie von einem Remote-Server aus eine Verbindung zu MongoDB herstellen möchten, fügen Sie diese Regeln hinzu, die den Zugriff auf den MongoDB-Standardport von Ihrem Anwendungsserver aus ermöglichen:

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

Fügen Sie als Nächstes die folgenden Regeln hinzu, die Datenverkehr auf dem lokalen Loopback-Gerät zulassen:

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

Ändern Sie schließlich die Firewall-Richtlinie, um den gesamten anderen Datenverkehr zu löschen:

sudo iptables -P INPUT DROP

Stellen Sie sicher, dass die Regeln korrekt aussehen:

sudo iptables -S

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

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

Speichern Sie abschließend die Regeln:

netfilter-persistent save

Weitere Informationen zu diesen Firewall-Regeln finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-iptables-on-ubuntu-14-04 [ So richten Sie eine Firewall mit Iptables unter Ubuntu 14.04 ein].

Schritt 3 - Aktivieren des Zugriffs auf externe Server (optional)

Aktuelle Versionen von MongoDB akzeptieren standardmäßig keine externen Verbindungen. Wenn Sie mit der Firewall den Zugriff auf bestimmte IP-Adressen eingeschränkt haben, können Sie die Konfiguration von MongoDB so ändern, dass Remoteverbindungen akzeptiert werden.

Bearbeiten Sie die MongoDB-Konfigurationsdatei:

sudo nano /etc/mongod.conf

Suchen Sie diesen Abschnitt:

mongod.conf

# network interfaces
net:
 port: 27017
 bindIp:

Mongo überwacht die lokale Loopback-Adresse und akzeptiert daher nur lokale Verbindungen. Ändern Sie den Wert "+ bindIp +" so, dass er die IP-Adresse Ihres MongoDB-Servers enthält:

mongod.conf

# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1

Speichern Sie die Datei und beenden Sie den Editor.

Starten Sie dann MongoDB neu, um die Änderung zu übernehmen:

sudo systemctl restart mongod

Ihr Remote-Computer sollte nun eine Verbindung herstellen können. Möglicherweise möchten Sie jedoch auch enable authentication, um Ihre Datenbank noch weiter zu sichern.

Fazit

Ausführlichere Anweisungen zur Installation und Konfiguration von MongoDB finden Sie unter diese DigitalOcean-Community-Artikel. Stellen Sie sicher, dass Sie back up your data und erfahren Sie, wie Sie https: //docs.mongodb.com/manual/core/security-transport-encryption/ Verschlüsselung von Daten während der Übertragung].