Безопасная настройка сервера производства MongoDB

Эта статья поможет защитить данные, хранящиеся в MongoDB, и подготовить сервер к производству.

Чтобы получить инструкции по установке MongoDB, читайте данную статью.

Примечание: официальную документацию MongoDB можно найти по этой ссылке.

Существует два разных подхода, позволяющих получить доступ к MongoDB. Первый – безопасное подключение через SSH-туннель; второй – открытый доступ к базе данных через Интернет. Конечно, первый способ более безопасен.

Подключение к MongoDB через SSH-туннель

Подключаясь к виртуальному выделенному серверу через SSH-туннель, можно избежать многих потенциальных угроз безопасности. Проблема этого подхода заключается в том, что VPS необходимо полностью заблокировать, оставив открытыми лишь несколько необходимых портов. Рекомендуемая настройка SSH: авторизация при помощи ключа или комбинации “ключ + пароль”.

Чтобы настроить SSH-туннель, нужно убедиться, что:

  • Сервер Mongo поддерживает соединения SSH;
  • база данных Mongo связана с локальным хостом.

Затем запустите следующую команду для инициализации соединения:

# The \s are just to multiline the command and make it more readable
ssh \
-L 4321:localhost:27017 \
-i ~/.ssh/my_secure_key \
ssh_user@mongo_db_server_host_or_ip

Данная команда выполняет следующие действия:

  1. для создания SSH-туннеля нужен только SSH – никаких дополнительных программ и специальных бинарных файлов.
  2. опция -L создаёт SSH-туннель, используя порт 4321 текущей машины, который будет взаимодействовать с портом 27017 хоста “localhost” сервера Mongo.
  3. опция -i говорит, что при создании подключения будет использован SSH-ключ, но не пароль.
  4. строка ssh_user@mongo_db_droplet_host_or_ip – стандартная при создании подключения SSH.

Основной частью команды является опция -L; именно она сообщает приложениям и сервисам, как подключаться к серверу MongoDB.

Подключение через Интернет

Если же SSH-туннелирование вам не подходит, создайте подключение через Интернет. Этот вариант менее безопасен, чем предыдущий, однако существует несколько стратегий повышения безопасности подключения через интернет.

Первый заключается в использовании нестандартного порта. Хотя это скорее техника маскировки, нежели защиты, она просто отключает стандартные адаптеры соединения.

# Откройте конфигурационный файл MongoDB и измените значение следующей строки
port = 27017

Второй способ – привязать MongoDB к IP-адресу сервера приложений; тогда MongoDB сможет только принимать подключения.

# Откройте конфигурационный файл MongoDB и укажите IP сервера приложений
bind_ip = 127.0.0.1

В завершение необходимо настроить аутентификацию MongoDB и установить имя пользователя и пароль; для этого подключитесь к MongoDB в качестве администратора с помощью команды mongo.

Заключение

Пожалуйста, примите к сведению все вышеперечисленные рекомендации по обеспечению безопасности MongoDB. Одним из важнейших условий безопасности, не упомянутым в этой статье, являются фаерволы; в официальной документации можно найти топ 10 фаерволов для MongoDB.

Tags: , , ,

Добавить комментарий