Введение
MongoDB — документно-ориентированная (нереляционная) база данных NoSQL. Он был разработан для обработки больших объемов разнородных данных и масштабирования, что означает, что он может обрабатывать большие объемы данных на нескольких серверах.
В MongoDB данные сохраняются в документах JSON (JavaScript Object Notation), что означает, что данные могут быть легко прочитаны и записаны приложениями на различных языках программирования. Кроме того, MongoDB поддерживает индексирование данных, поиск и запросы, что позволяет разработчикам легко находить и эффективно обрабатывать данные.
MongoDB популярен в различных приложениях, таких как веб-приложения, службы геолокации, приложения для анализа данных и многое другое. Благодаря своей масштабируемости MongoDB может эффективно обрабатывать большие объемы данных и может быть легко развернута в облаке или в распределенной серверной инфраструктуре.
В этой статье мы затронем следующие темы:
- Установка MongoDB на Ubuntu 22.04
- Защитите MongoDB паролем
- Включение аутентификации для MongoDB
- Ограничить доступ к MongoDB
- Открытие порта в брандмауэре с помощью UFW
Предпосылки
Прежде чем продолжить, убедитесь, что у вас установлена новая версия Ubuntu 22.04 и пользователь без полномочий root с привилегиями sudo. Кроме того, убедитесь, что ваша система обновлена, выполнив следующую команду:
sudo apt update and sudo apt upgrade
sudo apt install gnupg2
Как только ваша система будет обновлена, мы можем приступить к установке MongoDB.
Установить MongoDB
Установка MongoDB в Ubuntu — относительно простой процесс. Вы можете установить его с помощью диспетчера пакетов Ubuntu или загрузить непосредственно с веб-сайта MongoDB.
Следующие шаги позволят настроить официальный MongoDB PPA в вашей системе Ubuntu и установить его:
Импортируйте GPG-ключ MongoDB:
wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc
cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null
Эти команды импортируют ключ GPG для репозитория MongoDB, который используется для проверки подлинности пакетов в репозитории.
Добавьте репозиторий MongoDB в менеджер пакетов вашей системы:
sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list'
Эта команда добавит репозиторий MongoDB в список репозиториев в диспетчере пакетов вашей системы.
Обновите список доступных пакетов:
sudo apt update
Эта команда обновит список доступных пакетов, чтобы включить пакеты в репозиторий MongoDB.
Установите MongoDB:
sudo apt install mongodb-org
Эта команда установит последнюю стабильную версию MongoDB из репозитория MongoDB.
Запустите службу MongoDB:
sudo systemctl start mongod
Эта команда запустит службу MongoDB.
Вышеуказанные шаги позволят успешно установить MongoDB в системе Ubuntu.
Далее важно включить аутентификацию для базы данных MongoDB. Это потребует от пользователей ввода имени пользователя и пароля для доступа к базе данных. Без включенной аутентификации любой, у кого есть доступ к серверу, сможет просматривать и изменять данные в базе данных.
Защитите MongoDB паролем
По умолчанию MongoDB не требует пароля для доступа к базе данных. Однако рекомендуется установить пароль для защиты базы данных и предотвращения несанкционированного доступа.
Чтобы установить пароль для MongoDB, выполните следующие действия:
Подключитесь к оболочке MongoDB:
mongosh
Эта команда откроет оболочку MongoDB, которая представляет собой интерфейс командной строки для взаимодействия с базой данных.
Переключитесь на базу данных администратора:
use admin
Эта команда переключится на базу данных admin
, которая используется для управления пользователями и ролями в базе данных.
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
})
Замените admin
и password
желаемыми именем пользователя и паролем для нового пользователя. Эта команда создаст нового пользователя с ролью root
в базе данных admin
. Роль root имеет полный доступ ко всем ресурсам и функциям базы данных.
Выйдите из оболочки MongoDB:
exit
Включить аутентификацию
По умолчанию MongoDB не требует аутентификации для доступа к базе данных. Однако рекомендуется включить аутентификацию для защиты базы данных и предотвращения несанкционированного доступа.
Чтобы включить аутентификацию для MongoDB, выполните следующие действия:
Отредактируйте файл конфигурации MongoDB:
sudo nano /etc/mongod.conf
Эта команда откроет файл конфигурации MongoDB в текстовом редакторе Nano.
Найдите раздел безопасности в файле конфигурации и добавьте следующие строки:
security:
authorization: enabled
Это активирует функцию авторизации для MongoDB, которая требует, чтобы пользователи аутентифицировались с помощью имени пользователя и пароля для доступа к базе данных.
Сохраните изменения и выйдите из текстового редактора.
Перезапустите службу MongoDB:
sudo systemctl restart mongod
Эта команда применит изменения конфигурации MongoDB и перезапустит службу.
Ограничение доступа к MongoDB
По умолчанию MongoDB разрешает подключения с любого IP-адреса. Однако для повышения безопасности рекомендуется ограничить доступ к базе данных определенными IP-адресами или диапазонами.
Чтобы ограничить доступ к MongoDB, выполните следующие действия:
Отредактируйте файл конфигурации MongoDB:
sudo nano /etc/mongod.conf
Эта команда откроет файл конфигурации MongoDB в текстовом редакторе Nano.
Найдите раздел net в файле конфигурации и добавьте следующие строки:
net:
bindIp: 127.0.0.1,192.168.1.0/24
Замените 127.0.0.1,192.168.1.0/24 нужными IP-адресами или диапазонами, которые необходимо разрешить. Это ограничит доступ к базе данных указанными адресами или диапазонами IP-адресов.
Сохраните изменения и выйдите из текстового редактора.
Перезапустите службу MongoDB:
sudo systemctl restart mongod
Эта команда применит изменения конфигурации MongoDB и перезапустит службу.
Открытый порт брандмауэра (UFW)
Чтобы открыть порт MongoDB (27017) в брандмауэре в системе с запущенным ufw, сделайте следующее:
Проверьте состояние брандмауэра:
sudo ufw status
Эта команда покажет текущее состояние брандмауэра. Если ваш брандмауэр не работает, вам необходимо запустить его, прежде чем вы сможете открыть порт MongoDB.
Если брандмауэр не активен, запустите его, выполнив следующую команду:
sudo ufw enable
Эта команда включит брандмауэр и разрешит входящие подключения к системе.
Откройте порт MongoDB в брандмауэре:
sudo ufw allow 27017
Эта команда откроет порт MongoDB (27017) в брандмауэре и разрешит входящие подключения к порту.
Проверьте список открытых портов, чтобы убедиться, что порт MongoDB открыт:
sudo ufw status
После этих шагов порт MongoDB должен быть открыт в вашем брандмауэре, и вы сможете подключаться к базе данных из других систем.
Заключение
В этой статье мы объяснили, как установить и защитить MongoDB в Ubuntu 22.04. Мы рассмотрели, как установить MongoDB, установить пароль, включить аутентификацию для базы данных и ограничить доступ к определенным IP-адресам или диапазонам. Следуя этим шагам, вы можете убедиться, что ваша установка MongoDB безопасна и доступна только авторизованным пользователям.