Эта статья поможет защитить данные, хранящиеся в 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
Данная команда выполняет следующие действия:
- для создания SSH-туннеля нужен только SSH – никаких дополнительных программ и специальных бинарных файлов.
- опция -L создаёт SSH-туннель, используя порт 4321 текущей машины, который будет взаимодействовать с портом 27017 хоста “localhost” сервера Mongo.
- опция -i говорит, что при создании подключения будет использован SSH-ключ, но не пароль.
- строка 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.