Хмарне зберігання - це відмінний спосіб захистити ваші файли у випадку, якщо щось трапиться, а ваш комп’ютер загублений або пошкоджений. Це допоможе вам отримати доступ до своїх файлів у дорозі чи на роботі та допоможе вам тримати все синхронізоване на своїх пристроях.
Хоча хмарне зберігання має один головний недолік. Ви повинні довіряти якійсь компанії зі своїми особистими файлами. Що станеться, якщо їх зламають? Вони справді всі такі надійні, чи переглядають ваші речі, коли ви не дивитесь? Це насправді неможливо точно знати.
Є ще один варіант. Ви можете розмістити власний хмарний сховище за допомогою Nextcloud. Nextcloud - це рішення з хмарним сховищем з відкритим кодом, яке дозволяє вам бути власною компанією із зберігання хмар. Він має простий у використанні та чистий інтерфейс та супровідні програми для всіх своїх пристроїв, тому ви не маєте справу з деякими взломаними сміттями.
Цей посібник зосередиться на розміщенні Nextcloud на VPS (Virtual Private Server), але ви також можете запустити його локально у домашній мережі. Просто не сподівайтесь отримати доступ до нього ззовні, якщо ви не налаштуєте переадресацію порту або не використовуєте 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 встановити sudo'
Введіть свій кореневий пароль і Sudo буде встановлено. Потім вам потрібно додати свого користувача до групи судо.
$ su -c 'gpasswd - ім'я користувача sudo'
Тепер ви можете використовувати судо. Можливо, вам доведеться знову увійти, якщо це не працює негайно. З цього моменту ви натомість будете використовувати sudo, тим більше що ви відключите кореневі логіни з метою безпеки.
Тепер візьміть все з сховищ Debian.
$ sudo apt встановити ufw mariadb-сервер 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 (Нескладний брандмауер) для захисту вашої системи. Він має простіший синтаксис, і з ним набагато простіше працювати.
Почніть з відключення всього брандмауера. Це встановить політику за замовчуванням для відмови у з'єднанні з усіма службами та портами, гарантуючи, що зловмисники не можуть підключитися до якогось забутого порту.
$ sudo ufw за замовчуванням відхиляє вхід
$ sudo ufw за замовчуванням відхилити вихідні $ sudo ufw за замовчуванням відхилити вперед
Далі ви можете сказати ufw службам, які ви хочете, щоб вони дозволяли. У цьому випадку вам потрібен лише 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 / avtor_keys та вставте ключ.
Повернувшись до PuTTY, знайдіть SSH у бічному меню. Потім відкрийте "Авторизація". У полі ключового ключа перейдіть до місця приватного ключа, який ви тільки що зберегли. Коли все в 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-заборона-пароль
Змініть його на:
PermitRootLogin немає
Далі знайдіть два рядки:
#PasswordAuthentication так #PermitEmptyPasswords ні
Змініть їх на:
ПарольAuthentication no PermitEmptyPassword ні
Нарешті, знайдіть:
UsePAM так
Зроби це:
UsePAM no
Збережіть файл і закрийте його. Потім перезапустіть SSH. Це може вас відбити, тому підключіться, якщо це станеться.
$ sudo systemctl перезапустити sshd
Налаштуйте свою базу даних
Наступне, що вам потрібно зробити - це налаштувати вашу базу даних. Тут насправді не так сильно задіяно, тому не хвилюйтеся занадто сильно. Вам просто потрібно налаштувати користувачу та порожню базу даних для доступу Nextcloud.
Насправді є зручний сценарій для встановлення та захисту MariaDB для вас. Запустити її спочатку.
$ sudo mysql_secure_installation
Кореневий пароль за замовчуванням порожній, тому він запитує "Enter". Потім буде запропоновано встановити пароль root. Зробити це. Відповідь «Так» на кожне питання, що випливає.
Ви можете увійти у свою базу даних за допомогою кореневого пароля, який ви тільки що встановили.
$ sudo mysql -u корінь -p
Підсказка зміниться на MariaDB. Це консоль управління сервером вашої бази даних. Почніть зі створення нової бази даних. Тут враховується капіталізація.
СТВОРИТИ ДАТАБАЗУ наступнийклас;
Далі, зробіть користувача для цієї бази даних.
СТВОРИТИ КОРИСТУВАЧ `nextcloud` @` localhost` ІДЕНТИФІКОВАНО "PasswordForUser";
Потім надайте цьому користувачеві дозвіл на використання бази даних.
НАДАЙТЕ ВСІ НА nextcloud. * ДО `nextcloud` @` localhost`;
Це воно! Ви можете вийти з сервера баз даних вже зараз.
Налаштування PHP
Nextcloud написаний на PHP. Ви вже встановили останню версію PHP, доступну на Debian Stretch, разом із розширеннями PHP, необхідним Nextcloud для правильної роботи. Вам потрібно зробити кілька налаштувань у вашій конфігурації PHP, щоб зробити роботу з Nginx легшою.
Це дійсно просто потребує деяких основних налаштувань безпеки. Вони не є чимось важливим, але вони допоможуть підвищити безпеку вашого сервера.
Відкрийте /etc/php/7.0/fpm/php.ini за допомогою судо та улюбленого редактора тексту.
Файл масивний, тому використовуйте функцію пошуку редактора для навігації. Якщо ви використовували Nano, це Ctrl + W. Варіант кулака, який потрібно знайти, - це вимкнути функції. Додайте, в кінці, додайте phpinfo, систему, пошту, exec.
Потім знайдіть sql.safe_mode і ввімкніть його. Далі встановіть дозвіл_url_fopen. В кінці файлу додайте наступний рядок, збережіть і закрийте його.
Отримайте Nextcloud
Nextcloud ще не доступний як пакет для Debian, і це добре. Вам це справді не потрібно. Це дуже схоже на інші заздалегідь створені веб-програми PHP, такі як WordPress, і він поставляється в стисненому архіві, який ви можете дістати там, де потрібно встановити Nextcloud
Наразі останній стабільний випуск - Nextcloud, двічі перевірте, яка найновіша версія для вас, коли ви читаєте це. Посібник посилається на 12, але використовуйте будь-який останній стабільний.
Перейдіть у каталог, куди потрібно завантажити архів Nextcloud. Потім перейдіть у / var / www, щоб витягнути його.
$ cd ~ / Завантаження $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Завантаження / 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 {server 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 / включено сайти $ sudo ln -s / etc / nginx / доступні сайти / nextcoud nextcloud
Видаліть наявний за замовчуванням там.
$ sudo rm за замовчуванням
Перезапустіть PHP та Nginx, і ви зможете отримати доступ до Nextcloud!
$ sudo systemctl перезапуск php7.0-fpm $ sudo systemctl перезапуск nginx
Почніть Nextcloud
Відкрийте веб-браузер і перейдіть до свого доменного імені. Вас привітає екран настройки Nextcloud. Створіть собі обліковий запис адміністратора та введіть інформацію для створеного вами облікового запису бази даних.
Nextcloud знадобиться кілька хвилин, щоб налаштувати себе та встановити. Коли вона закінчиться, вас перенесуть на нову інформаційну панель Nextcloud. Звідти ви можете створити нових користувачів, щоб дозволити людям, яким ви довіряєте, ваш новий хмарний сховище. Ви також можете розпочати завантаження файлів відразу.
Це воно! Тепер у вас є своя приватна хмара!