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
naar10.255.255.255
- het bereik van
172.16.0.0
naar172.31.255.255
- het bereik van
192.168.0.0
naar192.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.