sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad gör --bindip-konfigurationsalternativet i mongodb?

bindIp

127.0.0.1 enligt konvention är IP-adressen till localhost och är bunden till loopback-gränssnittet, som endast är tillgängligt från samma maskin.

Att använda den här adressen som standard är bästa praxis, eftersom det gör det omöjligt att av misstag exponera en tjänst för allmänheten. Du måste göra ett medvetet val att ändra bindnings-IP för att göra din tjänst allmänt tillgänglig. Vilket du bara bör göra efter att du försäkrat dig att du vidtog lämpliga säkerhetsåtgärder.

Vanligtvis har en maskin loopback-gränssnittet och ett eller flera "riktiga" nätverksgränssnitt.

Säg att du har ett nätverksgränssnitt som är "internt" (endast tillgängligt av dina applikationsservrar, eftersom du lägger dem i samma nätverk) och att du har ett nätverksgränssnitt som är "externt" (nås via det offentliga internet för underhållsändamål). Om du nu skulle binda din MongoDB-instans till alla gränssnitt (du skulle använda IP-adressen 0.0. 0,0 för att göra det), skulle din MongoDB-instans vara tillgänglig från det offentliga internet – knappast en önskad situation. Angripare kan försöka bruteforce dina lösenord och kan så småningom få tillgång till din MongoDB-instans. Bättre att förhindra all åtkomst från det offentliga internet överhuvudtaget.

Vad du hellre vill ha att din MongoDB-instans är tillgänglig för dina applikationsservrar och från maskinen den körs på. Så du skulle binda MongoDB till både loopback-gränssnittets IP (127.0.0.1 ) och IP-adressen för det privata nätverket, vilket i allmänhet skulle vara en av

  • intervallet från 10.0.0.0 till 10.255.255.255
  • intervallet från 172.16.0.0 till 172.31.255.255
  • intervallet från 192.168.0.0 till 192.168.255.255

Låt oss ta vårt exempel och säga att både applikationsservrarna och MongoDB-instansen är i ett privat nätverk inom intervallet 192.168.X.X och du har gett MongoDB-instansen IP-adressen 192.168.0.1 . Så du skulle vilja ha din MongoDB-instans tillgänglig via 192.168.0.1 så att applikationsservrarna kan prata med den och via 127.0.0.1 att använda administrationsverktygen från maskinen som MongoDB körs på utan ansträngning.

Så med YAML-konfigurationssyntaxen skulle du skicka flera IP-adresser

OBS lägg inte till mellanslag mellan kommatecken på flera IP-adresser

# 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

Om varningarna

Kort sagt, detta är MongoDBs sätt att säga:

Det finns ett slags underförstått "Om du inte verkligen vet vad du gör!", eftersom iirc, varningen försvinner om du antingen aktiverar klientautentisering eller ändra bindIp.



  1. Hur man skriver flera grupper efter id-fält i Mongodb java-drivrutin

  2. motsvarighet till INET_ATON() i mongodb

  3. Hur pipeline i node.js till redis?

  4. betydelsen av sudo chown -R `id -u` /data/db