sql >> Database teknologi >  >> NoSQL >> MongoDB

Tips til fjernstyring af MongoDB

At arbejde på afstand på grund af Covid-19-pandemien betyder en stigning i vigtigheden af ​​isolerede infrastrukturer; mere specifikt dem, der kun kan tilgås via et internt netværk, men på en måde, så autoriserede personer fra omverdenen kan få adgang til systemet når som helst eller hvor som helst.

I denne artikel vil vi dele nogle grundlæggende trin, som du skal implementere med MongoDB for at sikre sikker adgang, mens du administrerer databasen.

Sikring af MongoDB

Før du fjernadgang til MongoDB-databasen, skal du udføre en "hærdning" af miljøet. Indstil følgende på infrastruktursiden:

Aktiver MongoDB-godkendelse 

Denne funktion er obligatorisk at aktivere, uanset om vi ønsker at få adgang til MongoDB-databasen fra det interne netværk eller fra et eksternt netværk. Før du aktiverer godkendelsen, skal du først oprette en admin-bruger i MongoDB. Du kan køre nedenstående kommando for at oprette en admin-bruger i din mongoDB-server:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

Ovenstående kommando vil oprette en ny bruger kaldet admin med root-rettigheder. Du kan aktivere MongoDB Auth-funktionen ved at åbne filen /etc/mongod.conf og derefter tilføje følgende linje:

  security:

   authorization: 'enabled'

Glem ikke at genstarte din mongoDB-tjeneste for at anvende ændringerne. Ovenstående kommando vil begrænse adgangen til databasen, kun den, der har adgangsoplysninger, der er berettiget til at logge ind.

Opsætning af roller og privilegier

For at forhindre misbrug af adgang til MongoDB kan vi implementere rollebaseret adgang ved at oprette flere roller og dets privilegier.

Sørg for, at du har en liste over brugere, der skal have adgang til databasen og forstå hver enkelts behov og ansvar. Opret roller og tildel privilegier til disse oprettede roller. Derefter kan du tildele din bruger en rolle baseret på ansvarsområderne.

Denne tilgang hjælper os med at minimere misbrug af autoritet og identificere rollen og brugeren med det samme, når noget uønsket skete.

Konfigurer en SSL/TLS-forbindelse

MongoDB understøtter SSL/TLS-forbindelser til sikring af data under transport. For at implementere dette skal du generere din egen SSL-nøgle, du kan generere den ved hjælp af openssl. For at aktivere SSL/TLS-understøttelse kan du redigere filen /etc/mongod.conf og tilføje følgende parameter:

  net:

      tls:

         mode: requireTLS

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

Når du har tilføjet disse parametre, skal du genstarte MongoDB-tjenesten. Hvis du har MongoDB replicaset-arkitektur, skal du anvende dem på hver node. SSL er også nødvendigt, når klienten får adgang til MongoDB, uanset om det er fra applikationssiden eller fra klienten direkte.

Til produktionsbrug bør du bruge gyldige certifikater genereret og underskrevet af en enkelt certifikatmyndighed. Du eller din organisation kan generere og vedligeholde certifikater som en uafhængig certifikatmyndighed eller bruge certifikater genereret af tredjeparts TLS/SSL-leverandører. Undgå brug af et selvsigneret certifikat, medmindre det er et betroet netværk.

Begræns databaseporten

Du skal sikre dig, at kun MongoDB-porten er åbnet på firewall-serveren eller firewall-enheden, sørg for, at ingen andre porte er åbne.

Sikring af MongoDB-forbindelsen

Fjernforbindelse via offentligt internet udgør en risiko for, at data overføres fra lokale brugere til databaseserveren og omvendt. Angribere kan afbryde sammenkoblingen, som i dette tilfælde er kendt som MITM (Min-in-The-Middle) angreb. Sikring af forbindelse er meget nødvendig, når vi fjernadministrerer databasen, nogle ting, vi kan anvende for at beskytte vores adgang til databasen, er som følger:

Privat netværksadgang

VPN (Virtual Private Network) er en af ​​de grundlæggende ting, når vi vil have sikker adgang til vores infrastruktur udefra. VPN er et privat netværk, der bruger offentlige netværk til at få adgang til fjernsiderne. VPN-opsætning kræver hardware, der skal forberedes på den private netværksside, udover dette har klienten også brug for VPN-software, der understøtter adgang til det private netværk.

Udover at bruge VPN er en anden måde at få adgang til MongoDB-serveren på ved portvideresendelse af databaseport via SSH, eller bedre kendt som SSH Tunneling.

Brug SSL/TLS fra klienten til databaseserveren

Ud over at implementere sikker adgang ved hjælp af VPN eller SSH Tunneling, kan vi bruge SSL / TLS, som tidligere var konfigureret på MongoDB-siden. Du skal bare bruge den SSL-nøgle, du har, og prøv at oprette forbindelse til databasen ved hjælp af SSL-nøglen.

Aktivér databaseovervågning

Det er vigtigt at gøre det muligt for overvågningstjenesten at forstå databasernes aktuelle tilstand. Overvågningsserveren kan installeres under det offentlige domæne, der har SSL/TLS aktiveret, så automatisk adgang til browseren kan bruge HTTPs.

Konklusion

Det er virkelig sjovt at arbejde hjemmefra, du kan interagere med dine børn og samtidig overvåge din database. Du skal følge ovenstående retningslinjer for at sikre, at du ikke bliver angrebet eller får stjålet data, når du fjernadgang til din database.


  1. MongoDB Database Automation Basics Brug af Chef

  2. MongoDB - få dokumenter med max attribut per gruppe i en samling

  3. Sådan fanges redis.serializer.SerializationException

  4. Brug af Redis med Node.js og Socket.IO