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

Hvad gør --bindip-konfigurationsmuligheden i mongodb?

bindIp

127.0.0.1 efter konvention er IP-adressen på localhost og er bundet til loopback-grænsefladen, som kun er tilgængelig fra den samme maskine.

Brug af denne adresse som standard er bedste praksis, da det gør det umuligt ved et uheld at udsætte en tjeneste for offentligheden. Du skal træffe det bevidste valg om at ændre bindings-IP'en for at gøre din tjeneste offentligt tilgængelig. Hvilket du først skal gøre, når du har sikret dig at du har taget de rigtige sikkerhedsforanstaltninger.

Typisk har en maskine loopback-grænsefladen og en eller flere "rigtige" netværksgrænseflader.

Lad os sige, at du har en netværksgrænseflade, som er "intern" (kun tilgængelig for dine applikationsservere, da du sætter dem i det samme netværk), og du har en netværksgrænseflade, som er "ekstern" (kan nås via det offentlige internet til vedligeholdelsesformål). Hvis du nu vil binde din MongoDB-instans til alle grænseflader (du ville bruge IP-adressen 0.0. 0,0 for at gøre det), ville din MongoDB-instans være tilgængelig fra det offentlige internet - næppe en ønsket situation. Angribere kan prøve at brute force dine adgangskoder og kan i sidste ende få adgang til din MongoDB-instans. Det er bedre at forhindre enhver adgang fra det offentlige internet overhovedet.

Hvad du helst vil have, at din MongoDB-instans er tilgængelig for dine applikationsservere og fra den maskine, den kører på. Så du ville binde MongoDB til både loopback-grænsefladens IP (127.0.0.1 ) og IP-adressen for det private netværk, som generelt ville være en af

  • intervallet fra 10.0.0.0 til 10.255.255.255
  • intervallet fra 172.16.0.0 til 172.31.255.255
  • intervallet fra 192.168.0.0 til 192.168.255.255

Lad os tage vores eksempel og sige, at både applikationsserverne og MongoDB-instansen er i et privat netværk i området 192.168.X.X og du har givet MongoDB-instansen IP-adressen 192.168.0.1 . Så du ønsker at have din MongoDB-instans tilgængelig via 192.168.0.1 så applikationsserverne kan tale med den og via 127.0.0.1 at bruge administrationsværktøjerne fra maskinen MongoDB kører ubesværet på.

Så med YAML-konfigurationssyntaksen ville du sende flere IP'er

BEMÆRK tilføj ikke mellemrum mellem kommaer på flere IP'er

# 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

På advarslerne

Kort sagt, dette er MongoDBs måde at sige:

Der er en slags underforstået "Medmindre du virkelig ved hvad du laver!", fordi iirc, advarslen forsvinder, hvis du enten aktiverer klientgodkendelse eller ændre bindIp.



  1. Er det dårlig praksis at bruge et mongo ObjectId som en brugers id?

  2. Swagger (Swashbuckle for C#) viser Mongo ObjectId som flere felter i stedet for en enkelt streng

  3. Mongodb kan ikke starte på grund af WiredTiger.turtle-tilladelser

  4. Undgå duplikatlogin med FOSUserBundle