sql >> Database >  >> NoSQL >> MongoDB

Wat doet de --bindip configuratie-optie in mongodb?

Op bindIp

127.0.0.1 volgens afspraak is het IP-adres van localhost en is gebonden aan de loopback-interface, die alleen toegankelijk is vanaf dezelfde machine.

Het standaard gebruiken van dit adres is de beste praktijk, omdat het hierdoor onmogelijk wordt om een ​​service per ongeluk openbaar te maken. U moet de bewuste keuze maken om het bind-IP te wijzigen om uw service openbaar beschikbaar te maken. Wat u alleen moet doen nadat u zeker heeft dat u de juiste beveiligingsmaatregelen heeft genomen.

Gewoonlijk heeft een machine de loopback-interface en een of meer "echte" netwerkinterfaces.

Stel dat u één netwerkinterface heeft die "intern" is (alleen toegankelijk voor uw applicatieservers, aangezien u ze in hetzelfde netwerk plaatst) en dat u één netwerkinterface heeft die "extern" is (bereikbaar via het openbare internet voor onderhoudsdoeleinden). Als u nu uw MongoDB-instantie aan alle interfaces zou binden (u zou het IP-adres 0.0. 0,0 om dat te doen), zou uw MongoDB-instantie toegankelijk zijn vanaf het openbare internet - nauwelijks een gewenste situatie. Aanvallers kunnen proberen uw wachtwoorden bruut te forceren en kunnen uiteindelijk toegang krijgen tot uw MongoDB-instantie. Het is beter om helemaal geen toegang vanaf het openbare internet te voorkomen.

Wat u liever zou willen dat uw MongoDB-instantie toegankelijk is voor uw applicatieservers en vanaf de machine waarop deze draait. Dus je zou MongoDB binden aan zowel het IP-adres van de loopback-interface (127.0.0.1 ) en het IP-adres van het privé-netwerk, dat in het algemeen een van

  • het bereik van 10.0.0.0 naar 10.255.255.255
  • het bereik van 172.16.0.0 naar 172.31.255.255
  • het bereik van 192.168.0.0 naar 192.168.255.255

Laten we ons voorbeeld nemen en zeggen dat zowel de applicatieservers als de MongoDB-instantie zich in een privénetwerk bevinden in het bereik 192.168.X.X en u hebt de MongoDB-instantie het IP-adres 192.168.0.1 . gegeven . U wilt dus dat uw MongoDB-instantie toegankelijk is via 192.168.0.1 zodat de applicatieservers ermee kunnen praten en via 127.0.0.1 om de beheertools van de machine te gebruiken waarop MongoDB moeiteloos draait.

Dus met de YAML-configuratiesyntaxis zou je meerdere IP's doorgeven

OPMERKING voeg geen spatie toe tussen komma's op meerdere IP's

# WARNING!!! WARNING!!! WARNING!!!
# DO NOT DO THIS UNLESS YOU HAVE CLIENT AUTHENTICATION ENABLED
# (or you really, really, really know what you are doing)
net:
  bindIp: 127.0.0.1,192.168.0.1

Over de waarschuwingen

In het kort, dit is MongoDBs manier om te zeggen:

Er is een soort van impliciete "tenzij je echt weet wat je doet!", want iirc, de waarschuwing verdwijnt als je clientverificatie of activeert verander de bindIp.



  1. Is er een insluitbaar Java-alternatief voor Redis?

  2. Mongo $in met samengestelde index

  3. Specificeer de MongoDb-verzamelingsnaam tijdens runtime in Spring boot

  4. mongodb geschatte tekenreeksovereenkomst