Ich möchte, dass meine Website MongoDB als Datenspeicher verwendet. Ich habe MongoDB in meiner Entwicklungsumgebung ohne Sorgen verwendet, aber ich mache mir Sorgen um die Sicherheit mit einem öffentlichen Server.
Mein Server ist ein VPS mit Arch Linux. Die Webanwendung wird auch darauf ausgeführt, sodass nur Verbindungen von localhost akzeptiert werden müssen. Und keine anderen Benutzer (per SSH oder auf andere Weise) haben direkten Zugriff auf meinen Server.
Was soll ich tun, um meine Instanz von MongoDB zu sichern?
security
arch-linux
mongodb
Earlz
quelle
quelle
Hier ist eine gute Checkliste
Authentifizierung aktivieren - Auch wenn Sie Ihre Mongodb-Server in einem vertrauenswürdigen Netzwerk bereitgestellt haben, empfiehlt es sich, die Authentifizierung zu aktivieren. Es bietet Ihnen "Tiefenverteidigung", wenn Ihr Netzwerk gefährdet ist. Bearbeiten Sie Ihre Mongod-Konfigurationsdatei, um die Authentifizierung zu aktivieren
Setzen Sie Ihre Produktionsdatenbank nicht dem Internet aus. Die Einschränkung des physischen Zugriffs auf Ihre Datenbank ist ein wichtiger Aspekt der Sicherheit. Wenn dies nicht erforderlich ist, setzen Sie Ihre Produktionsdatenbank nicht dem Internet aus. Im Falle eines Kompromisses, wenn ein Angreifer keine physische Verbindung zu Ihrem MongoDB-Server herstellen kann, sind Ihre Daten umso sicherer. Wenn Sie mit AWS arbeiten, können Sie Ihre Datenbanken in einem privaten VPC-Subnetz platzieren. Weitere Informationen finden Sie im Blogbeitrag Bereitstellen von MongoDB in einer VPC.
Firewalls verwenden - Verwenden Sie Firewalls, um einzuschränken, welche anderen Entitäten eine Verbindung zu Ihrem Mongodb-Server herstellen dürfen. Es wird empfohlen, Ihren Anwendungsservern nur Zugriff auf die Datenbank zu gewähren. Wenn Sie auf AWS gehostet werden, verwenden Sie "Sicherheitsgruppen", um den Zugriff einzuschränken. Wenn Sie auf einem Anbieter gehostet werden, der keine Firewall-Konstrukte unterstützt, können Sie diese einfach mithilfe von 'iptables' selbst konfigurieren. Informationen zum Konfigurieren von iptables für Ihr Szenario finden Sie in der Mongodb-Dokumentation.
Verwenden von Schlüsseldateien zum Einrichten des Replikatsatzes - Geben Sie eine gemeinsam genutzte Schlüsseldatei an, um die Kommunikation zwischen Ihren Mongodb-Instanzen in einem Replikatsatz zu ermöglichen. Um dies zu aktivieren, fügen Sie den Schlüsseldateiparameter wie folgt zur Konfigurationsdatei hinzu. Der Inhalt der Datei muss auf allen Computern gleich sein.
HTTP-Statusschnittstelle deaktivieren Mongodb stellt standardmäßig eine http-Schnittstelle bereit, die standardmäßig auf Port 28017 ausgeführt wird und die Statusseite "Home" enthält. Diese Schnittstelle wird für die Verwendung in der Produktion nicht empfohlen und ist am besten deaktiviert. Verwenden Sie die Konfigurationseinstellung "nohttpinterface", um die http-Schnittstelle zu deaktivieren.
Deaktivieren der REST-Schnittstelle Die monogdb-REST-Schnittstelle wird für die Produktion nicht empfohlen. Es wird keine Authentifizierung unterstützt. Es ist standardmäßig deaktiviert. Wenn Sie es mit der Konfigurationsoption "Rest" aktiviert haben, sollten Sie es für Produktionssysteme deaktivieren.
Konfigurieren von Bind_ip Wenn Ihr System über mehrere Netzwerkschnittstellen verfügt, können Sie mit der Option "bind_ip" festlegen, dass Ihr Mongodb-Server nur die relevanten Schnittstellen überwacht. Standardmäßig wird mongodb an alle Schnittstellen gebunden
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ör-, Manipulations- und "Man in the Middle" -Angriffe. Dies ist besonders wichtig, wenn Sie über unsichere Netzwerke wie das Internet eine Verbindung zu Ihrem Mongodb-Server herstellen.
Rollenbasierte Autorisierung - MongoDB unterstützt die rollenbasierte Authentifizierung, um Ihnen eine genaue 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 Benutzer zu Administratoren zu machen. Weitere Informationen finden Sie in der Rollendokumentation.
Enterprise Mongodb & Kerberos Enterprise Mongodb wird zur Authentifizierung in Kerberos integriert. Weitere Informationen finden Sie in der Mongodb-Dokumentation. Benutzername / Passwort-Systeme sind von Natur aus unsicher - verwenden Sie nach Möglichkeit eine auf dem Bordstein basierende Authentifizierung.
https://scalegrid.io/blog/10-tips-to-improve-your-mongodb-security/
Haftungsausschluss: Ich bin der Gründer von scalegrid.io
quelle
Sicherheit und Authentifizierung MongoDB-Dokumentation .
quelle
Dieselbe Abfrage wurde hier ausführlich besprochen ~ /security/7610/how-to-secure-a-mongodb-instance/7655#7655
Einige sehr erste Dinge, an die man sich erinnern sollte, sind:
Tatsächlich gelten sie für alle DataStorage-Dienste
PS: sehr begrenzte Mongodb-Erfahrung
quelle
Aus Sicherheitsgründen ist es besser, einen externen Zugriff auf den MongoDB-Knoten zu verhindern. Sie können die App und MongoDB auf verschiedenen Knoten ausführen. Auf den App-Knoten kann von außen zugegriffen werden, während der MongoDB-Knoten nur den MongoDB-Port für den App-Knoten öffnet.
Befolgen Sie auch die offizielle Sicherheitscheckliste von MongoDB, um MongoDB zu schützen.
FireCamp automatisiert es für Sie in der Cloud, z. B. AWS. FireCamp erzwingt die Sicherheit. 1) Die AppAccessSecurityGroup ist die einzige, die auf MongoDB zugreifen darf. Bitte erstellen Sie Ihren Anwendungsknoten in der AppAccessSecurityGroup und die VPC, auf der der MongoDB-Knoten ausgeführt wird. 2) Ein Bastion-Knoten wird erstellt und ist der einzige, der SSH an die MongoDB-Knoten senden kann. 3) Die MongoDB-Benutzerauthentifizierung und die Zugriffssteuerung zwischen Mitgliedern eines ReplicaSet sind aktiviert.
quelle