Установка и защита MongoDB 4.4 на Debian 11

MongoDB — это распространённая открытая документно-ориентированная NoSQL БД, хранящая документы в формате JSON (BSON). Подходит для современных приложений и легко интегрируется с большинством языков программирования. В этой статье показано, как установить MongoDB 4.4 на сервер с Debian 11 и включить базовую защиту (аутентификацию).
Необходимые условия
- Сервер с Debian 11 (root-доступ или sudo).
- Настроен root-пароль или пользователь с правами sudo.
Важно: используйте безопасное подключение к серверу (SSH с ключами) при выполнении команд.
Добавление репозитория MongoDB
По умолчанию пакета mongodb-org нет в стандартных репозиториях Debian 11. Добавим официальный APT-репозиторий MongoDB.
Сначала установим необходимые зависимости:
apt-get install curl apt-transport-https software-properties-common gnupg2 -yЗатем загрузим и добавим GPG-ключ:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -Добавим репозиторий в файл sources.list.d:
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.listПримечание: в некоторых руководствах для Debian 11 используют строку с “buster” — если при обновлении APT вы получите ошибки, проверьте совместимость репозитория с вашей версией дистрибутива и релизом пакета.
Обновим индексы и установим сервер MongoDB:
apt-get update -y
apt-get install mongodb-org -yПосле установки запустите и включите службу, чтобы она стартовала при перезагрузке:
systemctl start mongod
systemctl enable mongodПроверьте версию сервера:
mongod --versionПример ожидаемого вывода (информативно):
db version v4.4.9
Build Info: {
"version": "4.4.9",
"gitVersion": "b4048e19814bfebac717cf5a880076aa69aba481",
"openSSLVersion": "OpenSSL 1.1.1k 25 Mar 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "debian10",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
Включение аутентификации MongoDB
По умолчанию аутентификация в MongoDB отключена. Рекомендуется создать административного пользователя и включить авторизацию.
Подключитесь к MongoDB shell:
mongoСоздайте базу admin и административного пользователя (замените пароль на надёжный):
> use admin> db.createUser(
{
user: "madmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)Примечание: обязательно замените “password” на сложный пароль и храните его в безопасном менеджере секретов.
Вы должны увидеть подтверждение об успешном добавлении пользователя.
Выйдите из оболочки (CTRL+D) и отредактируйте файл конфигурации:
nano /etc/mongod.confДобавьте следующие строки для включения авторизации:
security:
authorization: enabled
Сохраните файл и перезапустите службу:
systemctl restart mongodВажно: после включения авторизации локальные подключения без учётных данных будут отклоняться. Убедитесь, что вы правильно добавили администратора.
Проверка подключения с авторизацией
Подключитесь к оболочке с указанием имени пользователя (вам будет предложено ввести пароль):
mongo -u madmin -pПример успешного входа:
MongoDB shell version v4.4.9
Enter password:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("8366d28f-55d3-4471-bd94-331329828181") }
MongoDB server version: 4.4.9
>
Покажите пользователей в базе admin:
> use admin
> show usersОжидаемый вывод с информацией о созданном пользователе и поддерживаемых механизмах аутентификации.
Удаление MongoDB
Если MongoDB больше не нужен, удалите службу и данные.
Остановите службу:
systemctl stop mongodУдалите пакет и связанные конфигурации:
apt-get remove mongodb-org --purgeУдалите каталог данных (и журналы, если нужно):
rm -rf /var/lib/mongodbДополнительно: проверьте и удалите /var/log/mongodb, если вы хотите полностью очистить следы установки.
Базовое усиление безопасности
- Ограничьте доступ: настройте bind_ip в /etc/mongod.conf (например, 127.0.0.1 или конкретные IP). По умолчанию MongoDB слушает на localhost.
- Межсетевой экран: откройте порт 27017 только для доверенных хостов или через VPN.
- Включите TLS/SSL для шифрования трафика между клиентами и сервером (используйте реальные сертификаты).
- Используйте SCRAM-SHA-256 (MongoDB поддерживает SCRAM-SHA-1 и SCRAM-SHA-256). Предпочтительнее SCRAM-SHA-256.
- Регулярно делайте резервные копии данных и проверяйте восстановление.
- Ограничьте системные привилегии процесса mongod и используйте AppArmor/SELinux, если требуется.
Чек-листы по ролям
Администратор БД:
- Установить и обновить MongoDB.
- Создать административных пользователей и смарт-политику ролей.
- Настроить бэкапы и мониторинг.
DevOps / Системный инженер:
- Настроить systemd unit, логирование и мониторинг (journalctl, Exporter).
- Защитить сеть (firewall, VPN, TLS).
- Обеспечить восстановление и процедуру отката.
Разработчик:
- Тестировать подключения с учётными данными, использовать безопасное хранилище конфигурации.
- Минимизировать привилегии приложений.
Отладка и распространённые проблемы
- Служба не запускается: проверьте журнал systemd:
journalctl -u mongod -b --no-pager- Проблемы с портом/прослушиванием: проверьте netstat или ss и bind_ip в конфигурации.
- Ошибки аутентификации: убедитесь, что пользователь создан в базе admin и вы используете правильную механику аутентификации.
- Если пакеты не находятся в репозитории: проверьте файл /etc/apt/sources.list.d/mongodb-org.list и доступ к интернету.
Критерии приёмки:
- mongod запущен и активен (systemctl status mongod).
- Вход по madmin успешен, show users показывает созданного администратора.
- Доступ к порту 27017 ограничен фаерволом.
Альтернативные варианты установки
- Docker: запуск MongoDB в контейнере для изоляции и простоты деплоя.
- Официальные пакеты для других версий дистрибутивов — сверяйтесь с документацией MongoDB.
- Менеджеры конфигурации (Ansible/Chef) для автоматизации установки и конфигурации.
Миграция и совместимость
Перед обновлением версии MongoDB:
- Проверьте совместимость формата данных и нативные изменения между релизами на официальном сайте.
- Сделайте полную резервную копию.
- Тестируйте обновление на тестовом стенде перед продакшеном.
FAQ
Q: Можно ли подключаться к MongoDB удалённо после установки?
A: Да, но нужно настроить bind_ip и открыть порт на фаерволе. Рекомендуется использовать TLS и ограничивать доступ по IP/VPN.
Q: Как сменить пароль администратора?
A: Войдите в mongo с правами администратора и используйте db.changeUserPassword(‘madmin’, ‘newPassword’).
Q: Подходит ли этот метод для продакшена?
A: Это базовая инструкция. Для продакшен-среды дополнительно настройте TLS, бэкапы, мониторинг, репликацию и более строгие политики доступа.
Итог
Вы установили MongoDB 4.4 на Debian 11, создали административного пользователя и включили авторизацию. Дальше — настройка TLS, резервного копирования и мониторинга для промышленной эксплуатации.
Важно: всегда храните секреты безопасно и проверяйте официальную документацию MongoDB перед обновлением.
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты