Я использую набор реплик на 3 серверах Windows 2012 R2 в моем VPN. IP-адреса серверов: 192.168.1.1,192.168.1.2,192.168.1.3.
Версия MongoDB: 3.4.2 Я хочу ограничить доступ к серверам MongoDB только серверами, которые являются частью набора реплик, поэтому на каждом сервере. Я запускаю MongoDB с этой конфигурацией bind_ip (допустим, мы находимся на сервере 192.168.1.1):
net:
bindIp: [127.0.0.1,192.168.1.2,192.168.1.3]
Я могу подключиться к своей реплике, и все работает, как ожидалось.
Сегодня я обновил свой сервер до версии 3.4.10 mongodb. У меня две основные проблемы:
Итак, мой вопрос касается версии 3.4.10, как сделать настроить mongodb (и набор реплик), чтобы доступ был доступен только с участвующих серверов? Здесь есть ошибка?
Значение конфигурации net.bindIp
определяет только IP-адреса, которые прослушивает ваш сервер MongoDB. Он не контролирует доступ с удаленных IP-адресов - это роль межсетевого экрана.Вам нужно будет настроить брандмауэр на своих серверах, чтобы разрешить обмен данными между всеми членами вашего набора реплик, а также вашими клиентскими приложениями.
Для отправной точки в Windows см .: Настройка Windows netsh
] Брандмауэр для MongoDB .
(Допустим, мы находимся на сервере 192.168.1.1):
net:
bindIp: [127.0.0.1,192.168.1.2,192.168.1.3]
Учитывая ваше описание, правильное значение bindIp, которое следует использовать для этого сервера для прослушивания как локального хоста, так и частного IP-адреса 192.168 .1.1 будет 127.0.0.1,192.168.1.1
. Вы не можете привязаться к IP-адресам, которые не связаны с сетевыми интерфейсами на локальном сервере, поэтому вы получаете ошибку Запрошенный адрес недействителен в своем контексте
при попытке включить удаленные IP-адреса.
Дополнительные сведения о безопасности развертывания см. В Контрольный список безопасности MongoDB .