Na bindIp
127.0.0.1
zgodnie z konwencją jest to adres IP localhost
i jest powiązany z interfejsem pętli zwrotnej, który jest dostępny tylko z tej samej maszyny.
Używanie tego adresu jako domyślnego jest najlepszą praktyką, ponieważ uniemożliwia to przypadkowe ujawnienie usługi publicznie. Musisz dokonać świadomego wyboru zmiany adresu IP powiązania, aby Twoja usługa była publicznie dostępna. Co powinieneś zrobić dopiero po upewnieniu się że podjąłeś odpowiednie środki bezpieczeństwa.
Zazwyczaj maszyna ma interfejs pętli zwrotnej i jeden lub więcej „prawdziwych” interfejsów sieciowych.
Załóżmy, że masz jeden interfejs sieciowy, który jest „wewnętrzny” (dostępny tylko dla twoich serwerów aplikacji, ponieważ umieszczasz je w tej samej sieci) i masz jeden interfejs sieciowy, który jest „zewnętrzny” (dostępny przez publiczny Internet w celach konserwacyjnych). Teraz, jeśli powiążesz instancję MongoDB ze wszystkimi interfejsami (użyjesz adresu IP 0.0. 0.0 w tym celu), twoja instancja MongoDB byłaby dostępna z publicznego Internetu – nie jest to pożądana sytuacja. Atakujący mogą próbować brutalnie wymusić Twoje hasła i ostatecznie uzyskać dostęp do Twojej instancji MongoDB. Lepiej w ogóle uniemożliwić dostęp z publicznego Internetu.
To, co wolisz mieć, aby Twoja instancja MongoDB była dostępna dla serwerów aplikacji i z maszyny, na której działa. Więc powiążesz MongoDB z IP interfejsu pętli zwrotnej (127.0.0.1
) i IP sieci prywatnej, która ogólnie będzie jednym z
- zakres od
10.0.0.0
do10.255.255.255
- zakres od
172.16.0.0
do172.31.255.255
- zakres od
192.168.0.0
do192.168.255.255
Weźmy nasz przykład i powiedzmy, że zarówno serwery aplikacji, jak i instancja MongoDB znajdują się w sieci prywatnej w zakresie 192.168.X.X
i nadałeś instancji MongoDB adres IP 192.168.0.1
. Więc chciałbyś, aby Twoja instancja MongoDB była dostępna przez 192.168.0.1
aby serwery aplikacji mogły z nim rozmawiać i przez 127.0.0.1
do korzystania z narzędzi administracyjnych z maszyny, na której MongoDB działa bez wysiłku.
Tak więc przy składni konfiguracji YAML można przekazać wiele adresów IP
UWAGA nie dodawaj spacji między przecinkami w wielu adresach 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
O ostrzeżeniach
Krótko mówiąc, jest to sposób na powiedzenie MongoDB:
Istnieje rodzaj dorozumianego „chyba że naprawdę wiesz, co robisz!", ponieważ iirc, ostrzeżenie znika, jeśli aktywujesz uwierzytelnianie klienta lub zmień adres IP.