MongoDB - Bind_IP Критические изменения и набор реплик нарушен

Я использую набор реплик на 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. У меня две основные проблемы:

  1. bindIp принимает только строку CSV, а не массив, поэтому я изменил конфигурацию на 127.0.0.1,192.168.1.2,192.168.1.3 (критическое изменение)
  2. Мой сервер MongoDB не желает запускаться , со следующей ошибкой: [initandlisten] listen (): bind () failed Запрошенный адрес недействителен в своем контексте. для сокета: 192.168.1.3:27018 Единственный способ восстановить работоспособность моей реплики - это изменить bind_ip на 0.0.0.0 на всех моих серверах, что является проблемой безопасности.

Итак, мой вопрос касается версии 3.4.10, как сделать настроить mongodb (и набор реплик), чтобы доступ был доступен только с участвующих серверов? Здесь есть ошибка?

1
задан 1 February 2018 в 16:58
1 ответ

Значение конфигурации 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 .

1
ответ дан 3 December 2019 в 23:20

Теги

Похожие вопросы