Облачное хранилище - это отличный способ защитить ваши файлы на случай, если что-то случится и ваш компьютер потерян или поврежден. Это может помочь вам получить доступ к вашим файлам в дороге или с работы, а также поможет вам синхронизировать все на ваших устройствах.
Облачное хранилище имеет один существенный недостаток. Вы должны доверять какой-то компании все ваши личные файлы. Что будет, если их взломают? Они действительно все заслуживают доверия, или они проходят через ваши вещи, когда вы не смотрите? Это не действительно возможно знать наверняка.
Есть еще один вариант. Вы можете разместить собственное облачное хранилище с Nextcloud. Nextcloud - это облачное хранилище с открытым исходным кодом, которое позволяет вам быть вашей собственной компанией облачных хранилищ. Он имеет простой в использовании и понятный интерфейс и сопутствующие приложения для всех ваших устройств, поэтому вы не имеете дело с каким-то взломанным мусором.
В этом руководстве основное внимание будет уделено размещению Nextcloud на VPS (виртуальном частном сервере), но вы также можете запустить его локально в своей домашней сети. Просто не ждите доступа к нему извне, если вы не настроили переадресацию портов или не используете VPN. Некоторые шаги будут немного другими, и вам не нужно будет покупать доменное имя или устанавливать SSL-сертификаты.
Выберите хост
Быстрые ссылки
- Выберите хост
- Установите то, что вам нужно
- Настройте свой брандмауэр
- Настроить SSH
- SSH ключи
- Windows
- Mac и Linux
- Запретить рут и пароли
- SSH ключи
- Настройте свою базу данных
- Настроить PHP
- Получить Nextcloud
- Создать SSL-сертификаты
- Настроить Nginx
- Запустить Nextcloud
Предполагая, что вы используете настоящее облачное решение и хотите, чтобы ваши файлы были доступны через Интернет, вам нужно настроить VPS для размещения Nextcloud. Есть несколько отличных вариантов, так что выбирайте то, что кажется вам лучшим. Проверьте Linode, DigitalOcean и Gandi, если у вас еще нет хозяина.
В этом руководстве будет использоваться Debian 9 «Stretch» в качестве операционной системы сервера. Debian очень стабилен и по умолчанию довольно безопасен. Это также хорошо поддерживается большинством хостинговых платформ. Если вы чувствуете себя более комфортно с Ubuntu, большая часть этого применима и непосредственно там, поскольку Ubuntu основана на Debian.
Вам также нужно будет получить доменное имя для вашего сервера. Поскольку это не будет общедоступный сайт, вы можете сделать все, что захотите. Процесс покупки и привязки доменного имени различен для каждого хоста и поставщика доменного имени, поэтому обязательно ознакомьтесь с документацией, предоставляемой выбранными вами службами.
Все здесь будет осуществляться удаленно из командной строки Linux. Итак, если вы работаете на Mac или Linux, вы можете просто открыть терминал и использовать SSH для доступа к вашему VPS. Если вы работаете в Windows, возьмите SSH-клиент, такой как PuTTY .
Установите то, что вам нужно
В этой головоломке много частей. С таким же успехом вы можете взять их всех прямо сейчас, чтобы у вас было то, что вам нужно, чтобы продолжить отсюда. Debian обычно не имеет sudo, установленного по умолчанию, поэтому сначала скачайте его и настройте.
$ su -c 'apt install sudo'
Введите пароль пользователя root, и Sudo будет установлен. Затем вам нужно добавить своего пользователя в группу sudo.
$ su -c 'gpasswd -a имя пользователя sudo'
Теперь вы можете использовать sudo. Возможно, вам придется войти снова, если это не сработает сразу. С этого момента вы будете использовать sudo вместо этого, тем более что вы собираетесь отключить root-логины в целях безопасности.
Теперь возьмите все из репозиториев Debian.
$ sudo apt install ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring
Настройте свой брандмауэр
Ваш сервер в интернете. Обойти это невозможно, а это значит, что вам придется бороться с злоумышленниками. Настройка простого брандмауэра поможет предотвратить множество потенциальных угроз.
Вместо непосредственного использования iptables вы можете использовать UFW (Uncomplicated Firewall) для защиты вашей системы. У него более простой синтаксис, и с ним гораздо проще работать.
Начните с отключения всего в брандмауэре. Это установит политику по умолчанию для запрета соединений со всеми службами и портами, гарантируя, что злоумышленники не смогут подключиться к забытому порту.
$ sudo ufw default запретить входящие
$ sudo ufw default запретить исходящие $ sudo ufw default запретить пересылку
Затем вы можете указать сервисам, которые вы хотите, чтобы они разрешали. В этом случае вам нужен только SSH и доступ к сети. Вы также захотите включить NTP и DNS, чтобы ваш сервер мог получать обновления и устанавливать часы.
$ sudo ufw разрешить в ssh $ sudo ufw разрешить ssh $ sudo ufw разрешить в http $ sudo ufw разрешить http $ sudo ufw разрешить в https $ sudo ufw разрешить https $ sudo ufw разрешить в ntp $ sudo ufw разрешить ntp $ sudo ufw разрешить в 53 $ sudo ufw разрешить 53 $ sudo ufw разрешить в 67 $ sudo ufw разрешить 67
Вы можете запустить свой брандмауэр сейчас. Это даст вам предупреждение о нарушении SSH, но вы уже разрешили SSH, так что все будет в порядке.
Настроить SSH
SSH является одним из наиболее часто используемых сервисов на серверах Linux. Это шлюз для всего остального на сервере, и обычно он защищен только паролем. Вот почему важно убедиться, что ваш сервер не доступен для злоумышленников через SSH.
SSH ключи
Во-первых, вам нужно настроить гораздо более безопасную альтернативу паролю - ключ SSH. В Windows этот процесс отличается от Mac и Linux, поэтому следуйте инструкциям, которые подходят для вашего рабочего стола.
Windows
Как и в случае с Windows, вам нужна еще одна программа для выполнения этой простой задачи. PuTTYgen - это генератор ключей RSA для PuTTY. Это доступно на странице загрузки PuTTY . Загрузите его и запустите.
В открывшемся окне назовите свой ключ и создайте для него пароль. Это пароль, который вы будете использовать для входа на свой сервер. Внизу выберите SSH-2 RSA и установите размер ключа не менее 2048 бит. 4096 лучше, но 2048 будет немного быстрее. Затем сгенерируйте свои ключи и сохраните как открытый, так и закрытый ключи. Наконец, скопируйте открытый ключ, который отображается в верхней части окна.
Используйте PuTTY для подключения к вашему серверу. Откройте файл в ~ / .ssh / authorized_keys и вставьте свой ключ в.
Вернувшись в PuTTY, найдите SSH в боковом меню. Затем откройте «Auth». В поле для ключа pivate найдите местоположение только что сохраненного закрытого ключа. Когда все в PuTTY настроено для вашего сервера, сохраните сеанс. Проверьте это, чтобы убедиться, что вы подключаетесь с помощью ключа, прежде чем двигаться дальше.
Mac и Linux
Для пользователей Mac и Linux путь намного проще. Начните с создания ключа SSH, если у вас его еще нет. У вас есть возможность создать пароль для ключа. Это необязательно, так что это ваш звонок.
$ ssh-keygen -b 4096 -t rsa
Теперь просто отправьте свой ключ на ваш сервер. Подставьте ваше имя пользователя и IP-адрес сервера.
$ ssh-copy-id -i ~ / .ssh / id_rsa.pub
Это оно!
Запретить рут и пароли
После того, как вы настроили свой ключ, вы можете отключить пароли для SSH. Не беспокойтесь, если вы установили ключ с паролем. Это что-то другое, и это не повлияет на это вообще. Откройте файл конфигурации SSH в / etc / ssh / sshd_config.
$ sudo nano / etc / ssh / sshd_config
Найдите строку, которая гласит:
#PermitRootLogin prohibit-password
Измените это на:
PermitRootLogin нет
Далее найдите две строки:
#PasswordAuthentication yes #PermitEmptyPasswords no
Измените их на:
PasswordAuthentication no PermitEmptyPasswords нет
Наконец, найдите:
UsePAM да
Сделай это:
UsePAM нет
Сохраните файл и закройте его. Затем перезапустите SSH. Это может сбить вас с толку, так что переподключите, если это так.
$ sudo systemctl перезапустить sshd
Настройте свою базу данных
Следующее, что вам нужно сделать, это настроить вашу базу данных. Здесь действительно не так много, так что не волнуйтесь слишком сильно. Вам просто нужно настроить пользователя и пустую базу данных для доступа к Nextcloud.
На самом деле есть удобный скрипт для настройки и защиты MariaDB для вас. Запустите это первым.
$ sudo mysql_secure_installation
Пароль root по умолчанию пуст, поэтому он спрашивает «Enter». Затем он попросит вас установить пароль root. Сделай это. Ответьте «Да» на каждый следующий вопрос.
Вы можете войти в свою базу данных с паролем root, который вы только что установили.
$ sudo mysql -u root -p
Приглашение изменится на MariaDB. Это консоль для управления сервером базы данных. Начните с создания новой базы данных. Капитализация здесь имеет значение.
СОЗДАТЬ БАЗУ ДАННЫХ nextcloud;
Затем создайте пользователя для этой базы данных.
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ `nextcloud` @` localhost` ОПРЕДЕЛЕНО "PasswordForUser";
Затем предоставьте этому пользователю разрешение на использование базы данных.
ПРЕДОСТАВЛЯЙТЕ ВСЕ НА Nextcloud. * TO `nextcloud` @` localhost`;
Это оно! Вы можете выйти из сервера базы данных сейчас.
Настроить PHP
Nextcloud написан на PHP. Вы уже установили последнюю версию PHP, доступную в Debian Stretch, вместе с расширениями PHP, которые необходимы для правильной работы Nextcloud. Вам все еще нужно внести пару изменений в вашу конфигурацию PHP, чтобы сделать ее более удобной для работы с Nginx.
Для этого просто необходимы некоторые базовые настройки безопасности. Это не что-то важное, но они помогут улучшить безопасность вашего сервера.
Откройте /etc/php/7.0/fpm/php.ini с помощью sudo и вашего любимого текстового редактора.
Файл массивный, так что используйте функцию поиска вашего редактора для навигации. Если вы использовали Nano, это Ctrl + W. Первый вариант, который вам нужно найти, - disable_functions. Добавить добавить phpinfo, system, mail, exec, в конце.
Затем найдите sql.safe_mode и включите его. Затем отключите allow_url_fopen. В конце файла добавьте следующую строку, сохраните и закройте ее.
Получить Nextcloud
Nextcloud еще не доступен в качестве пакета для Debian, и это нормально. Вам действительно не нужно это быть. Он во многом похож на другие готовые веб-приложения на PHP, такие как WordPress, и поставляется в сжатом архиве, который вы можете извлечь там, где вы хотите установить Nextcloud.
На данный момент последней стабильной версией является Nextcloud, когда вы читаете это, дважды проверьте, какая последняя версия для вас. Руководство будет ссылаться на 12, но используйте любой последний стабильный.
Перейдите в каталог, в который вы хотите скачать свой архив Nextcloud. Затем перейдите в / var / www, чтобы извлечь его.
$ cd ~ / Downloads $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3. tar.bz2
Если вы читаете это в будущем, вы можете найти ссылку на скачивание на странице установки сервера Nextcloud.
Наконец, измените владельца вашей установки Nextcloud на www-data.
$ sudo chown -R www-data: www-data / var / www / nextcloud
Создать SSL-сертификаты
Создание сертификатов SSL очень просто благодаря Certbot. Certbot автоматически сгенерирует ваши SSL-сертификаты для вас и поместит их в корневой веб-каталог любого сайта, для которого вы их создаете. Вам нужно всего лишь запустить одну команду.
$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com
Поскольку вы впервые запускаете Certbot, он запросит адрес электронной почты. Он будет использовать этот адрес для предупреждения о том, что срок действия ваших сертификатов истекает. Вы также можете легко обновить их с помощью одной команды.
Настроить Nginx
Nginx - это легкий, но мощный веб-сервер. Он будет обслуживать интерфейс, который вы используете для доступа к Nextcloud. Есть несколько файлов конфигурации, связанных с Nginx. Первая - это основная конфигурация, расположенная по адресу /etc/nginx/nginx.conf. Это основной файл конфигурации, но он имеет твердые значения по умолчанию. Вы можете играть с ним, если вы знаете, что делаете, но вы можете оставить это в покое и быть в порядке.
Следующая конфигурация намного длиннее и сложнее. К счастью, вам не нужно писать все это. Разработчики Nextcloud уже сделали. Вам просто нужно изменить его. Конфигурационный файл находится на сайте Nextcloud . Возьмите тот, что нужен для рунета Nginx. Создайте новый файл в / etc / nginx / sites-available / nextcloud и вставьте его в.
Как только у вас есть файл, вам нужно сделать пару простых изменений. Сначала найдите блок восходящего потока и измените его так:
upstream php-handler {серверный unix: /run/php/php7.0-fpm.sock; }
Затем найдите в любом месте, где написано cloud.example.com, и измените его на свое доменное имя.
Последнее, что вам нужно сделать, это указать Nginx на ваши сертификаты SSL. Измените строки:
ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
Для того, чтобы:
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
Это оно! Затем вам нужно связать его, чтобы Nginx мог его найти.
$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud
Удалите существующее значение по умолчанию, которое там есть.
$ sudo rm default
Перезапустите PHP и Nginx, и вы сможете получить доступ к Nextcloud!
$ sudo systemctl restart php7.0-fpm $ sudo systemctl restart nginx
Запустить Nextcloud
Откройте веб-браузер и перейдите к своему доменному имени. Вас встретит экран настройки Nextcloud. Создайте себе учетную запись администратора и введите информацию для учетной записи базы данных, которую вы создали.
Nextcloud займет несколько минут, чтобы настроить себя и установить. Когда он закончится, вы попадете на новую панель управления Nextcloud. Оттуда вы можете создавать новых пользователей, чтобы люди, которым вы доверяете, использовали ваше новое облачное хранилище. Вы также можете начать загрузку файлов прямо сейчас.
Это оно! Теперь у вас есть собственное частное облако!