Репликация MongoDB TLS / SSL - PullRequest
       9

Репликация MongoDB TLS / SSL

0 голосов
/ 20 сентября 2018

Я успешно запустил набор реплик MongoDB 4 на 3 серверах по частному IP.Теперь я хочу связать другой IP, и ему нужно включить TLS / SSL.

Я создал PEMKeyFile и CAFile, скопировал эти файлы на все 3 сервера и добавил приведенные ниже коды в файл mongod.config всех 3 серверов.

# network interfaces
net:
  port: 27017
  bindIp: 10.10.20.21,5.22.25.45 # example private ip and one example valid IP
  ssl:
    mode: requireSSL
    PEMKeyFile: /opt/mongo/mongo.pem
    PEMKeyPassword: MyPassword
    CAFile : /opt/mongo/CA.pem
    allowInvalidCertificates: true
    allowInvalidHostnames: true

security:
  keyFile: /opt/mongo/mongo-keyfile

Я получил ошибку

E STORAGE  [initandlisten] Failed to set up listener: SocketException: Cannot assign requested address
I CONTROL  [initandlisten] now exiting
I CONTROL  [initandlisten] shutting down with code:48

Что с ней не так?Как я могу это исправить?

1 Ответ

0 голосов
/ 20 сентября 2018

если я увижу оба этих IP-адреса

да, конечно.

bindIp сообщает службе mongodb, какие сетевые интерфейсы системы прослушивать.Это локальные системные интерфейсы, а не клиенты.Как только mongobd подключается к интерфейсу, клиенты из любого места могут подключаться к этому IP:

  • , привязка к 10.10.20.XXX: частный сетевой интерфейс класса A позволяет клиентам подключаться с любого 10.XXX.XXX.XXX IP в той же сети
  • привязка к 5.22.25.XXX: общедоступный сетевой интерфейс позволяет клиентам подключаться из любого места в Интернете.

Если вы хотитеограничить доступ к mongodb и разрешить подключение только с определенных IP-адресов / сетей, вам необходимо включить аутентификацию и применить ограничение к пользователю или группе: https://docs.mongodb.com/manual/reference/method/db.createUser/#authentication-restrictions.

Например

use admin
db.createUser(
   {
     user: "remote-client",
     pwd: "password",
     roles: [ { role: "readWrite", db: "reporting" } ],
     authenticationRestrictions: [ {
        clientSource: ["5.22.25.45"]
     } ]
   }
)

Позволит mongo -u remote-client -p password подключаться только с IP 5.22.25.45 и разрешить чтение и запись в / из базы данных «отчетов».

...