Безопасная работа с MongoDB
К сожалению, очень часто пропускается очень важная часть работы с MongoDB - настройка безопасного соединения. Даже в официальной документации не настаивается на том, что ваша база данных должна быть защищена паролем и для работы с ней нужно создать отдельного пользователя. Пришло время исправить эту ошибку. Ну, что ж, поехали!
Конфигурация системного файла
Для того, чтобы защитить нашу базу
паролем, нужно внести изменения
в системный файл MongoDB, который находится
по пути:
sudo nano /etc/mongod.conf
Теперь ищем в нём строку:
security:
authorization: enabled

Сохраняем изменения сочетанием
клавиш
sudo systemctl restart mongod
Создаем пользователя админа
Пользователь админ обладает большими правами
и нужен для того, чтобы злоумышленникам,
даже если они получат доступ к судо пользователю,
всё же не смогли пробраться дальше
в Ваши файлы. Чтобы создать пользователя нужно
вначале зайти через специальный терминал
sudo mongosh
После чего выведется следующее сообщение
и вас автоматически перенаправит в БД

Теперь переключаемся в базу
use admin

Далее создаем пользователя админа и наделяем
его правами
db.createUser({
user: 'mongo_user',
pwd: 'mongo_user123',
roles: [{role: "root", db: "admin"}]
})
Проверяем, можно ли просто так взять (с)
и зайти в базу данных. Для этого выходим из
sudo mongosh -u mongouser -p
Вводим пароль и - вуаля, мы зашли в базу:

Даже если вы зайдёте в
Теперь наша база данных под надёжной защитой! Кстати, при размещении сайта с MongoDB на реальном хостинге уделите большое внимание сложности пароля. Для дальнейшей работы с БД я рекомендую для каждого проекта создавать нового пользователя, чтобы снизить риск взлома до минимума. В таком случае хакеру придётся взламывать матрёшку - сначала пользователя конкретного проекта, а затем пользователя-админа.