Лучше терпеть зло, чем причинять зло (У. Моэм).

Как установить MongoDB на Debian 8

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 4,50 из 5)
Загрузка...
12 марта 2017
Как установить MongoDB на Debian 8

Введение

MongoDB представляет собой бесплатную базу данных NoSQL и с открытым исходным кодом, обычно используемую в современных веб – приложениях. Этот учебник поможет вам, как настроить MongoDB на сервере для использовать в производственной среде приложений. Вы будете устанавливать MongoDB и настраивать правила брандмауэра, чтобы ограничить доступ к MongoDB.

Предпосылки

Следуя этому руководству, вам потребуется:

Шаг 1 – Установка MongoDB

MongoDB уже включен в репозиторий Debian, но официальный репозиторий MongoDB предоставляет самую свежую версию и является рекомендуемым способом установки программного обеспечения. На этом шаге мы добавим этот официальный репозиторий на наш сервер.

Debian гарантирует подлинность пакетов программного обеспечения, проверив, что они подписаны с ключами GPG, поэтому мы сначала должны импортировать их ключ для официального репозитория MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

 

После успешного импорта ключа, вы увидите:

Вывод
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

 

Далее, мы должны добавить в apt репозиторий MongoDB так будут знать, куда загружать пакеты.

Выполните следующую команду, чтобы создать файл списка для MongoDB.

echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

 

После добавления деталей репозитория, обновите список пакетов:

sudo apt-get update

 

Теперь установите пакет MongoDB с помощью следующей команды:

sudo apt-get install -y mongodb-org

 

Это устанавливает последнюю стабильную версию MongoDB, наряду с некоторыми полезными инструментами управления для сервера MongoDB.

После того, как MongoDB установлен, запустите службу, и убедитесь, что он запускается при перезагрузке вашего сервера:

sudo systemctl enable mongod.service
sudo systemctl start mongod

 

Затем используйте , systemctl чтобы проверить, что служба запущена правильно:

sudo systemctl status mongod

 

Вы должны увидеть следующий вывод, который указывает, что служба работает:

Вывод
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
   Active: active (running) since Tue 2017-02-28 19:51:51 UTC; 7s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 8958 (mongod)
   CGroup: /system.slice/mongod.service
           └─8958 /usr/bin/mongod --quiet --config /etc/mongod.conf

Feb 28 19:51:51 cart-61037 systemd[1]: Started High-performance, schema-free document-oriented database.

 

Теперь, когда MongoDB успешно установлена, давайте защитим его с помощью программного брандмауэра.

Шаг 2 – Защита MongoDB брандмауэром

В большинстве случаев, MongoDB должны быть доступен только из определенных доверенных местах, таких как другой сервер хостинг приложения. Для выполнения этой задачи, вы можете разрешить доступ по порту MongoDB по умолчанию. При указании IP-адреса другого сервера, которому будет явно разрешено подключение. Мы будем использовать брандмауэр Iptables, чтобы настроить это правило, а также несколько других правил безопасности системы.

Перед тем, как писать какие – либо правила, установите пакет iptables-persistent, так что вы можете сохранить правила, которые вы создаете. Таким образом, правила будут применяться каждый раз, когда вы перезапустите сервер. Выполните следующую команду:

sudo apt-get install iptables-persistent

 

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

Затем удалите все существующие правила, которые могут быть, на всякий случай:

sudo iptables -F

 

Затем добавьте правило, которое позволяет налаженные связи продолжать общаться. Таким образом, наше существующее соединение SSH не будет прервано:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

 

Затем убедитесь, что SSH доступ разрешен:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

 

Если вы планируете подключиться к MongoDB с удаленного сервера, добавьте эти правила, которые позволяют получить доступ к порту MongoDB по умолчанию от сервера приложений:

sudo iptables -A INPUT -s your_other_server_ip -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -d your_other_server_ip -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

 

Затем добавьте эти правила, допускающие трафик на локальном устройстве:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

 

И, наконец, измените политику брандмауэра, чтобы отбросить все другие виды трафика:

sudo iptables -P INPUT DROP

 

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

Кроме того, если вы случайно удалили свои правила, вы будете заблокированы из вашего сервера. Это хорошая идея, чтобы использовать sudo iptables -P INPUT ACCEPT чтобы разрешить трафик, если вам нужно настроить свои правила в будущем. Затем вы можете использовать sudo iptables -P INPUT DROP для блокировки, как только вы будете уверены, что все настроены правильно снова.

Убедитесь в том, что правила выглядят правильно:

sudo iptables -S

 

Вы должны увидеть вывод, подобный этому:

Output
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s your_other_server_ip/32 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -d your_other_server_ip/32 -p tcp -m tcp --sport 27017 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

 

И, наконец, сохранить правила:

netfilter-persistent save

 

Чтобы узнать больше об правилах брандмауэра, взгляните на Как использовать Iptables в Linux.

Шаг 3 – Активация доступа к внешним серверам (необязательно)

Текущие версии MongoDB не принимают внешние подключения по умолчанию. Если вы ограничили доступ к определенным IP-адресам с брандмауэром, вы можете изменить конфигурацию MongoDB, чтобы подключить удаленные соединения.

Отредактируйте файл конфигурации MongoDB:

sudo nano /etc/mongod.conf

 

Найдите этот раздел:

mongod.conf
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

 

MongoDB прослушивает локальный адрес замыкая на себя, поэтому он будет принимать только локальные соединения. Измените значение bindIp так, чтобы оно включало в себя IP – адрес сервера MongoDB:

mongod.conf
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1, your_server_ip

 

Сохраните файл и выйдите из редактора.

Затем перезапустите MongoDB, чтобы применить изменения:

sudo systemctl restart mongod

 

Теперь Ваш удаленный компьютер должен иметь возможность подключиться. Тем не менее, вы также можете включить проверку подлинности, чтобы обезопасить вашу базу данных еще больше.

Вывод

Не забудьте создать резервную копию данных и прочитать, как шифровать данные при транспортировке.

Как установить MongoDB на Debian 8

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 115

Если статья понравилась, то поделитесь ей в социальных сетях:

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

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close