Продолжаем цикл об информационной суверенности. Мы уже говорили о том, как сделать бэкап файлов вручную и по скрипту, но всё это было в пределах одного компьютера. Сегодня сделаем следующий шаг — создадим и настроим свой удалённый облачный сервер для хранения важных данных.
Общий вид проекта
Общая картина такая:
- У нас будет удалённый виртуальный сервер, который мы купим у российского провайдера.
- По желанию на сервере можно настроить доступ без пароля, по специальному ключу безопасности.
- На сервере будет работать программа Nextcloud, которая будет принимать наши файлы на сервере.
- На компьютере установим клиентскую часть Nextcloud, которая будет отправлять наши файлы на сервер.
В итоге это будет похоже на Dropbox или Яндекс-диск, только будет строго нашим. Как и в упомянутых сервисах, можно будет открывать доступ к файлам для других людей, делиться ссылками и даже генерировать QR-коды для скачивания файлов.
В этой статье мы пройдём два первых шага: купим и включим виртуальный сервер и настроим для него ключи.
Что такое Nextcloud
Nextcloud — это многофункциональное веб-приложение для совместной работы через ваш собственный сервер. Вот что входит в этот комбайн:
- Синхронизация и обмен файлами.
- Почтовый сервер.
- Календарь.
- Планировщик задач.
- Корпоративный мессенджер и видеозвонки.
Также есть интеграции со множеством внешних сервисов, в т. ч. разными онлайновыми офисными пакетами.
Приложение бесплатное для таких, как мы, и есть энтерпрайзные решения за деньги — например для университетов или крупных компаний.
Смысл приложения в том, чтобы создать альтернативу закрытым решениям от многочисленных вендоров — например Atlassian или Intuit. Если ты крупная американская компания, то тебе не страшно покупать подобные системы у американских вендоров. А вот в России с этим теперь проблемы. Поэтому нужна альтернатива.
Выбор сервера
Есть два условных вида виртуальных серверов: под приложения и под хранение.
- Сервер для приложений будет иметь быстрый процессор, много оперативной памяти и чуть-чуть хранилища (около 50 Гб).
- Сервер для хранения — наоборот: много места на жёстком диске, но слабенький проц и немного оперативной памяти.
Нам нужен второй вариант — чтобы было очень много места, его можно было увеличить, при этом чтобы это стоило недорого.
Ещё мы хотим, чтобы наш сервер физически располагался в России, принадлежал российской компании и чтобы за него можно было заплатить российской картой в рублях. В противном случае нас могут в любой момент отключить извне или изнутри, а также заблокировать платежи.
Мы нашли две компании, которые могут предоставить такой сервер: RUVDS и FirstVDS. На момент написания статьи у RUVDS закончились диски (обещали это исправить в ближайшее время), поэтому мы остановились на FirstVDS.
Регистрация и покупка
Заходим к провайдеру, начинаем заказывать сервер. Выбираем сервер для хранения (VDS Storage), указываем нужный объём диска. В качестве операционной системы можно выбрать Ubuntu. В графе «Выбор предустановленного ПО» обязательно отмечаем Nextcloud, это существенно упростит нам задачу в будущем.
Когда выбрали нужный размер диска, нажимаем на значок корзины возле цены, чтобы арендовать сервер. Если что, можно арендовать сервер на месяц и посмотреть, подходит вам такое решение или нет.
После нажатия «Оплатить» сервис попросит нас зарегистрироваться. Лучше вводить свои настоящие данные, чтобы в спорных ситуациях вы могли подтвердить, что это именно ваш сервер и на нём ваши данные.
После оплаты сервису понадобится несколько минут, чтобы запустить ваш сервер и поставить на него нужный софт. В это время пользоваться сервером пока не получится, а в состоянии в личном кабинете будет стоять статус «Обрабатывается».
Когда всё установится, на почту, которую вы указывали при регистрации, придёт письмо с информацией и доступами к серверу. Данные оттуда лучше скопировать в отдельный файл на всякий случай, чтобы они всегда были под рукой.
⚠️ В этом письме есть два ключевых параметра: IP-адрес вашего сервера и пароль от него. Запишите их и держите где-то рядом, они нам понадобятся.
Настройка доступа
Когда сервер запустится, в личном кабинете (Товары → Виртуальные серверы) в колонке «Состояние» появится статус «Активен». Это значит, что с ним теперь можно работать и настраивать, как нам нужно. Там же можно перезагрузить сервер, поменять пароль или изменить параметры железа, например добавить больше памяти.
Чтобы удалённо заходить на сервер, мы будем использовать SSH — так мы не будем привязаны к браузеру и сможем пользоваться всей мощью и возможностями командной строки. Сначала просто проверим доступ к серверу — откроем терминал и выполним такую команду:
ssh username@82.146.34.72
Username и IP-адрес нужно взять из письма, которое пришло после активации сервера. Если оно потерялось, можно посмотреть эти данные в панели управления в меню «Инструкция»:
Если всё прошло успешно, мы увидим приветствие сервера, его короткое описание и командную строку суперпользователя root:
Если у вас Windows 10, то для SSH-подключения можно использовать PowerShell, установив OpenSSH-клиент. Для этого запустите PowerShell и выполните команды:
Add-WindowsCapability -Online -Name OpenSSH.Client*
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'
Первая команда устанавливает OpenSSH-клиент, а вторая проверяет его статус. Если всё в порядке, в статусе будет написано Installed (установлен).
Для отключения от сервера нужно набрать команду logout. Связь по SSH прекратится, и терминал будет выполнять команды не на сервере, а на вашем компьютере.
Чтобы не вводить каждый раз пароль, повысить уровень безопасности при подключении и в дальнейшем автоматизировать разные процессы, мы можем сделать SSH-ключ.
Если не хотите этим заморачиваться сейчас, можно на этом остановиться и дождаться следующей статьи, где мы настроим связку между сервером и вашим компьютером. Ну или оставайтесь, заморочимся вместе.
В общих чертах всё работает так:
- Мы у себя на компьютере генерируем пару ключей для шифрования — публичный и приватный. Если интересно, зачем нужны эти ключи, почитайте статью про асимметричное шифрование. Сами ключи будут храниться каждый в своём файле.
- Публичный мы отправим на сервер, им можно делиться с кем угодно, а приватный никому показывать нельзя.
- Мы настроим компьютер и сервер так, чтобы при SSH-подключении вместо пароля сервер брал наш приватный ключ и смотрел, подходит он в пару к публичному или нет. Если да (а мы настроим, чтобы было да), то соединение установится.
Чтобы создать новую пару ключей в Linux или Mac OS, выполните команду ssh-keygen
. Нас попросят указать имя файла, где будут храниться ключи, и кодовую фразу (пароль для ключа). Кодовую фразу можно не вводить и нажать Enter. По умолчанию все ключи хранятся в каталоге пользователя в папке /.ssh/id_rsa
:
Чтобы сервер мог пускать нас по ключу, нужно скопировать на него наш публичный ключ. Для этого в Linux и Mac OS выполним команду (подставьте свой адрес сервера):
ssh-copy-id -i /Users/mike/.ssh/server-ssh.pub root@82.146.34.72
Если у вас Windows, выполните такую команду в PowerShell (не забудьте свой адрес сервера):
type C:\Users\Mike/.ssh/server-ssh.pub | ssh root@82.146.34.72 "cat >> .ssh/authorized_keys"
В этих командах мы сначала говорим, где лежит файл с публичным ключом, а потом указываем имя пользователя и адрес сервера (эти данные нам прислали в письме).
Ещё в Windows нужно выполнить такие команды, чтобы система запомнила ключ и использовала его для подключения к серверу:
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
ssh-add "C:\Users\Mike/.ssh/server-ssh"
Проверяем, что доступ по ключу работает:
пишем в Linux и MacOS: ssh -i /Users/mike/.ssh/server-ssh root@82.146.34.72
пишем в Windows: ssh -i "C:\Users\Mike/.ssh/server-ssh" root@82.146.34.72
и смотрим, какой пароль спросит сервер — если ключа, то всё отлично:
Что дальше
Сейчас у нас есть сервер, которым мы можем управлять по защищённому каналу. В следующих статьях будем настраивать резервное копирование в это облачное хранилище — скриптами и специальным софтом. Подпишитесь, чтобы не пропустить продолжение.