Nextcloud android доступ через недоверенный домен

Настройка reverse proxy для Nextcloud и ONLYOFFICE

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

Одна из самых популярных интеграций — с open-source системой Nextcloud, которая позволяет создать свое облачное хранилище. К примеру, у вас есть документы, таблицы и презентации, которыми вы хотите поделиться с другими пользователями, и сервер (как вариант — тачка в DigitalOcean). Вы устанавливаете туда Nextcloud (или ownCloud, от которого он, собственно, форкнулся), подключаете редакторы документов и получаете возможность работать с этими документами совместно.

Большинство вариантов интеграции описаны у нас в документации. Но иногда всплывают интересные пользовательские кейсы. Например такой: как сконфигурировать прокси-сервер для Nextcloud и ONLYOFFICE в случае, если все три сервиса установлены на разных серверах (Nextcloud, редакторы, прокси). Такое может произойти, если существует сложная система, где и редакторы документов, и система управления документами являются частью бОльшей системы с множеством сервисов.

Замечание: Nextcloud и редакторы размещают либо одном сервере, либо на разных. И в том, и в другом случае необходимо иметь прокси-сервер для правильной работы редакторов, который можно поднять на одном из этих серверов.

Дано:

Три сервера: на первом установлен nginx (http://nginx), на втором Nextcloud (http://nextcloud), на третьим редакторы докуменов (http://onlyoffice). Все было установлено с помощью docker, использован порт 80.

Задача:

Настроить nginx таким образом, чтобы при запросе на http://nginx открывался Nextcloud. Настроить Nextcloud на работу с редакторами документов, доступными по адресу http://nginx/editors

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

  • Настройка прокси для Nextcloud
  • Настройка прокси для редакторов документов, чтобы они были доступны по адресу http://nginx/editors
  • Установка коннектора в Nextcloud и его настройка
    (Коннектор — это небольшая программа, которая позволяет связать Nextcloud и редакторы: добавляет новое меню настроек, кнопки создания документов, таблиц и презентаций и т.д.)

Прокси для Nextcloud

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

Доверенные домены — это белый список доменов, с которых может быть произведен вход. Если попробовать открыть Nextcloud через прокси без добавления его домена в список, то мы увидим ошибку.

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

Нужные нам настройки находятся в nginx контейнере по пути /etc/nginx/conf.d/default.conf. Приводим этот файл к следующему виду:

Обратите внимание на слеш в конце пути proxy_pass.

Обновляем настройки nginx командой

Теперь нужно добавить домен http://nginx в доверенные домены Nextcloud. Для этого, нужно открыть конфиг в контейнере Nextcloud, который находится тут /var/www/html/config/config.php. В нем нужно найти (или добавить) секцию trusted_domain, добавить туда адрес nginx. После изменений эта часть конфига будет выглядеть так:

Прокси для редакторов документов

Снова открываем default.conf на сервере nginx и добавляем еще один location:

Но для работы редакторов этого недостаточно. По умолчанию редактор документов генерирует ссылки на ресурсы, используя тот адрес, который приходит в запросе. И так как редактор ничего не знает про прокси-сервер, он будет генерировать ссылки без учета виртуального пути (например, http://nginx/apps/files/). Это неверно, потому что файлы/apps/files/ находятся на сервере http://onlyoffice/. Чтобы это исправить, нужно указать в заголовке запроса тот путь, относительно которого должны генерироваться ссылки. Это делается с помощью заголовка “X-Forwarded-Host”.

Добавим следующий код в начало файла конфигурации:

Еще два важных заголовка — это Upgrade и Connection. Они позволяют использовать websocket протокол для работы редакторов документов. Без них редакторы тоже будут работать, но не так эффективно, потому что вместо websocket будет использоваться xhr.

Итоговый default.conf файл будет выглядеть следующим образом:

Установка коннектора в Nextcloud и его настройка

Коннектор находится в opensource (github), и его можно установить вручную, но проще это сделать через Nextcloud App Store. Сразу после установки, в настройках появится новый пункт меню, который отвечает за конфигурацию коннектора. Добавляем туда адрес редакторов документов (http://nginx/editors/).

Таким образом можно установить ONLYOFFICE и Nextcloud и сконфигурировать их.

В заключение

Получилось что-то среднее между статьей и инструкцией. Надеюсь будет полезно.

Я специально опустил некоторые детали при настройке, потому что хотел описать только необходимые вещи, чтоб это было достаточно просто и понятно. Но если что-то показалось запутанным — пишите в комментариях, я постараюсь объяснить. Спасибо за внимание.

Читайте также:  Top app bar android

Источник

NextCloud не работает через клиента

Подскажите, установил nextcloud на отдельной ВМ в гипервизоре proxmox. Настроил nginx на проксирование в эту ВМ. Через браузер все прекрасно работает по доменному имени захожу, пытаюсь подключить через клиент и там возникает проблема. Приложение пытается залогиться после ввода имени сервера по локальному адресу. Как исправить, чтоб клиент долбился по доменному адресу,а не пытался авторизоваться по ip локальному?

Возможно стоит вправить на клиенте /etc/hosts и /var/www/nextcloud/config/config.php

Попробуй убрать из trusted_domains локальный адрес.

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

Указать в настройках приложения доменное имя.

если убрать, то ругается на «Доступ через недоверенный домен»

Ну, так добавить в доверенные адреса домен или его ip.

Я сам домен не добавлял, иди нет его у меня, а с «внешним» ip все работало отлично.

если оставить один домен, то ругается на «Доступ через недоверенный домен». Если к домену еще добавить локальный адрес, то работает только веб морда. Через клиента он пытается авторизоваться через локальный адрес, который естественно извне не доступен. Вопрос в том как сделать авторизацию через клиента по домену?

Источник

NextCloudPi Documentation

Вы можете выполнить эти шаги из TUI или из WebUI.

Перенаправление портов

Большинство домашних роутеров поставляются с брандмауэром, который блокирует внешние запросы для внутренних компьютеров. Чтобы получить доступ к вашему Nextcloud из-за приделов вашего дома, вы должны разрешить порты 80 и 443, и направить их на ваш NextcloudP.

Перенаправление портов может быть настроено в интерфейсе конфигурации вашего роутера, или с помощью универсального NextCloudP клиента Plug-and-Play (UPnP) nc-forward-ports , который сделает процедуру еще проще.

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

  1. Перейдите к nc-forward-ports в TUI или в WebUI.
  2. Установите порты, на которых работает ваш Nextcloud. (Рекомендуется использовать настройки по умолчанию)

Если вы хотите получить доступ к Nextcloud из-за пределов вашего дома, вам понадобится домен (ex cloud.com) или суб-домен (cloud.example.com). Домены это имена, которые указывают ваш IP-адрес. Но большинство домашних пользователей не имеют статический IP-адрес. У вас наверно тоже есть динамический IP-адрес, а это значит что время от времени он меняется. Поэтому, если вы хотите чтобы ваш суб-домен всегда указывал ваш IP-адрес, вам нужна служба DDNS (Динамический DNS).

NextCloudPi имеет два разных DDNS клиента для двух разных DDNS провайдеров (FreeDNS, No-IP). Вы должны зарегистрировать учетную запись с ихнего веб-сайта. Там вы можете создать бесплатный суб-домен, или соединить домен который вы приобрели.

Внимание: Вам понадобится только одна служба DDNS.

Прочитайте это руководство , если у вас будут проблемы доступа с URL-адресом домена DDNS из вашего дома.

FreeDNS (freedns.afraid.org)

Запустите TUI ( nextcloud-config ) или используйте WebUI. Войдите в freedns.afraid.com и нажмите «Динамический DNS». Нажмите правой кнопкой мыши на «Прямой URL» который рядом с вашей записью. Вставьте его в текстовый редактор, и выберите только хеш (символы после «?»).

  1. Перейдите к freeDNS в TUI или в WebUI.
  2. Поменяйте ‘ACTIVE’ на ‘yes’.
  3. Поменяйте ‘ОБНОВИТЬ ХЭШ’ и введите ваш (удалите пример и скопируите с ctrl+shift+V)
  4. Поменяйте ‘ДОМЕН’ и введите Домен который вы зарегистрировали.
  5. (Необязательно) Поменяйте ‘ОБНОВИТЬ ИНТЕРВАЛ’ на интервал времени, в течение которого вы хотите чтобы клиент обновил ваш IP-адрес (динамические IP-адреса редко меняются, поэтому вы можете оставить значение по умолчанию (5 минут)).
  6. Нажмите Выполнить или Пуск.

Теперь попробуйте посетить ваш суб-домен, который вы зарегистрировали в своем браузере. Он должен перейти к Nextcloud экземпляру.

No-IP (www.noip.com)

Запустите TUI ( nextcloud-config ) или используйте WebUI.

  1. Перейдите к no-ip в TUI или в WebUI. 2.Поменяйте ‘ACTIVE’ на ‘yes’. 3.Поменяйте ‘USER’ (ПОЛЬЗОВАТЕЛЬ) на свое имя пользователя. 4.Поменяйте ‘PASS’ (ПАРОЛЬ) на свой пароль. 5.Поменяйте ‘DOMAIN’ (ДОМЕН) с вашим (суб)Доменом. 6.Поменяйте ‘TIME’ (ВРЕМЯ) с интервалом времени, в течение которого вы хотите обновить запись DNS. По умолчанию 30 минут. 7.Нажмите Выполнить или Пуск.

Теперь попробуйте посетить ваш суб-домен, который вы зарегистрировали в своем браузере. Он должен перейти к Nextcloud экземпляру.

SSL-сертификат

Чтобы доверить подключению к сайту и отправить ваше имя пользователя/пароль, вам нужен сертификат SSL. Сертификат SSL гарантирует что связь зашифрована, и всё что вы отправляете может просматривать только сервер, а не кто-то кто олицетворяеть его. По умолчанию NextCloudPi предоставляет сертификат SSL который самоподписанный, для шифрования вашей информации, но рекомендуется использовать сертификат из центра сертификации. NextCloudPi может выполнить Let’s Encrypt(давайте зашифровать) клиент который получает сертификат для вашего (суб)Домена с https://letsencrypt.org . NextCloudPi настраивает веб-сервер так чтобы вы могли использовать сертификат, и обновляет его раз в месяц.

Чтобы настроить автоматически подписанные SSL-сертификаты (запустите TUI (‘nextcloud-config’) или используйте WebUI):

  1. Перейдите к ‘letsencrypt’ в TUI или в WebUI.
  2. Поменяйте ‘ДОМЕН’ с вашим (суб)Доменом.
  3. Поменяйте ‘ЭЛ. АДРЕС’ с вашим эл.адресом.(Рекомендуется использовать действующий эл.адрес)
  4. Нажмите Выполнить или Пуск.
Читайте также:  Sql клиент kotlin android

Источник

Устанавливаем NexCloud на сервере FreeNAS

Задача:

На имеющемся рабочем сервере FreeNAS установить облачное хранилище NextCloud

Авторизуемся на сервере FreeNAS и переходим в главном меню в раздел “Plugins”. Находим “NextCloud” и устанавливаем

Указываем имя и настройки сети. Если вы хотите, чтобы nextcloud имел одинаковый IP-адрес с сервером FreeNAS, тогда активируем опцию “NAS”. В этом случае nextcloud будет работать на нестандартном для веб-сервера порту. Если в сети есть DHCP-сервер можете активировать соответствующую опцию. Для более детальной настройки воспользуйтесь “Advanced plugin installation” Если всё необходимой настроили, нажимаем “Save” и дожидаемся завершения установки.

Из лога установки видно, что nextcloud имеет локальный адрес класса С

В списке можно увидеть установленный nextcloud сервер. Логин и пароли к серверу можно глянуть , нажав “Post install notes”.

Нажимаем кнопку “Manage” чтобы перейти к веб-интерфейсу nextcloud. В моём случае потребовалось донастроить сервер.

Доступ через недоверенный домен

Обратитесь к администратору. Если вы являетесь администратором этого сервера, отредактируйте параметр «trusted_domains» в файле «config/config.php». Пример настройки можно найти в файле «config/config.sample.php».

Дополнительная информация как это настроить может быть найдена в документации

В главном меню выбираем “Jail” . Кнопной “Edit” можно изменить ip-адрес и настроить всё тоже самое, что было доступно при установке nextcloud. В нашём случае нам необходим доступ к консоли сервера, нажимаем “Shell”

Далее все настройки будем делать непосредственно в консоли

В секции “trusted_domains” я дописал IP-адрес NextCloud сервера, чтобы не напутать, просто в установленном плагине nextcloud нажмите “Manage” о которой упоминалось немного выше.

Проверяем работе nextcloud. Где взять логин и пароль я описывал выше.

Источник

Установка и настройка Nextcloud в Ubuntu 18.04

Published on January 7, 2020

Введение

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

В этом обучающем модуле мы научимся устанавливать и настраивать экземпляр Nextcloud на сервере Ubuntu 18.04.

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

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

  • Пользователь sudo и настроенный брандмауэр на сервере. Вы можете создать пользователя с привилегиями sudo и настроить базовый брандмауэр в соответствии с указаниями руководства «Начальная настройка сервера Ubuntu 18.04».
  • (Необязательно) Доменное имя, указывающее на ваш сервер. Для защиты подключений к Nextcloud мы будем использовать TLS/SSL. Если у вашего сервера есть доменное имя, Nextcloud может настроить бесплатный защищенный сертификат SSL от Let’s Encrypt и обеспечить управление этим сертификатом. Также Nextcloud позволяет настроить сертификат SSL с собственной подписью, который сможет шифровать соединения, но которому браузеры не будут доверять по умолчанию. Если вы используете DigitalOcean и намереваетесь использовать Let’s Encrypt, вы можете использовать наше руководство по настройке доменного имени для вашего сервера.

Выполнив вышеперечисленные шаги, изучите возможности настройки Nextcloud на своем сервере.

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

Мы выполним установку Nextcloud с помощью системы пакетов snappy. Эта система пакетов доступна в Ubuntu 18.04 по умолчанию. Она позволяет организациям поставлять программное обеспечение со всеми зависимостями и конфигурациями в самодостаточном блоке с автоматическими обновлениями. Это означает, что вместо установки и настройки веб-сервера и сервера базы данных и настройки приложения Nextcloud для работы с ними мы можем установить пакет snap , который автоматически настроит все системы.

Чтобы загрузить пакет Nextcloud snap и установить его в системе, введите:

Пакет Nextcloud будет загружен и установлен на ваш сервер. Вы можете проверить успешность установки посредством вывода изменений, связанных с пакетом snap :

Информация о состоянии и сводная информация показывают, что установка была выполнена без проблем.

Получение дополнительной информации о Nextcloud Snap

Если вам нужна дополнительная информация о Nextcloud snap , вам могут помочь несколько полезных команд.

Команда snap info показывает описание, доступные команды управления Nextcloud, установленную версию и отслеживаемый канал snap:

Пакеты snap могут определять поддерживаемые ими интерфейсы, включающие элементы slot и plug, сочетание которых дает snap определенные уровни доступа. Например, если пакет snap требуется использовать в качестве сетевого клиента, у него должен быть network интерфейс. Чтобы увидеть, какие интерфейсы задает этот пакет snap, введите:

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

Это позволит вам увидеть отдельные компоненты, входящие в пакет snap, если вам потребуется помощь с отладкой.

Настройка административной учетной записи

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

Читайте также:  Android это вам не виндовс

Чтобы настроить Nextcloud с новой учетной записью администратора, используйте команду nextcloud.manual-install . В качестве аргументов следует задать имя пользователя и пароль:

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

После установки Nextcloud нам необходимо настроить доверенные домены, чтобы Nextcloud реагировал на запросы с использованием доменного имени или IP-адреса сервера.

Настройка доверенных доменов

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

Вы можете просмотреть текущие настройки, запросив значение массива trusted_domains :

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

Если мы снова запросим значение trusted domains, мы увидим уже две записи:

Если вам потребуется добавить другой способ доступа к экземпляру Nextcloud, вы можете добавить дополнительные домены или адреса посредством повторного запуска команды config:system:set с инкрементальным увеличением номера индекса (1 в первой команде) и изменением значения —value .

Защита веб-интерфейса Nextcloud с помощью SSL

Прежде чем мы начнем использовать Nextcloud, нам нужно обеспечить защиту веб-интерфейса.

Если с вашим сервером Nextcloud связано доменное имя, пакет Nextcloud snap может помочь вам получить и настроить защищенный сертификат SSL от Let’s Encrypt. Если у вашего сервера Nextcloud нет доменного имени, Nextcloud может настроить сертификат с собственной подписью, который будет шифровать веб-трафик, но не будет подтверждать надежность вашего сервера.

Учитывая это, перейдите к разделу, который соответствует вашей ситуации.

Вариант 1: настройка SSL с помощью Let’s Encrypt

Если с вашим сервером Nextcloud связано доменное имя, веб-интерфейс лучше всего защитить посредством сертификата SSL от Let’s Encrypt.

Для начала откройте порты брандмауэра, которые Let’s Encrypt использует для подтверждения владения доменом. При этом ваша страница входа Nextcloud станет общедоступной, но поскольку мы уже настроили учетную запись администратора, никто не сможет ее взломать:

Затем запросите сертификат Let’s Encrypt с помощью следующей команды:

Вначале вам нужно будет подтвердить, что ваш сервер соответствует условиям запроса сертификата в службе Let’s Encrypt:

Введите y, чтобы продолжить.

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

На заключительном этапе вам нужно будет ввести доменное имя, привязанное к вашему серверу Nextcloud:

Сервер запросит сертификат Let’s Encrypt, и если все пройдет нормально, система перезапустит внутренний экземпляр Apache для немедленной активации SSL:

Вариант 2: Настройка SSL с сертификатом с собственной подписью

Если у вашего сервера Nextcloud нет доменного имени, вы можете защитить веб-интерфейс, создав сертификат SSL с собственной подписью. Этот сертификат обеспечит доступ к веб-интерфейсу через шифрованное соединение, но не сможет подтверждать подлинность вашего сервера, и поэтому ваш браузер может вывести предупреждение при попытке открыть сервер.

Чтобы сгенерировать сертификат с собственной подписью и настроить Nextcloud для его использования, введите:

Показанный выше результат означает, что Nextcloud сгенерировал и активировал сертификат с собственной подписью.

Теперь, когда вы защитили интерфейс, откройте веб-порты брандмауэра, чтобы разрешить доступ к веб-интерфейсу:

Вы готовы к первому входу в Nextcloud.

Вход в веб-интерфейс Nextcloud

Мы завершили настройку Nextcloud, и теперь вы можете открыть доменное имя или IP-адрес вашего сервера в браузере:

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

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

Нажмите кнопку Log in (Вход) для входа в веб-интерфейс Nextcloud.

При первом входе в систему откроется окно со ссылками на различные клиенты Nextcloud, которые можно использовать для взаимодействия с вашим экземпляром Nextcloud и управления им:

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

Установка завершена и защищена. Теперь вы можете изучить интерфейс, чтобы лучше узнать особенности и познакомиться с функционалом новой системы.

Заключение

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

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

Источник

Оцените статью