Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды 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 Security School от Сodeby

Мы запустили свою онлайн школу по информационной безопасности. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного в курсе Paranoid


Добавьте дополнительного пользователя в 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 предоставляет все необходимые инструменты для обновления вашей системы, а также позволяет легко обновлять версии..

Перевод: Анна Давыдова
Источник: cyberciti.biz

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


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

Как установить PHP 5.6 на Linux Mint (Ubuntu)... Установить сервер на Linux не просто легко, а очень легко. Но в репозиториях всегда устаревшие версии программ. Например, PHP там ветки 5.5. Ubuntu (...
Установка Kali на HP ARM Chromebook The HP ARM Chromebook — это ультрапортативный лэптоп. Это было довольно сложной задачей, но теперь у нас есть образ Kali который великолепен н...
Получение данных из базы данных Mysql с помощью ме... Mysql метод ExecuteReader В этой статье хочу показать на простом примере, как можно получить данные из базы данных Mysql с помощью метода ExecuteRead...
Как автоматически запускать контейнеры LXD во врем... Я использую виртуальную машину LXD («Linux container»). Как настроить контейнер LXD таким образом, чтобы он запускался при загрузке операционной систе...
Linux / Unix: “-bash: python: command not found (-... Linux / Unix: "-bash: python: command not found (-bash: python: команда не найдена)" ошибка и ее решение Я новый пользователь и пытаюсь запустить п...