One place for hosting & domains

      удаленного

      Настройка удаленного доступа для MongoDB в Ubuntu 20.04


      Предыдущая версия данного руководства была написана Мелиссой Андерсон.

      Введение

      MongoDB (или Mongo) — это документоориентированная база данных с открытым исходным кодом, используемая во многих современных веб-приложениях. По умолчанию она допускает только те подключения, которые исходят с того же сервера, на котором она установлена. Если вы хотите управлять MongoDB удаленно или подключить ее к отдельному серверу приложения, вам необходимо будет внести несколько изменений в исходную конфигурацию по умолчанию.

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

      Предварительные требования

      Для завершения данного обучающего модуля вам потребуется:

      • Сервер на базе Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям руководства Начальная настройка сервера для Ubuntu 20.04.
      • MongoDB, установленная на сервере. Данное обучающее руководство предполагает, что у вас уже установлена MongoDB версии 4.4 или более новой. Вы можете установить эту версию, следуя указаниям руководства Установка MongoDB в Ubuntu 20.04.
      • Второй компьютер, с которого вы получите доступ к вашему экземпляру MongoDB. Для простоты в данном руководстве мы будем считать, что этот компьютер — это еще один сервер Ubuntu 20.04 с пользователем без привилегий root и правами администратора и брандмауэром UFW, настроенным в соответствии с руководством Начальная настройка сервера Ubuntu 20.04. Однако шаги 1 и 2, которые описывают фактическую процедуру обеспечения удаленного подключения на сервере базы данных, можно выполнять независимо от используемой операционной системы удаленного компьютера.

      Наконец, мы настоятельно рекомендуем вам обеспечить безопасность системы MongoDB путем создания учетной записи пользователя с правами администратора для базы данных и обеспечения аутентификации, хотя это и не требуется для выполнения данного обучающего модуля. Для этого следуйте указаниям руководства Обеспечение безопасности MongoDB в Ubuntu 20.04.

      Шаг 1 — Настройка брандмауэра

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

      Для начала проверьте порт, на котором прослушивается ваша система MongoDB, с помощью команды lsof. Эта команда обычно возвращает список со всеми открытыми файлами в системе, но при сочетании с опцией -i она указывает только сетевые файлы или потоки данных.

      Следующая команда перенаправляет вывод команды lsof -i на команду grep, которая ищет строку с именем mongo:

      • sudo lsof -i | grep mongo

      Этот пример вывода показывает, что MongoDB прослушивает подключения на порту по умолчанию 27017:

      Output

      mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)

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

      Запустите следующую команду, убедившись, что вы поменяли trusted_server_ip на IP-адрес доверенного удаленного компьютера, который вы будете использовать для доступа к вашему экземпляру MongoDB:

      Примечание. Если вывод предыдущей команды показал, что ваша установка MongoDB выполняет прослушивание не на порту по умолчанию, используйте номер этого порта вместо 27017 в данной команде.

      • sudo ufw allow from trusted_server_ip to any port 27017

      В дальнейшем, если вы захотите получить доступ к MongoDB с другого компьютера, запустите эту команду снова с IP-адресом нового компьютера вместо trusted_server_ip.

      Вы можете проверить изменение параметров брандмауэра с помощью ufw:

      Вывод покажет, что трафик к порту 27017 с удаленного сервера сейчас разрешен:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW trusted_server_ip OpenSSH (v6) ALLOW Anywhere (v6)

      Дополнительные настройки брандмауэра для ограничения доступа к службам можно найти в разделе Основы UFW: распространенные правила и команды брандмауэра.

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

      Шаг 2 — Настройка публичного bindIP

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

      Чтобы разрешить удаленные подключения, необходимо отредактировать файл конфигурации MongoDB — /etc/mongod.conf — для дополнительной привязки MongoDB к публичному маршрутизированному IP-адресу вашего сервера. Таким образом ваша система MongoDB сможет прослушивать подключения к вашему серверу MongoDB, выполненные с удаленных компьютеров.

      Откройте файл конфигурации MongoDB в предпочитаемом текстовом редакторе. В следующем примере используется nano:

      • sudo nano /etc/mongod.conf

      Найдите раздел network interfaces (сетевые интерфейсы), а затем значение bindIp:

      /etc/mongod.conf

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

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

      /etc/mongod.conf

      . . .
      # network interfaces
      net:
        port: 27017
        bindIp: 127.0.0.1,mongodb_server_ip
      
      . . .
      

      Сохраните и закройте файл. Если вы используете nano, нажмите CTRL+X, Y, затем ENTER.

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

      • sudo systemctl restart mongod

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

      Шаг 3 — Тестирование удаленного подключения

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

      Примечание. Как указано в разделе «Предварительные требования», это обучающее руководство предполагает, что ваш удаленный компьютер — это еще один сервер на базе Ubuntu 20.04. Процедура по обеспечению удаленных подключений, описанная в шагах 1 и 2, должна работать независимо от операционной системы вашего удаленного компьютера. Однако методы тестирования, описанные в этом шаге, не являются универсальными для всех операционных систем.

      Один из способов проверки возможности подключения вашего доверенного удаленного сервера к экземпляру MongoDB — это использование команды nc. nc (сокращенно от netcat) — это утилита, используемая для установки сетевых подключений с TCP или UDP. Она используется для тестирования в подобных случаях, поскольку позволяет вам указать как IP-адрес, так и номер порта.

      Вначале войдите на ваш доверенный сервер с помощью SSH:

      • ssh sammy@trusted_server_ip

      Затем запустите команду nc, которая включает опцию -z. Это ограничивает nc только сканированием прослушивающего демона на целевом сервере без отправки каких-либо данных. Напомним из руководства по установке, что MongoDB работает как служебный демон, что делает эту опцию полезной для тестирования подключения. Также она включает опцию v, которая увеличивает детализацию команды, благодаря чему netcat возвращает некоторые выводы, которые иначе не были бы получены.

      Запустите следующую команду nc с вашего доверенного удаленного сервера и не забудьте заменить mongodb_server_ip IP-адресом сервера, на котором вы установили MongoDB:

      • nc -zv mongodb_server_ip 27017

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

      Output

      Connection to mongodb_server_ip 27017 port [tcp/*] succeeded!

      Если вы установили совместимую версию оболочки mongo на вашем удаленном сервере, вы можете на данном этапе подключаться напрямую к экземпляру MongoDB, установленному на сервере хоста.

      Одним из способов подключения является URI строки подключения, например:

      • mongo "mongodb://mongo_server_ip:27017"

      Примечание. Если вы выполнили рекомендации из руководства Обеспечение безопасности MongoDB в Ubuntu 20.04, у вас будет закрыт доступ к вашей базе данных от пользователей, которые не прошли аутентификацию. В этом случае вам нужно будет использовать URI с указанием действительного имени пользователя, например:

      • mongo "mongodb://username@mongo_server_ip:27017"

      Оболочка автоматически попросит ввести пароль пользователя.

      Этим вы подтверждаете, что ваш сервер MongoDB может принимать соединения с доверенного сервера.

      Заключение

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

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



      Source link

      Настройка удаленного рабочего стола с помощью X2Go в Ubuntu 20.04


      Автор выбрал Software in the Public Interest (SPI) для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Обычно серверы на базе Linux не имеют предустановленного графического пользовательского интерфейса. Если вы хотите запустить приложение с графическим интерфейсом на вашем экземпляре, стандартным решением может быть использование системы Virtual Network Computing (VNC). К сожалению, решения VNC могут быть низкопроизводительными и небезопасными. Многие из них также требуют дополнительной ручной настройки. В отличие от них X2Go предлагает функционирующий «облачный рабочий стол» со всеми преимуществами вычислительной системы с быстрой сетью, которая всегда онлайн, доступна удаленно и легко масштабируется. Также X2Go характеризуется большим быстродействием и надежностью по сравнению с многими решениями VNC.

      В этом обучающем руководстве мы будем использовать X2Go для создания среды рабочего стола XFCE в Ubuntu 20.04 с удаленным доступом. Этот облачный рабочий стол будет включать те же утилиты, которые вы бы получили при установке Ubuntu 20.04 и среды XFCE на ваш ПК (почти такие же, как при настройке Xubuntu).

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

      • Вам необходим доступ к операционной системе на базе Linux со средой рабочего стола, но вы не можете установить ее на ваш ПК.
      • Вы работаете на нескольких устройствах в нескольких местоположениях и хотите создать постоянную рабочую среду с одними и теми же инструментами, внешним видом, файлами и одинаковой производительностью.
      • Ваш интернет-провайдер предлагает вам небольшую пропускную способность, а вам необходим доступ к десяткам или сотням гигабайт данных.
      • Вы работаете над проектами с длительным временем выполнения, из-за чего вы не можете пользоваться вашим локальным компьютером несколько часов или даже дней. Представьте, что вы работаете над большим проектом, и ваш ноутбук будет занят 8 часов. Вы не сможете посмотреть фильм или выполнить еще какую-либо ресурсоемкую операцию, пока идет работа над вашим проектом. Но если вы будете выполнять эту работу на сервере, ваш компьютер будет свободен для других задач.
      • Вы работаете в команде, поэтому вам нужен общий доступ для всех к одному компьютеру для совместной работы над проектом.

      Предварительные требования

      Перед началом работы вам потребуется следующее:

      • Экземпляр Ubuntu 20.04 x64 с минимум 2 ГБ оперативной памяти. 2 ГБ — это минимум, оптимальным же является объем памяти 4 ГБ или больше, особенно если вы планируете работать с приложениями, которые используют много памяти. По желанию вы можете использовать дроплет DigitalOcean.

      • Пользователь с привилегиями sudo и ключ SSH. Воспользуйтесь этим руководством, чтобы начать работу: Начальная настройка сервера с помощью Ubuntu 20.04. Убедитесь, что вы выполнили шаг 4 и настроили брандмауэр для ограничения всех подключений, за исключением OpenSSH.

      Шаг 1 — Установка среды рабочего стола на сервер

      Когда вы настроили сервер и брандмауэр, можно переходить к установке графической среды для сервера X2Go.

      Сначала обновите информацию диспетчера пакетов о самой последней доступной версии ПО:

      В этом обучающем руководстве мы устанавливаем XFCE в качестве среды рабочего стола. XFCE не использует графические эффекты, такие как наложение изображения, что делает его совместимым с X2Go и оптимизирует обновления экрана. Для справки, такие среды рабочего стола, как LXDE и MATE (с отключенной функцией наложения изображений) также работаю хорошо, но для их установки вам придется заменить команду из данного руководства. Например, вместо sudo apt-get install xubuntu-desktop вам нужно ввести sudo apt-get install lubuntu-desktop для установки LXDE.

      При установке XFCE можно выбрать два варианта: минимальный пакет Minimal Desktop Environment или полный пакет Full Desktop Environment. Выбор зависит от ваших потребностей, о чем мы поговорим далее. Выберите один вариант из двух.

      Полный пакет Full Desktop Environment

      Рекомендуется для большинства случаев использования. Если вы не хотите подбирать вручную каждый необходимый вам компонент и предпочитаете получить набор пакетов по умолчанию, например текстовый процессор, веб-браузер, почтовый клиент и другие предустановленные программы, выбирайте xubuntu-desktop.

      Установка и настройка полного пакета Full Desktop Environment. Этот пакет подобен тому, что вы бы получили при установке Xubuntu с загрузочного диска или карты памяти USB на ваш локальный ПК.

      • sudo apt-get install xubuntu-desktop

      При выборе диспетчера отображения выбирайте lightdm.

      Выбор lightdm в качестве диспетчера отображения

      Минимальный пакет Minimal Desktop Environment

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

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

      Установите xfce4 и все дополнительные зависимости, необходимые для его поддержки:

      • sudo apt-get install xubuntu-core

      Вы установили графическую среду. Теперь вы можете определить способ удаленного просмотра.

      Шаг 2 — Установка X2Go на сервер

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

      В предыдущих версиях Ubuntu (до 18.04) x2goserver не был включен в репозитории по умолчанию, поэтому вы были вынуждены выполнять дополнительные действия для установки пакета программного пакета. Мы оставим здесь ссылку на случай, если пакеты уберут из будущих версий Ubuntu. К счастью, Ubuntu 20.04, кодовое название Focal Fossa, имеет необходимый пакет в репозиториях по умолчанию, поэтому установка пройдет быстрее.

      Для установки X2Go на ваш сервер введите следующую команду:

      • sudo apt-get install x2goserver x2goserver-xsession

      На этом этапе ваш сервер не требует дальнейшей настройки. Однако помните, что, если вы следовали инструкциям по настройке ключей SSH из руководства по начальной настройке сервера с помощью Ubuntu 20.04, вам потребуется иметь закрытые ключи SSH для каждого используемого локального устройства. Если вы обошлись без настройки закрытого ключа SSH, убедитесь, что вы выбрали надежный пароль.

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

      Вы настроили ваш сервер. Введите exit или закройте окно терминала. Остальные шаги будут сосредоточены на настройке клиента на вашем локальном компьютере.

      Шаг 3 — Установка локального клиента X2Go

      X2Go готов к использованию без предварительной подготовки. Если вы используете Windows или Mac OS X на вашем локальном компьютере, вы можете загрузить программное обеспечение для клиента X2Go здесь. Если вы используете Debian или Ubuntu, вы можете установить клиент X2Go с помощью следующей команды на локальном компьютере:

      • sudo apt-get install x2goclient

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

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

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

      Шаг 4 — Подключение к удаленному рабочему столу

      При первом открытии клиента X2Go должно появиться окно. Если не появится, нажмите вкладку Session в меню вверху слева и выберите New session … (Новый сеанс).

      Скриншот клиента X2Go — Создание нового сеанса

      В поле Session name (Имя сеанса) введите что-то, что поможет отличать серверы друг от друга. Использование имени сеанса особенно важно, если вы планируете подключить несколько компьютеров.

      Введите IP-адрес вашего сервера или полное доменное имя (FQDN) в поле Host в разделе Server.

      Введите имя пользователя, которое использовалось для подключения SSH в поле Login.

      Так как на шаге 2 вы установили XFCE, выберите XFCE в качестве типа сеанса Session type.

      Так как вы подключились к серверу с помощью ключей SSH, то в заключение нажмите значок папки рядом с Use RSA/DSA key for ssh connection и выберите ваш закрытый ключ. Если вы решили не использовать защитные ключи SSH, оставьте это поле пустым. Клиент X2Go будет запрашивать пароль при каждом входе.

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

      Нажмите кнопку OK. Теперь вы можете начать графический сеанс, нажав на белое поле с названием вашего сеанса, расположенное вверху справа.

      Главное окно X2Go — Список сеансов

      Если вы работаете на OS X на вашем локальном компьютере, OS X может предложить установить XQuartz для запуска X11. В этом случае следуйте инструкциям по установке.

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

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

      Примечание. Первые два варианта могут работать некорректно на современных версиях Windows. Вы можете попробовать использовать их, если в более поздних версиях X2Go проблемы будут устранены. Если нет, просто не используйте эти комбинации клавиш в будущем.

      CTRL+ALT+F включает и выключает полноэкранный режим. Работа в полноэкранном режиме может быть похожа на работу на локальном рабочем столе. При полноэкранном режиме сочетание клавиш будут захвачены удаленным устройством, а не локальным компьютером.

      CTRL+ALT+M уменьшает удаленный просмотр, даже если вы находитесь в полноэкранном режиме.

      CTRL+ALT+T закрывает сеанса, но графический интерфейс остается запущенным на сервере. Это быстрый способ отключения без выхода из системы или закрытия приложений на сервере. То же самое произойдет, если вы нажмете кнопку закрытия окна.

      Есть два способа, как завершить удаленный сеанс и закрыть все графические программы, запущенные в нем. Вы можете удаленно выйти из меню запуска XFCE или же нажать на кнопку, отмеченную кружком и небольшой чертой (как значок «включено/спящий режим») в нижнем правом углу основной части экрана X2Go.

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

      Главное окно X2Go — Кнопка завершения сеанса

      Теперь вы успешно получили доступ к удаленному рабочему столу и настроили его.

      Заключение

      В этом обучающем руководстве вы использовали X2Go для создания надежной удаленной среды графического пользовательского интерфейса для операционной системы Ubuntu. Теперь, когда система установлена и запущена, вы можете использовать рабочий стол следующим образом:

      Если вы хотите узнать больше, посетите сайт с официальной документацией X2Go.



      Source link