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

Che cosa fa l'opzione di configurazione --bindip in mongodb?

Su bindIp

127.0.0.1 per convenzione è l'indirizzo IP di localhost ed è legato all'interfaccia di loopback, accessibile solo dalla stessa macchina.

L'utilizzo di questo indirizzo come predefinito è la migliore pratica, poiché così facendo è impossibile esporre accidentalmente un servizio al pubblico. Devi fare la scelta consapevole di cambiare l'IP di collegamento per rendere il tuo servizio disponibile pubblicamente. Cosa che dovresti fare solo dopo esserti assicurato che hai adottato le misure di sicurezza adeguate.

Tipicamente, una macchina ha l'interfaccia di loopback e una o più interfacce di rete "reali".

Supponiamo di avere un'interfaccia di rete "interna" (accessibile solo dai server delle applicazioni, poiché li metti nella stessa rete) e di avere un'interfaccia di rete "esterna" (raggiungibile tramite Internet pubblico per scopi di manutenzione). Ora, se dovessi associare la tua istanza MongoDB a tutte le interfacce (usare l'indirizzo IP 0.0. 0.0 per farlo), la tua istanza MongoDB sarebbe accessibile dalla rete Internet pubblica, una situazione difficilmente desiderata. Gli aggressori potrebbero tentare di forzare le tue password e alla fine potrebbero ottenere l'accesso alla tua istanza MongoDB. Meglio impedire qualsiasi accesso dalla rete Internet pubblica.

Quello che vorresti avere che la tua istanza MongoDB sia accessibile per i tuoi server delle applicazioni e dalla macchina su cui è in esecuzione. Quindi assoceresti MongoDB a entrambi gli IP dell'interfaccia di loopback (127.0.0.1 ) e l'IP della rete privata, che in genere sarebbe una di

  • l'intervallo da 10.0.0.0 a 10.255.255.255
  • l'intervallo da 172.16.0.0 a 172.31.255.255
  • l'intervallo da 192.168.0.0 a 192.168.255.255

Prendiamo il nostro esempio e diciamo che sia i server delle applicazioni che l'istanza MongoDB si trovano in una rete privata nell'intervallo 192.168.X.X e hai fornito all'istanza MongoDB l'indirizzo IP 192.168.0.1 . Quindi vorresti che la tua istanza MongoDB fosse accessibile tramite 192.168.0.1 in modo che i server delle applicazioni possano parlare con esso e tramite 127.0.0.1 per utilizzare gli strumenti di amministrazione dalla macchina su cui MongoDB gira senza sforzo.

Quindi, con la sintassi di configurazione YAML, passeresti più IP

NOTA non aggiungere spazio tra le virgole su più IP

# 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

Sugli avvisi

In breve, questo è il modo in cui MongoDB dice:

C'è una sorta di implicito "A meno che tu non davvero sai cosa stai facendo!", perché iirc, l'avviso scompare se attivi l'autenticazione del client o cambia il bindIp.