Anonim

Przechowywanie w chmurze to doskonały sposób na zabezpieczenie plików na wypadek, gdyby coś się wydarzyło, a komputer został zgubiony lub uszkodzony. Może pomóc ci uzyskać dostęp do plików w drodze lub w pracy, a także pomaga zsynchronizować wszystko na urządzeniach.

Pamięć masowa w chmurze ma jednak jedną poważną wadę. Musisz zaufać jakiejś firmie ze wszystkimi swoimi osobistymi plikami. Co się stanie, jeśli zostaną zhakowani? Czy oni naprawdę są tak godni zaufania, czy przeszukują twoje rzeczy, kiedy nie patrzysz? Naprawdę nie można tego wiedzieć na pewno.

Jest inna opcja. Możesz hostować własne przechowywanie w chmurze dzięki Nextcloud. Nextcloud to rozwiązanie do przechowywania w chmurze typu open source, które pozwala ci być własną firmą zajmującą się przechowywaniem w chmurze. Ma łatwy w obsłudze i przejrzysty interfejs oraz aplikacje towarzyszące na wszystkie Twoje urządzenia, więc nie masz do czynienia z niektórymi zhackowanymi śmieciami.

Ten przewodnik skupi się na hostowaniu Nextcloud na VPS (Virtual Private Server), ale możesz również uruchomić go lokalnie w sieci domowej. Tylko nie oczekuj dostępu do niego z zewnątrz, chyba że skonfigurujesz przekierowanie portów lub uruchomisz VPN. Niektóre kroki byłyby nieco inne i nie będziesz musiał kupować nazwy domeny ani konfigurować certyfikatów SSL.

Wybierz hosta

Szybkie linki

  • Wybierz hosta
  • Zainstaluj to, czego potrzebujesz
  • Skonfiguruj zaporę ogniową
  • Skonfiguruj SSH
    • Klucze SSH
      • Windows
      • Mac i Linux
    • Nie zezwalaj na rootowanie i hasła
  • Skonfiguruj swoją bazę danych
  • Skonfiguruj PHP
  • Uzyskaj Nextcloud
  • Utwórz certyfikaty SSL
  • Skonfiguruj Nginx
  • Uruchom Nextcloud

Zakładając, że korzystasz z prawdziwego rozwiązania w chmurze i chcesz, aby Twoje pliki były dostępne w Internecie, musisz skonfigurować VPS do obsługi Nextcloud. Istnieje kilka świetnych opcji, więc wybierz to, co wydaje Ci się najlepsze. Sprawdź Linode, DigitalOcean i Gandi, jeśli jeszcze nie masz na myśli hosta.

Ten przewodnik będzie wykorzystywał Debian 9 „Stretch” jako system operacyjny serwera. Debian jest domyślnie bardzo stabilny i dość bezpieczny. Jest również dobrze obsługiwany przez większość platform hostingowych. Jeśli czujesz się bardziej komfortowo z Ubuntu, większość z nich będzie obowiązywać bezpośrednio tam, ponieważ Ubuntu jest oparte na Debianie.

Będziesz także musiał uzyskać nazwę domeny dla swojego serwera. Ponieważ nie będzie to strona publiczna, możesz naprawdę zrobić to, co chcesz. Proces zakupu i łączenia nazwy domeny jest inny dla każdego hosta i dostawcy nazwy domeny, więc sprawdź dokumentację dostarczoną przez wybrane usługi.

Wszystko tutaj będzie obsługiwane zdalnie z wiersza poleceń systemu Linux. Jeśli korzystasz z systemu Mac lub Linux, możesz po prostu otworzyć terminal i użyć SSH, aby uzyskać dostęp do VPS. JEŻELI korzystasz z systemu Windows, weź klienta SSH, takiego jak PuTTY .

Zainstaluj to, czego potrzebujesz

Ta łamigłówka składa się z wielu elementów. Równie dobrze możesz je teraz złapać, więc masz to, czego potrzebujesz, aby kontynuować. Debian zwykle nie ma domyślnie instalowanego sudo, więc najpierw go weź i skonfiguruj.

$ su -c 'apt install sudo'

Wprowadź hasło roota, a Sudo zostanie zainstalowane. Następnie musisz dodać użytkownika do grupy sudo.

$ su -c 'gpasswd -a nazwa użytkownika sudo'

Teraz możesz używać sudo. Może być konieczne ponowne zalogowanie się, jeśli nie zadziała to natychmiast. Od tego momentu będziesz używać sudo, zwłaszcza że zamierzasz wyłączyć logowanie roota ze względów bezpieczeństwa.

Teraz weź wszystko z repozytoriów Debiana.

$ 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

Skonfiguruj zaporę ogniową

Twój serwer jest w Internecie. Nie można tego obejść, a to oznacza, że ​​będziesz musiał poradzić sobie z atakującymi. Ustawienie prostej zapory ogniowej pomoże zapobiec wielu potencjalnym zagrożeniom.

Zamiast bezpośredniego korzystania z iptables, możesz użyć UFW (nieskomplikowanej zapory ogniowej) do zabezpieczenia systemu. Ma prostszą składnię i jest o wiele łatwiejsza w obsłudze.

Zacznij od wyłączenia wszystkiego w zaporze. Spowoduje to ustawienie domyślnej zasady na odmawianie połączeń ze wszystkimi usługami i portami, zapewniając, że atakujący nie będą mogli połączyć się z zapomnianym portem.

$ sudo ufw domyślnie odmawiaj przychodzących

$ sudo ufw domyślne zaprzeczanie wychodzącym $ sudo ufw domyślne zaprzeczanie przekazywania

Następnie możesz powiedzieć ufw usługom, na które chcesz zezwalać. W takim przypadku potrzebujesz tylko SSH i dostępu do sieci. Będziesz także chciał włączyć NTP i DNS, aby twój serwer mógł pobierać aktualizacje i ustawiać swój zegar.

$ sudo ufw zezwól na ssh $ sudo ufw zezwól na ssh $ sudo ufw zezwól na http $ sudo ufw zezwól http $ sudo ufw zezwól na https $ sudo ufw zezwól na https $ sudo ufw zezwól na ntp $ sudo ufw zezwól na ntp $ sudo ufw zezwól na 53 $ sudo ufw wypuść 53 $ sudo ufw zezwól na 67 $ sudo ufw wypuść 67

Możesz teraz uruchomić zaporę. Ostrzeże Cię o zakłóceniu SSH, ale już zezwoliłeś na SSH, więc wszystko będzie dobrze.

$ sudo ufw enable

Skonfiguruj SSH

SSH jest jedną z najczęściej atakowanych usług na serwerach Linux. Jest bramą do wszystkiego innego na serwerze i zwykle jest chroniony tylko hasłem. Dlatego ważne jest, aby upewnić się, że Twój serwer nie jest łatwo dostępny dla atakujących przez SSH.

Klucze SSH

Najpierw musisz skonfigurować znacznie bezpieczniejszą alternatywę dla hasła, klucz SSH. Proces ten jest inny w systemie Windows niż na Macu i Linuksie, więc postępuj zgodnie z instrukcjami, które pasują do Twojego komputera.

Windows

Podobnie jak w systemie Windows, potrzebujesz jeszcze innego programu do wykonania tego prostego zadania. PuTTYgen to generator kluczy RSA dla PuTTY. Jest dostępny na stronie pobierania PuTTY . Pobierz i uruchom.

W oknie, które zostanie otwarte, nazwij swój klucz i utwórz dla niego hasło. Jest to hasło, którego użyjesz do zalogowania się na serwerze. Na dole wybierz SSH-2 RSA i ustaw rozmiar klucza na co najmniej 2048 bitów. 4096 jest lepszy, ale 2048 będzie nieco szybszy. Następnie wygeneruj klucze i zapisz zarówno klucze publiczne, jak i prywatne. Na koniec skopiuj klucz publiczny wyświetlany w górnej części okna.

Użyj PuTTY, aby połączyć się z serwerem. Otwórz plik w ~ / .ssh / Author_keys i wklej swój klucz.

Po powrocie do PuTTY znajdź SSH w bocznym menu. Następnie otwórz „Auth”. W polu klucza przestawnego przejdź do lokalizacji właśnie zapisanego klucza prywatnego. Gdy wszystko w PuTTY jest skonfigurowane dla twojego serwera, zapisz sesję. Przetestuj to, aby upewnić się, że łączysz się z kluczem przed przejściem dalej.

Mac i Linux

Użytkownicy komputerów Mac i Linux mają tutaj znacznie łatwiejszą drogę. Zacznij od wygenerowania klucza SSH, jeśli jeszcze go nie masz. Masz możliwość utworzenia hasła do klucza. Jest to opcjonalne, więc to jest twoje połączenie.

$ ssh-keygen -b 4096 -t rsa

Teraz po prostu wyślij swój klucz na serwer. Zastąp swoją nazwę użytkownika i adres IP serwera.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

Otóż ​​to!

Nie zezwalaj na rootowanie i hasła

Po skonfigurowaniu klucza możesz wyłączyć hasła do SSH. Nie martw się, jeśli skonfigurujesz klucz z hasłem. To coś innego i to w ogóle na to nie wpłynie. Otwórz plik konfiguracyjny SSH w / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Znajdź wiersz o treści:

#PermitRootLogin zabrania hasła

Zmień na:

PermitRootLogin no

Następnie znajdź dwie linie:

#PasswordAuthentication yes #PermitEmptyPasswords no

Zmień je na:

Hasło Uwierzytelnienie nr Pozwolenie Puste hasło nr

Na koniec znajdź:

UsePAM tak

Zrób to:

UsePAM nr

Zapisz plik i zamknij go. Następnie uruchom ponownie SSH. To może cię wyrzucić, więc podłącz ponownie, jeśli tak się stanie.

$ sudo systemctl restart sshd

Skonfiguruj swoją bazę danych

Następną rzeczą, którą musisz zrobić, to skonfigurować bazę danych. Naprawdę nie ma tu zbyt wiele uwagi, więc nie martw się zbytnio. Wystarczy skonfigurować użytkownika i opróżnić bazę danych, aby uzyskać dostęp do Nextcloud.

W rzeczywistości istnieje wygodny skrypt do skonfigurowania i zabezpieczenia MariaDB dla Ciebie. Najpierw uruchom.

$ sudo mysql_secure_installation

Domyślne hasło roota jest puste, więc po zapytaniu „Enter”. Następnie poprosi cię o ustawienie hasła roota. Zrób to. Odpowiedz na „Tak” na każde kolejne pytanie.

Możesz zalogować się do bazy danych przy użyciu właśnie skonfigurowanego hasła root.

$ sudo mysql -u root -p

Monit zmieni się na MariaDB. Jest to konsola do zarządzania serwerem bazy danych. Rozpocznij od utworzenia nowej bazy danych. Tutaj liczy się wielkie litery.

UTWÓRZ BAZA DANYCH nextcloud;

Następnie utwórz użytkownika dla tej bazy danych.

UTWÓRZ UŻYTKOWNIKA `nextcloud` @` localhost` IDENTYFIKOWANY PRZEZ „PasswordForUser”;

Następnie udziel temu użytkownikowi uprawnienia do korzystania z bazy danych.

UDZIELAJ WSZYSTKICH NA nextcloud. * TO `nextcloud` @` localhost`;

Otóż ​​to! Możesz teraz wyjść z serwera bazy danych.

q

Skonfiguruj PHP

Nextcloud jest napisany w PHP. Zainstalowałeś już najnowszą wersję PHP dostępną na Debian Stretch wraz z rozszerzeniami PHP, które Nextcloud musi poprawnie działać. Nadal musisz wprowadzić kilka poprawek do swojej konfiguracji PHP, aby działała łatwiej z Nginx.

Naprawdę potrzebuje tylko kilku podstawowych poprawek bezpieczeństwa. Nie są to nic ważnego, ale pomogą poprawić bezpieczeństwo twojego serwera.

Otwórz /etc/php/7.0/fpm/php.ini za pomocą sudo i swojego ulubionego edytora tekstu.

Plik jest ogromny, więc korzystaj z funkcji wyszukiwania edytora, aby się poruszać. Jeśli korzystasz z Nano, jest to Ctrl + W. Pierwszą opcją, którą musisz znaleźć, jest disable_functions. Dodaj dodaj phpinfo, system, mail, exec, na końcu.

Następnie znajdź tryb sql.safe_mode i włącz go. Następnie wyłącz opcję allow_url_fopen. Na końcu pliku dodaj następujący wiersz, zapisz i zamknij go.

register_globals = Wył

Uzyskaj Nextcloud

Nextcloud nie jest jeszcze dostępny jako pakiet dla Debiana i jest w porządku. Naprawdę nie jest to konieczne. Jest podobny do innych wstępnie zbudowanych aplikacji internetowych PHP, takich jak WordPress, i zawiera skompresowane archiwum, które można wyodrębnić tam, gdzie chcesz zainstalować Nextcloud.

W tej chwili najnowszą stabilną wersją jest Nextcloud, dokładnie sprawdź, jaka jest najnowsza wersja, gdy czytasz to. Przewodnik będzie odnosił się do 12, ale użyj tego, co jest najnowszym stabilnym.

Przejdź do katalogu, w którym chcesz pobrać swoje archiwum Nextcloud. Następnie zmień na / var / www, aby go rozpakować.

$ cd ~ / Pobieranie $ 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

Jeśli czytasz to w przyszłości, możesz znaleźć link do pobrania na stronie instalacji serwera Nextcloud.

Na koniec zmień własność swojej instalacji Nextcloud na www-data.

$ sudo chown -R www-data: www-data / var / www / nextcloud

Utwórz certyfikaty SSL

Tworzenie certyfikatów SSL jest bardzo łatwe dzięki Certbot. Certbot automatycznie wygeneruje dla Ciebie certyfikaty SSL i umieści je w katalogu głównym dowolnej witryny, dla której je tworzysz. Musisz uruchomić tylko jedno polecenie.

$ sudo certbot certonly - webroot -w / var / www / nextcloud -d twoja-domena.com -d www.twoja-domena.com

Ponieważ po raz pierwszy korzystasz z Certbota, poprosi on o adres e-mail. Użyje tego adresu, aby ostrzec Cię, gdy Twoje certyfikaty wkrótce wygaśnie. Możesz je łatwo odnowić za pomocą jednego polecenia.

$ sudo certbot odnów

Skonfiguruj Nginx

Nginx to lekki, ale potężny serwer WWW. Będzie służyć interfejsowi, którego używasz do uzyskiwania dostępu do Nextcloud. Istnieje kilka plików konfiguracyjnych powiązanych z Nginx. Pierwszy to główna konfiguracja znajdująca się w /etc/nginx/nginx.conf. To jest główny plik konfiguracyjny, ale ma stałe wartości domyślne. Możesz się nim bawić, jeśli wiesz, co robisz, ale możesz zostawić to w spokoju i być w porządku.

Następna konfiguracja jest znacznie dłuższa i bardziej złożona. Na szczęście nie musisz pisać wszystkiego. Twórcy Nextcloud już to zrobili. Musisz go tylko zmodyfikować. Plik konfiguracyjny znajduje się na stronie Nextcloud . Chwyć tę, aby zainstalować rootkata Nginx. Utwórz nowy plik w / etc / nginx / sites-available / nextcloud i wklej go.

Po utworzeniu pliku musisz wprowadzić kilka prostych zmian. Najpierw znajdź blok nadrzędny i zmień go tak, aby wyglądał następująco:

upstream php-handler {serwer unix: /run/php/php7.0-fpm.sock; }

Następnie znajdź gdziekolwiek mówi cloud.example.com i zmień na nazwę swojej domeny.

Ostatnią rzeczą, którą musisz zrobić, to wskazać Nginx swoim certyfikatom SSL. Zmień linie:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

Do:

ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

Otóż ​​to! Następnie musisz go połączyć, aby Nginx mógł go znaleźć.

$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

Usuń istniejące domyślne, które tam są.

Domyślnie $ sudo rm

Uruchom ponownie PHP i Nginx, a będziesz mieć dostęp do Nextcloud!

$ sudo systemctl zrestartuj php7.0-fpm $ sudo systemctl zrestartuj nginx

Uruchom Nextcloud

Otwórz przeglądarkę internetową i przejdź do nazwy domeny. Zostaniesz przywitany ekranem konfiguracji Nextcloud. Utwórz konto administratora i wprowadź informacje o utworzonym koncie bazy danych.

Nextcloud zajmie kilka minut, aby się skonfigurować i zainstalować. Po zakończeniu zostaniesz przeniesiony do nowego pulpitu nawigacyjnego Nextcloud. Stamtąd możesz tworzyć nowych użytkowników, aby umożliwić zaufanym osobom dostęp do nowej pamięci w chmurze. Możesz także rozpocząć przesyłanie plików od razu.

Otóż ​​to! Masz teraz swoją prywatną chmurę!

Stwórz własną prywatną chmurę dzięki nextcloud