sql >> Databasteknik >  >> NoSQL >> MongoDB

Tips för att hantera MongoDB på distans

Att arbeta på distans på grund av Covid-19-pandemin innebär en ökning av vikten av isolerade infrastrukturer; närmare bestämt sådana som endast kan nås via ett internt nätverk, men på ett sätt så att auktoriserade personer från omvärlden kan komma åt systemet när som helst eller var som helst.

I den här artikeln kommer vi att dela några grundläggande steg som du måste implementera med MongoDB för att säkerställa säker åtkomst när du administrerar databasen.

Säker MongoDB

Innan du får åtkomst till MongoDB-databasen på distans måste du utföra en "härdning" av miljön. Ställ in följande på infrastruktursidan:

Aktivera MongoDB-autentisering 

Denna funktion är obligatorisk för att aktivera, oavsett om vi vill komma åt MongoDB-databasen från det interna nätverket eller från ett externt nätverk. Innan du aktiverar auktoriseringen måste du först skapa en administratörsanvändare i MongoDB. Du kan köra nedanstående kommando för att skapa en administratörsanvändare i din mongoDB-server:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

Kommandot ovan kommer att skapa en ny användare som heter admin med root-privilegier. Du kan aktivera MongoDB Auth-funktionen genom att öppna filen /etc/mongod.conf och sedan lägga till följande rad:

  security:

   authorization: 'enabled'

Glöm inte att starta om din mongoDB-tjänst för att tillämpa ändringarna. Kommandot ovan begränsar åtkomsten till databasen, endast den som har åtkomstuppgifter som är berättigad att logga in.

Konfigurera roller och privilegier

För att förhindra missbruk av åtkomst till MongoDB kan vi implementera rollbaserad åtkomst genom att skapa flera roller och dess privilegier.

Se till att du har en lista över användare som behöver komma åt databasen och förstå varje individs behov och ansvar. Skapa roller och tilldela privilegier till dessa skapade roller. Efter det kan du tilldela din användare en roll baserat på ansvarsområden.

Det här tillvägagångssättet hjälper oss att minimera maktmissbruk och identifiera rollen och användaren omedelbart när något oönskat hände.

Konfigurera en SSL/TLS-anslutning

MongoDB stöder SSL/TLS-anslutningar för att säkra data under överföring. För att implementera detta måste du generera din egen SSL-nyckel, du kan generera den med openssl. För att aktivera SSL/TLS-stöd kan du redigera filen /etc/mongod.conf och lägga till följande parameter:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

När du har lagt till dessa parametrar måste du starta om MongoDB-tjänsten. Om du har MongoDB replicaset-arkitektur måste du tillämpa dem på varje nod. SSL behövs också när klienten kommer åt MongoDB, oavsett om det är från applikationssidan eller från klienten direkt.

För produktionsanvändning bör du använda giltiga certifikat som genererats och signerats av en enda certifikatutfärdare. Du eller din organisation kan generera och underhålla certifikat som en oberoende certifikatutfärdare, eller använda certifikat som genererats av tredjeparts TLS/SSL-leverantörer. Förhindra användning av ett självsignerat certifikat, såvida det inte är ett pålitligt nätverk.

Begränsa databasporten

Du måste se till att endast MongoDB-porten är öppen på brandväggsservern eller brandväggsenheten, se till att inga andra portar är öppna.

Säkra MongoDB-anslutningen

Fjärranslutning via offentligt internet innebär risk för att data överförs från lokala användare till databasservern och vice versa. Angripare kan avbryta sammankopplingen, som i det här fallet är känd som MITM-attack (Min-in-The-Middle). Att säkra anslutningen är mycket nödvändigt när vi hanterar / administrerar databasen på distans, några saker vi kan tillämpa för att skydda vår åtkomst till databasen är följande:

Privat nätverksåtkomst

VPN (Virtual Private Network) är en av de grundläggande sakerna när vi vill komma åt vår infrastruktur utifrån på ett säkert sätt. VPN är ett privat nätverk som använder offentliga nätverk för att komma åt fjärrplatserna. VPN-installation kräver hårdvara som måste förberedas på den privata nätverkssidan, förutom det behöver klienten även VPN-programvara som stöder åtkomst till det privata nätverket.

Förutom att använda VPN är ett annat sätt att komma åt MongoDB-servern genom portvidarebefordran av databasport via SSH, eller bättre känd som SSH Tunneling.

Använd SSL/TLS från klienten till databasservern

Förutom att implementera säker åtkomst med VPN eller SSH Tunneling, kan vi använda SSL / TLS som tidigare konfigurerades på MongoDB-sidan. Du behöver bara SSL-nyckeln som du har och försök ansluta till databasen med SSL-nyckeln.

Aktivera databasövervakning

Det är viktigt att göra det möjligt för övervakningstjänsten att förstå databasernas aktuella tillstånd. Övervakningsservern kan installeras under den offentliga domänen som har SSL/TLS aktiverat, så automatisk åtkomst till webbläsaren kan använda HTTPs.

Slutsats

Det är verkligen roligt att arbeta hemifrån, du kan interagera med dina barn och samtidigt övervaka din databas. Du måste följa ovanstående riktlinjer för att se till att du inte blir attackerad eller får data stulen när du kommer åt din databas på distans.


  1. MongoError:Kan inte extrahera geonycklar från objekt med Type :Point

  2. Mongo C# JSON-läsaren förväntade sig ett värde men hittade 'replSetGetStatus'

  3. Vårdata mongodb sök efter ISO-datum

  4. 2 sätt att visa ett index i MongoDB