Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

MongoDB подвергается различным атакам. Это являются распространенным явлением. Я использую его для хранения данных на моем публичном облачном сервере под управлением Ubuntu Linux. Как защитить и обезопасить сервер MongoDB nosql на операционной системе Linux или Unix?

MongoDB — бесплатный сервер баз данных документов NoSQL с открытым исходным кодом. Он используется веб-приложением для хранения данных на общедоступном сервере. Защита MongoDB имеет решающее значение. Крекеры и хакеры получают доступ к небезопасному MongoDB для кражи данных и удаления данных из непроверенных или плохо настроенных баз данных. В этом руководстве вы узнаете, как защитить MongoDB или сервер, работающий с облачным сервером.

Конфигурации MongoDB

  1. Расположение файла по умолчанию /etc/mongodb.conf
  2. Порт по умолчанию TCP 27017
  3. MongoDB версия сервера: 3.4.1

Ограничение воздействия сети

Отредактируйте /etc/mongodb.conf или /usr/local/etc/mongodb.conf  файл, для этого введите:

Если ваше веб-приложение и MongoDB (mongod сервер) установлены на одной и той же машине, выставьте IP адрес MongoDB на 127.0.0.1. Это отрезает связь напрямую из интернета:

Тем не менее, возможно, что у вас есть два или более серверов вроде:

Как защитить MongoDB на Linux или Unix серверах

Рис.01: Пример современного веб-приложения и MonoDB, работающих внутри вашей VLAN.

Вам нужно привязать mongod к 192.168.1.7, чтобы к нему можно было получить доступ только через VLAN:

Директива bind_ip . Убедитесь, что MongoDB работает в надежной сетевой среде и ограничивает интерфейсы, на которых экземпляры MongoDB прослушивают входящие соединения.

Изменяем порт по умолчанию

Вы также можете изменить порт по умолчанию, если захотите. В данном примере мы меняем его на 2727:

Сохраните изменения и выйдете их файла. Вам нужно перезапустить MongoDB, для этого введите:

Или если вы используете FreeBSD Unix:

Проверьте открытые порты с помощью команды netstat:

Примеры вывода данных:

Настройка контроля доступа

Вам необходимо добавить администратора пользователя в MongoDB без контроля доступа, а затем включить контроль доступа. По умолчанию любой может подключиться к MongoDB, и это не очень хорошая идея. Например:

Подключение mongo shell к экземпляру с любым типом аутентификации

Подключение mongo shell к экземпляру с любым типом аутентификации

Подключение к экземпляру DB

Создание пользователя-администратора

Внимание: Создайте пользователя с надежным паролем. Для демонстрационной цели я использую «mySuperSecretePasswordHere», но вы должны использовать сильный пароль.

Вам нужно использовать базу данных администратора. Введите следующую команду в > запрос для создания своего суперпользователя:

Далее создайте пользовательский vivek в admin базе данных с ролью userAdminAnyDatabase:

Примеры вывода данных:

Отключите mongo shell с помощью ввода следующей команды:

Перезапустите экземпляр MongoDB

Отредактируйте файл /etc/mongodb.conf or /usr/local/etc/mongodb.conf, для этого введите:

Включите безопасность:

Сохраните изменения и закройте файл. Перезапустите экземпляр MongoDB:

Или же если вы используете FreeBSD Unix:

Чтобы выполнить аутентификацию во время соединения с помощью пользовательского vivek и пароля для базы данных администратора:


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Добавьте дополнительного пользователя в DB. Для начала создайте новую базу данных под названием «nixcraft»:

Создайте пользователя с именем ‘nixdbuser’ и паролем ‘myKoolPassowrd’ для nixcraft db:

Примеры вывода данных:

Теперь вы можете подключиться к nixcraft db следующим образом:

Это гарантирует, что только уполномоченный администратор с именем «vivek» может выполнять команды, или nixdbuser может выполнять операцию чтения / записи на nixcraft db. Вы можете проверить это следующим образом, вставив записи:

Примеры вывода данных:

Включает контроль доступа и обеспечивает аутентификацию

Рис.02: Включает контроль доступа и обеспечивает аутентификацию

Используйте брандмауэр

Используйте брандмауэры, чтобы ограничить доступ других объектов к вашему серверу mongodb. В этом примере разрешите вашим серверам приложений доступ к базе данных с помощью ufw на Ubuntu или Debian Linux

Разрешите SSL

Используйте SSL между вашим клиентом MongoDB и сервером при подключении к вашему серверу Mongodb через Интернет. В противном случае ваша сессия может подвергнуться атаке «человек в середине». Моя настройка такова:

Введите следующую команду – сертификат сервера

Пример вывода данных:

MongoDB SSL сертификат настройки сервера

Рис.03: MongoDB SSL сертификат настройки сервера

Создайте .pem  файл с ключом и сертификатом:

Введите следующую команду – сертификат клиента

Пример вывода данных:

MongoDB SSL устанавливает сертификат клиента

Рис.04: MongoDB SSL устанавливает сертификат клиента

Создайте клиентский файл .pem с ключом и сертификатом:

Настройте mongod и mongos для TLS/SSL сервера

Отредактируйте файл /etc/mongodb.conf or /usr/local/etc/mongodb.conf, для этого введите:

Обновите config файл следующим образом:

Сохраните и закройте файл.Перезапустите экземпляр MongoDB :

Или, если вы используете FreeBSD Unix:

Конфигурация TLS / SSL для MongoDB клиентов

Синтаксис интерфейса mongo shell следующий:

Примеры вывода данных:

Соединение с клиентом MongoDB SSL с использованием SSL-сертификата

Рис.05: Соединение с клиентом MongoDB SSL с использованием SSL-сертификата

Ниже приведен клиент Python для подсоединения к разрешенному SSL MongoDB:

Или

Установите патч и запустите обновленную версию вашей операционной системы и MongoDB

Применение патчей безопасности является важной частью поддержки Linux или Unix-сервера. Linux предоставляет все необходимые инструменты для обновления вашей системы, а также позволяет легко обновлять версии..

<< Контент скрыт от гостей. Зарегистрируйтесь, чтобы снять ограничение ! >>

Это интересно:


Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение. Подробнее ...

Похожие темы

Новости софта от 24 сентября 2014 года (MySQL, MiA... MySQL Community Server (проще говоря, это и есть MySQL, бесплатная версия, которой все пользуются) обновился до версий MySQL Community Server 5.6.21...
Установка проприетарного драйвера AMD ATI fglrx на... Команда разработчиков Kali добавила новую версию проприетарного драйвера AMD ATI fglrx в репозитории Kali Linux. Это означает, что теперь его устано...
Как узнать географическое расположение по IP адрес... Если вы хотите выяснить где физически на земле размещён определённый IP адрес (или веб-сайт), вы можете попробовать несколько онлайн поисковых служб...
DeaDBeeF — полный аналог foobar2000 на Linux... Любите ли вы музыку также, как люблю её я? Чего может не хватать аудиофилу на Linux? Хорошего музыкального плеера, который бы поддерживал без проблем ...
Установка MySQL for Visual Studio Как установить MySQL for Visual Studio? MySQL for Visual Studio это продукт от компании Microsoft, который предоставляет дополнительные инструменты д...