2013-07-11 15 views
22

Non ho potuto capire cosa sia bind_ip in mongodb. Potrei effettuare una connessione remota dal desktop alla macchina EC2 avendo bind_ip = 0.0.0.0, ma non potrei farlo funzionare con bind_ip = 127.0.0.1.mongodb.conf bind_ip = 127.0.0.1 non funziona ma 0.0.0.0 funziona

Per favore spiegami cosa è bind_ip e perché funziona per 0.0.0.0 e non per 127.0.0.1.

Per riferimento da mongodb docs:

bind_ip

predefinita: Tutte le interfacce.

Impostare questa opzione per configurare il processo mongod o mongos per eseguire il binding e ascoltare le connessioni dalle applicazioni su questo indirizzo. È possibile allegare istanze mongod o mongos a qualsiasi interfaccia; tuttavia, se si collega il processo a un'interfaccia accessibile al pubblico, implementare le corrette restrizioni di autenticazione o firewall per proteggere l'integrità del database.

È possibile concatenare un elenco di valori separati da virgola per associare mongod a più indirizzi IP.

risposta

35

Prima vincolante il server su 0.0.0.0, si prega di essere chiaro circa le implicazioni di sicurezza di questi cambiamenti: Il server sarà pubblicamente esposto a tutti gli IP su tutta Internet. Assicurati di abilitare l'autenticazione sul tuo server!

Non è possibile accedere al dispositivo quando lo si lega a 127.0.0.1 su EC2. Questo non è un bug, è motivato dai collegamenti dell'interfaccia di rete.

127.0.0.1 si collegheranno solo all'interfaccia di loopback (quindi sarà possibile accedervi solo localmente), mentre 0.0.0.0 lo collegherà a tutte le interfacce di rete disponibili.

Ecco perché è possibile accedere a mongodb su EC2 quando si associa a 0.0.0.0 (come è disponibile tramite Internet ora) e non tramite 127.0.0.1.

Per server locali (come un WAMP o un server locale mongodb) che non sembrano diversi da voi, ma in questo caso è anche importante che il collegamento a server locali possa renderli disponibili su tutte le interfacce di rete (vedere 0.0.0.0). quindi potrebbe essere pubblico per qualcuno che conosce il tuo IP, se non c'è un firewall!)

Leggi su un similar question on Server Fault qui.

+0

la mia risposta è migliore, controlla di seguito :) – OWADVL

12

Dovrebbe essere chiaro per chiunque cerchi questa risposta che legare il tuo mongoDB a 0.0.0.0 potrebbe essere la tua mossa peggiore di sempre.

Si prega di leggere il seguente article e fare in modo che ogni volta che si decide di andare tutti i soggetti pubblici con i tuoi (e dei clienti) dei dati, si considera la seguente:

  • Avete regole del firewall aggiuntivi per decidere chi o che cosa può
    accedere al servizio
  • Capire che quando si utilizza Amazon EC2, se si consente il traffico 'interna' dovrebbe essere considerato lo stesso di metterlo spalancata, si non sono solo su Amazon
  • Arei tuoi servizi protetti da password? E che tipo di autenticazione? I dati sono inviati in testo chiaro o utilizzando la crittografia
  • Si stanno utilizzando i nomi di database predefiniti o si è copiato un esempio?
+2

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). - [Dalla recensione] (/ recensione/post di bassa qualità/10613323) – Blackwood

+2

@Blackwood Ho il sospetto che dovresti riconsiderare questo aspetto dopo gli attacchi di riscatto di ~ 25K MongoDB. Questa è probabilmente la risposta più utile –

+0

@PanagiotisKanavos Ho esaminato la domanda e sebbene questo possa essere un buon consiglio, non è una risposta alla domanda. – Blackwood

40

Ovunque è scritto che devi legarli come questo

bindIp : 127.0.0.1,192.168.0.50 

ma non funziona.

come funziona, nella versione 3.2.0 è

bindIp : [127.0.0.1,192.168.0.50] 

quindi cercate di aggiungere i ips all'interno del []

esempio:

# network interfaces 
net: 
     port: 27017 
     bindIp : [127.0.0.1,0.0.0.0] 

Tuttavia 0.0.0.0 si apre. Mentre questo è ok per TESTING, per la produzione dovresti conoscere le implicazioni di sicurezza di questa impostazione!

+5

Non so perché è contrassegnato come risposta non utile. Abbiamo passato un sacco di ore a cercare di capire perché il nostro MongoDB non si avvia e alla fine abbiamo scoperto che il parametro 'bindIp' richiede questa notazione per la gestione di più IP. I registri su MongoDB sono un rompicoglioni. Sulla documentazione è appena detto: "Per associare a più indirizzi IP, inserisci un elenco di valori separati da virgole". La chiave è ciò che una lista significa. – inigomedina

+1

Grazie! Questo risolve il mio problema! :) –

+1

Che funzionasse veramente – Kaunteya

Problemi correlati