Як встановити та захистити MongoDB на Ubuntu 24.04

Як встановити та захистити MongoDB на Ubuntu 24.04

 

MongoDB — це багатоплатформна та розподілена система баз даних NoSQL (non-SQL або Non-Relational) з відкритим вихідним кодом. Замість того, щоб зберігати дані в таблицях, як традиційні бази даних SQL, MongoDB використовує гнучкі документи для зберігання різних форм даних. MongoDB використовує двійковий формат JSON, BSON, для зберігання даних.

MongoDB — це розподілена база даних NoSQL з вбудованою високою доступністю, автоматичним перемиканням після відмови та резервуванням даних, а також горизонтальним масштабуванням за допомогою шардингу між розподіленими кластерами. Він підтримує географічне розгортання в кількох регіонах і надає API запитів, який підтримує операції CRUD (читання та запис), конвеєр агрегації даних, текстовий пошук та геопросторові запити.

У цьому посібнику ми покажемо вам, як встановити MongoDB на сервер Ubuntu 24.04. Ви підготуєте свій сервер Ubuntu, додасте репозиторій MongoDB, встановите сервер MongoDB, створите адміністратора для MongoDB, а потім увімкнете аутентифікацію MongoDB. Нарешті, ви дізнаєтесь, як створити користувача та базу даних у MongoDB за допомогою оболонки ‘mongosh’.

Передумови

Перш ніж почати, переконайтеся, що у вас є наступне:

  • Сервер Ubuntu 24.04
  • Користувач без права root з правами адміністратора

Підготовка системи

Перед встановленням MongoDB на вашу систему Ubuntu, переконайтеся, що ви налаштували свою систему. У цьому випадку ви будете налаштовувати сервер Ubuntu за допомогою наступного:

  • Вимкніть прозорі величезні сторінки через systemd
  • Збільшення лімітів для стандартного користувача MongoDB ‘mongod’
  • Налаштування max fs.file-max та увімкнення swappiness через файл ‘/etc/systctl.conf

Вимкніть прозорі величезні сторінки (THP)

Щоб вимкнути THP у вашій системі, вам потрібно створити новий файл служби systemd, який виконуватиметься автоматично при кожному завантаженні або запуску.

Створіть новий службовий файл ‘/etc/systemd/system/disable-thp.service‘ за допомогою редактора ‘nano’.

sudo nano /etc/systemd/system/disable-thp.service

Вставте наступну конфігурацію, щоб вимкнути THP через службу.

[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

Збережіть файл і вийдіть з редактора.

Тепер виконайте команду ‘systemctl‘ нижче, щоб перезавантажити менеджер systemd, запустіть і включіть службу ‘disable-thp‘. При цьому THP буде відключений при старті системи.

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Налаштування Ulimits

Після того, як ви вимкнули THP, вам потрібно збільшити максимальний файл і процеси за замовчуванням для користувача ‘mongod’ принаймні до ‘64000‘.

Створіть новий файл ‘/etc/security/limits.d/mongodb.conf‘ за допомогою наступної команди редактора ‘nano’.

sudo nano /etc/security/limits.d/mongodb.conf

Вставте наступну конфігурацію, щоб збільшити максимальну кількість відкритих файлів і процесів до «64000».

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Збережіть файл і вийдіть з редактора.

Налаштуйте swappiness і fs.file-max

Нарешті, вам потрібно збільшити стандартний ‘fs.file-max‘ та увімкнути swappiness для MongoDB. Для цього вам потрібно відредагувати файл ‘/etc/sysctl.conf‘.

Відкрийте файл ‘/etc/sysctl.conf‘ за допомогою команди редактора ‘nano’.

sudo nano /etc/sysctl.conf

Вставте наступну конфігурацію, щоб налаштувати fs.file-max і увімкнути swappiness.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

Коли закінчите, збережіть файл і вийдіть з редактора.

Тепер виконайте команду ‘sysctl‘ нижче, щоб застосувати зміни без перезавантаження.

sudo sysctl -p

Як встановити та захистити MongoDB на Ubuntu 24.04

Встановлення MongoDB з менеджером пакетів APT

Тепер, коли ви налаштували свою систему Ubuntu, ви готові встановити MongoDB. У цьому розділі ви встановите останню версію MongoDB 8.0 з офіційного репозиторію MongoDB.

Спочатку виконайте команду ‘apt‘ нижче, щоб оновити індекс пакетів Ubuntu та встановити пакети ‘gnupg‘ і ‘curl‘. Введіть «Y», щоб підтвердити встановлення.

sudo apt update && sudo apt install gnupg curl

Як встановити та захистити MongoDB на Ubuntu 24.04

Тепер виконайте наступну команду, щоб додати ключ GPG та репозиторій для MongoDB. У цьому прикладі ви будете встановлювати MongoDB 8 на свій сервер Ubuntu 24.04.

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Як встановити та захистити MongoDB на Ubuntu 24.04

Далі виконайте команду ‘apt‘ нижче, щоб оновити індекс пакетів і встановити пакет ‘mongodb-org‘ у свою систему. Введіть «Y», щоб продовжити встановлення.

sudo apt update && sudo apt install mongodb-org

 

Як встановити та захистити MongoDB на Ubuntu 24.04

Після завершення інсталяції виконайте команду ‘systemctl‘ нижче, щоб перезавантажити менеджер systemd. Сервіс ‘mongod‘ додано до вашої системи Ubuntu.

sudo systemctl daemon-reload

Нарешті, виконайте наведену нижче команду, щоб запустити, увімкнути та перевірити службу MongoDB ‘mongod‘. Ви побачите, що MongoDB працює у вашій системі.

sudo systemctl enable --now mongod
sudo systemctl status mongod

 

Як встановити та захистити MongoDB на Ubuntu 24.04

Захист сервера MongoDB

Після встановлення MongoDB ви будете захищені при встановленні сервера MongoDB за допомогою наступних вимог:

  • Створення нового адміністратора для MongoDB за допомогою оболонки ‘mongosh
  • Увімкніть аутентифікацію MongoDB, відредагувавши файл конфігурації ‘/etc/mongod.conf

Створення адміністратора MongoDB користувача

У цьому розділі ви створите нового користувача адміністратора MongoDB за допомогою оболонки ‘mongosh’. Оболонка ‘mongosh’ – це командний рядок клієнта для взаємодії з сервером MongoDB, це як ‘mysql’ для MySQL/MariaDB і ‘psql’ для PostgreSQL.

Щоб створити адміністратора, увійдіть на сервер MongoDB за допомогою команди оболонки ‘mongosh‘ нижче.

mongosh

Тепер виконайте наступний запит, щоб відключити телеметрію MongoDB.

disableTelemetry()

Як встановити та захистити MongoDB на Ubuntu 24.04

Далі перейдіть до бази даних ‘admin‘ і виконайте наступні запити, щоб створити нового користувача admin для MongoDB. У цьому прикладі ви створюєте нового користувача “myAdmin“, а потім вводите новий пароль, коли з’явиться відповідний запит.

use admin
db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Тепер введіть ‘quit()‘, щоб вийти з оболонки MongoDB.

Як встановити та захистити MongoDB на Ubuntu 24.04

Увімкніть аутентифікацію MongoDB

Тепер, коли ви створили адміністратора MongoDB, ви готові увімкнути аутентифікацію MongoDB за допомогою файлу ‘/etc/mongod.conf‘.

Відкрийте стандартну конфігурацію сервера MongoDB ‘/etc/mongod.conf‘ за допомогою наступної команди редактора ‘nano’.

sudo nano /etc/mongod.conf

Додайте наступні рядки, щоб увімкнути аутентифікацію в MongoDB.

security:
 authorization: enabled

Коли закінчите, збережіть файл і вийдіть з редактора.

Тепер виконайте команду ‘systemctl‘ нижче, щоб перезавантажити сервер MongoDB і застосувати зміни. При цьому буде включена аутентифікація MongoDB.

sudo systemctl restart mongod

Перевірте аутентифікацію MongoDB

Тепер, коли ви забезпечили безпеку встановлення сервера MongoDB, давайте перевіримо вашу конфігурацію, увійшовши в систему MongoDB за допомогою оболонки ‘mongosh’ та нового адміністратора користувача та пароля.

Увійдіть на сервер MongoDB як користувач ‘myAdmin‘ за допомогою команди ‘mongosh‘ нижче. Введіть пароль, коли з’явиться відповідний запит.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

Як встановити та захистити MongoDB на Ubuntu 24.04

Увійшовши в систему, виконайте запит нижче, щоб перевірити статус підключення. Ви повинні були увійти на сервер MongoDB за допомогою користувача ‘myAdmin‘.

db.runCommand({connectionStatus : 1})

Тепер введіть ‘quit()‘, щоб вийти з сервера MongoDB.

рення бази даних та користувача в

Створення бази даних та користувача в MongoDB

У цьому розділі ви дізнаєтеся, як створити нову базу даних і користувача в MongoDB за допомогою оболонки ‘mongosh’. Тому переконайтеся, що ви увійшли в систему MongoDB як користувач з правами адміністратора.

Спочатку виконайте запит нижче, щоб перейти до бази даних ‘mydb‘.

use mydb

Тепер виконайте наступний запит, щоб створити нового користувача ‘myUser‘ і дозволити доступ на читання та запис до бази даних ‘mydb‘. Введіть пароль, коли з’явиться відповідний запит.

db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Введіть ‘quit()‘, щоб вийти з сервера MongoDB.

Як встановити та захистити MongoDB на Ubuntu 24.049

Тепер виконайте команду ‘mongosh’ нижче, щоб увійти як ‘myUser‘ до бази даних ‘mydb‘. Введіть пароль, коли з’явиться відповідний запит.

mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p

Як встановити та захистити MongoDB на Ubuntu 24.049

Увійшовши в систему, перевірте статус з’єднання за допомогою наступного запиту.

db.runCommand({connectionStatus : 1})

Нижче ви можете побачити, що ви підключилися до сервера MongoDB з користувачем ‘myUser’ і привілеями до бази даних ‘mydb‘.

Як встановити та захистити MongoDB на Ubuntu 24.049

Висновок

Вітаємо! Ви завершили встановлення сервера MongoDB на сервер Ubuntu 24.04. Ви також створили користувача з правами адміністратора та забезпечили безпечну інсталяцію MongoDB. Потім ви дізналися, як використовувати ‘mongosh’ для підключення до сервера MongoDB та основні запити для керування користувачами та базами даних у MongoDB.

Прокрутка до верху