Настройка аутентификации в кластере
...
Для аутентификации узлов кластера необходимо создать файл с ключом из 6-1024 символов Base64. Сделать это можно так:
Блок кода |
---|
|
openssl rand -base64 741 > mongo_keyfile |
Этот файл должен иметь права 400, разрешаем чтение только владельцу файла, а также назначаем владельца :
Блок кода |
---|
|
chown mongodb mongo_keyfile
chmod 400 mongo_keyfile |
После этого в /etc/
mongodbmongod.conf
необходимо добавить параметр keyfile
с абсолютным путём к созданному файлу ( в нашем случае добавляем строку keyFile keyFile = /etc/mongo_keyfile) и перезапустить MongoDB.Это действие нужно выполнить на каждом узле кластера:
Копируем
Блок кода |
---|
|
service mongod restart |
Необходимо скопировать файл на каждый узел кластера, не забываем забыв проверить права и владельца файла.
Указание keyFile
автоматически включает аутентификацию (auth = true
).
Далее надо выполнить настройку пользователей.
Настройка пользователей
...
Создание администратора
Для создания администратора в Mongo shell нужно:
1) Подключиться к БД admin
:
Блок кода |
---|
|
$ mongo admin
connecting to: admin
> |
2) Ввести команду на создание пользователя
Блок кода |
---|
|
db.addUser({ user: "<имя_пользователя>", pwd: "<пароль>", roles: [ "clusterAdmin", "userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase" ] }) |
ВсеАдминистратор создан, администратора создали, теперь нужно перезапустить сервис MongodbMongo. Если настройку настройка аутентификации в кластере не настраивалинастроена, то нужно прописать в конфигурационном файле /etc/mongodb.conf
параметр auth = true
Блок кода |
---|
|
service mongodbmongod restart |
После перезапуска сервиса можно подключаться к mongo c созданной учетной записью.
Блок кода |
---|
|
mongo -u<имя> -p<пароль> admin |
admin - это бд БД, к которой мы подключаемсянужно подключиться, если её не указать бд adminуказать , то у нас не будет каких-либо привилегий.
Далее надо добавить пользователей для других баз данных. В частности для бд: notification-gw, pcrf, wifi-customer-cab.
Создание УЗ для работы сервисов
Обычные пользователи добавляются так же, как и администратор, только с ролями readWrite
(чтение/запись) и dbAdmin
(некоторые операции с индексами и коллекциями):
Переключаемся на нужную БД:
Блок кода |
---|
|
> use notification-gw |
Создаем пользователя:
Блок кода |
---|
|
> db.addUser({ user: "<имя_пользователя>", pwd: "<пароль>", roles: [ "readWrite", "dbAdmin" ] }) |
Переключаемся на другую бдБД:
Повторяем создание пользователя для PCRF, с теми же привелегиямипривилегиями, но добавляем привелегию привилегию clusterAdmin, для получения состояния replica set.:
Блок кода |
---|
|
> db.addUser({ user: "<имя_пользователя>", pwd: "<пароль>", roles: [ "readWrite", "dbAdmin", clusterAdmin ] }) |
И аналогично делаем для бд БД wifi-customer-cab:
Блок кода |
---|
|
> use wifi-customer-cab
> db.addUser({ user: "<имя_пользователя>", pwd: "<пароль>", roles: [ "readWrite", "dbAdmin" ] } |
...
Добавление пользователей в конфигурации сервисов
...
В конфигурационном файле Личного кабинета /etc/eltex-wifi-cab/system.xml , необходимо указать логин, пароль для доступа к БД wifi-customer-cab.
В NBI конфигурационном файле NBI /etc/eltex-radius-nbi/radius_nbi_config.txt доступ к , необходимо указать логин, пароль для доступа к БД pcrf.
В конфигурационном файле NGW /etc/eltex-notification-gw/notification.properties к бд , необходимо указать логин, пароль для доступа к БД notification-gw.