MongoDB bietet eine Reihe von Konstrukten zur Verbesserung der Sicherheit Ihrer Daten. Die Sicherheit Ihrer Daten in MongoDB ist von größter Bedeutung – daher ist es wichtig, diese Konstrukte zu nutzen, um Ihre Oberfläche zu reduzieren. Hier sind 10 Tipps, mit denen Sie die Sicherheit Ihrer MongoDB-Server vor Ort und in der Cloud verbessern können.
-
Authentifizierung aktivieren
Auch wenn Sie Ihre MongoDB-Server in einem vertrauenswürdigen Netzwerk bereitgestellt haben, ist es eine gute Sicherheitspraxis, die Authentifizierung zu aktivieren. Es bietet Ihnen „Tiefenverteidigung“, wenn Ihr Netzwerk kompromittiert ist. Bearbeiten Sie Ihre MongoDB-Konfigurationsdatei, um auth zu aktivieren:
auth = true
-
Setzen Sie Ihre Produktionsdatenbank nicht dem Internet aus
Das Einschränken des physischen Zugriffs auf Ihre Datenbank ist ein wichtiger Sicherheitsaspekt. Wenn dies nicht erforderlich ist, stellen Sie Ihre Produktionsdatenbank nicht dem Internet zur Verfügung. Im Falle einer Kompromittierung, wenn ein Angreifer keine physische Verbindung zu Ihrem MongoDB-Server herstellen kann, sind Ihre Daten umso sicherer. Wenn Sie AWS verwenden, können Sie Ihre Datenbanken in einem Subnetz einer Virtual Private Cloud (VPC) platzieren. Weitere Informationen finden Sie im Blog-Beitrag Deploying MongoDB in a VPC.
-
Firewalls verwenden
Verwenden Sie Firewalls, um einzuschränken, welche anderen Einheiten sich mit Ihrem MongoDB-Server verbinden dürfen. Es hat sich bewährt, nur Ihren Anwendungsservern Zugriff auf die Datenbank zu gewähren. Wenn Sie auf AWS gehostet werden, verwenden Sie „Sicherheitsgruppen“, um den Zugriff einzuschränken. Wenn Sie bei einem Anbieter gehostet werden, der keine Firewall-Konstrukte unterstützt, können Sie dies mithilfe von „iptables“ einfach selbst konfigurieren. Informationen zur Konfiguration von iptables für Ihr Szenario finden Sie in der MongoDB-Dokumentation.
-
Schlüsseldateien verwenden, um den Replikatsatz einzurichten
Geben Sie eine gemeinsam genutzte Schlüsseldatei an, um die Kommunikation zwischen Ihren MongoDB-Instances in einem Replikatsatz zu ermöglichen. Um dies zu aktivieren, fügen Sie den keyfile-Parameter wie unten beschrieben zur Konfigurationsdatei hinzu. Der Inhalt der Datei muss auf allen Rechnern gleich sein:
keyFile = /srv/mongodb/keyfile
-
HTTP-Statusschnittstelle deaktivieren
MongoDB stellt standardmäßig eine HTTP-Schnittstelle bereit, die auf Port 28017 ausgeführt wird und die Statusseite „Home“ bereitstellt. Diese Schnittstelle wird für den Produktionseinsatz nicht empfohlen und am besten deaktiviert. Verwenden Sie die Konfigurationseinstellung „nohttpinterface“, um die http-Schnittstelle zu deaktivieren:
nohttpinterface = true
-
Deaktivieren Sie die REST-Schnittstelle
Die MongoDB-REST-Schnittstelle wird für die Produktion nicht empfohlen. Es unterstützt keine Authentifizierung und ist standardmäßig deaktiviert. Wenn Sie es mit der Konfigurationsoption „Rest“ aktiviert haben, sollten Sie es für Produktionssysteme deaktivieren.
rest = false
-
bind_ip konfigurieren
Wenn Ihr System über mehrere Netzwerkschnittstellen verfügt, können Sie die Option „bind_ip“ verwenden, um Ihren MongoDB-Server darauf zu beschränken, nur auf den relevanten Schnittstellen zu lauschen. Standardmäßig bindet MongoDB an alle Schnittstellen:
bind_ip = 10.10.0.25,10.10.0.26
-
SSL aktivieren
Wenn Sie kein SSL verwenden, werden Ihre Daten unverschlüsselt zwischen Ihrem Mongo-Client und dem Mongo-Server übertragen und sind anfällig für Abhören, Manipulation und „Man-in-the-Middle“-Angriffe. Dies ist besonders wichtig, wenn Sie sich über ungesicherte Netzwerke wie das Internet mit Ihrem MongoDB-Server verbinden.
-
Rollenbasierte Autorisierung
MongoDB unterstützt die rollenbasierte Authentifizierung, um Ihnen eine detaillierte Kontrolle über die Aktionen zu geben, die von jedem Benutzer ausgeführt werden können. Verwenden Sie rollenbasierte Konstrukte, um den Zugriff einzuschränken, anstatt alle Ihre Benutzer zu Administratoren zu machen. Weitere Einzelheiten finden Sie in der Rollendokumentation.
-
Unternehmen MongoDB und Kerberos
Enterprise MongoDB lässt sich zur Authentifizierung in Kerberos integrieren. Weitere Einzelheiten finden Sie in der MongoDB-Dokumentation. Benutzername/Passwort-Systeme sind von Natur aus unsicher – verwenden Sie nach Möglichkeit eine kantenbasierte Authentifizierung.
Bei ScaleGrid streben wir danach, Best-Practice-Sicherheitskonfigurationen standardmäßig für alle unsere Bereitstellungen zu unterstützen. Wir ermöglichen Ihnen die Verwendung von SSL und setzen Ihre Datenbank auch nicht dem Internet aus. Wenn Sie Fragen haben, senden Sie uns bitte eine E-Mail an [email protected].