MongoDB biedt een aantal constructies om de beveiliging van uw gegevens te verbeteren. De beveiliging van uw gegevens in MongoDB is van het grootste belang - dus het is belangrijk om deze constructies te gebruiken om uw oppervlakte te verkleinen. Hier zijn 10 tips die u kunt gebruiken om de beveiliging van uw MongoDB-servers op locatie en in de cloud te verbeteren.
-
Schakel authenticatie in
Zelfs als u uw MongoDB-servers in een vertrouwd netwerk hebt geïmplementeerd, is het een goede beveiligingspraktijk om authenticatie in te schakelen. Het biedt u "diepgaande verdediging" als uw netwerk is aangetast. Bewerk uw MongoDB-configuratiebestand om auth in te schakelen:
auth = true
-
Stel uw productiedatabase niet bloot aan internet
Het beperken van fysieke toegang tot uw database is een belangrijk aspect van beveiliging. Als het niet nodig is, stel uw productiedatabase dan niet bloot aan internet. In het geval van een compromis, als een aanvaller fysiek geen verbinding kan maken met uw MongoDB-server, zijn uw gegevens veel veiliger. Als u AWS gebruikt, kunt u uw databases in een virtual private cloud (VPC) subnet plaatsen. Lees de blogpost MongoDB implementeren in een VPC voor meer informatie.
-
Gebruik firewalls
Gebruik firewalls om te beperken welke andere entiteiten verbinding mogen maken met uw MongoDB-server. U kunt het beste alleen uw toepassingsservers toegang geven tot de database. Als u op AWS wordt gehost, gebruikt u 'Beveiligingsgroepen' om de toegang te beperken. Als je wordt gehost op een provider die geen firewallconstructies ondersteunt, kun je deze eenvoudig zelf configureren met 'iptables'. Raadpleeg de MongoDB-documentatie om iptables voor uw scenario te configureren.
-
Gebruik sleutelbestanden om de replicaset in te stellen
Geef een gedeeld sleutelbestand op om communicatie tussen uw MongoDB-instanties in een replicaset mogelijk te maken. Om dit in te schakelen, voegt u de keyfile-parameter toe aan het configuratiebestand zoals hieronder beschreven. De inhoud van het bestand moet op alle machines hetzelfde zijn:
keyFile = /srv/mongodb/keyfile
-
HTTP-statusinterface uitschakelen
MongoDB biedt standaard een http-interface op poort 28017 die de statuspagina 'home' biedt. Deze interface wordt niet aanbevolen voor productiegebruik en kan het beste worden uitgeschakeld. Gebruik de configuratie-instelling "nohttpinterface" om de http-interface uit te schakelen:
nohttpinterface = true
-
De REST-interface uitschakelen
De MongoDB REST-interface wordt niet aanbevolen voor productie. Het ondersteunt geen authenticatie en is standaard uitgeschakeld. Als je het hebt ingeschakeld met behulp van de "rest" configuratie-optie, moet je het uitschakelen voor productiesystemen.
rest = false
-
Configureer bind_ip
Als uw systeem meerdere netwerkinterfaces heeft, kunt u de optie "bind_ip" gebruiken om uw MongoDB-server te beperken om alleen naar de relevante interfaces te luisteren. Standaard bindt MongoDB aan alle interfaces:
bind_ip = 10.10.0.25,10.10.0.26
-
SSL inschakelen
Als u geen SSL gebruikt, reizen uw gegevens onversleuteld tussen uw Mongo-client en Mongo-server en zijn ze vatbaar voor afluisteren, knoeien en 'man in the middle'-aanvallen. Dit is vooral belangrijk als u verbinding maakt met uw MongoDB-server via onbeveiligde netwerken zoals internet.
-
Rolgebaseerde autorisatie
MongoDB ondersteunt op rollen gebaseerde authenticatie om u gedetailleerde controle te geven over de acties die door elke gebruiker kunnen worden uitgevoerd. Gebruik op rollen gebaseerde constructies om de toegang te beperken in plaats van al uw gebruikers beheerders te maken. Raadpleeg de rollendocumentatie voor meer details.
-
Enterprise MongoDB &Kerberos
Enterprise MongoDB integreert met Kerberos voor authenticatie. Raadpleeg de MongoDB-documentatie voor meer informatie. Gebruikersnaam-/wachtwoordsystemen zijn inherent onveilig - gebruik indien mogelijk op kerb gebaseerde authenticatie.
Bij ScaleGrid streven we ernaar standaard best-practice-beveiligingsconfiguraties te ondersteunen voor al onze implementaties. We stellen u in staat om SSL te gebruiken en uw database ook niet bloot te stellen aan internet. Als je vragen hebt, stuur dan een e-mail naar [email protected].