Molnlagring är ett utmärkt sätt att hålla dina filer säkra om något händer och din dator går förlorad eller skadad. Det kan hjälpa dig komma åt dina filer på vägen eller från jobbet och hjälper dig att hålla allt synkroniserat på dina enheter.
Molnlagring har dock en stor nackdel. Du måste lita på ett företag med alla dina personliga filer. Vad händer om de blir hackade? Är de verkligen så pålitliga, eller går de igenom dina saker när du inte letar? Det är inte riktigt möjligt att veta med säkerhet.
Det finns ett annat alternativ. Du kan vara värd för din egen molnlagring med Nextcloud. Nextcloud är en molnlagringslösning med öppen källkod som låter dig vara ditt eget molnlagringsföretag. Det har ett lättanvänt och rent gränssnitt och tillhörande appar för alla dina enheter, så att du inte har att göra med några hackade tillsammans skräp.
Den här guiden kommer att fokusera på att vara värd för Nextcloud på en VPS (Virtual Private Server), men du kan också köra den lokalt i ditt hemnätverk. Förvänta dig bara inte att få åtkomst till det från utsidan om du inte ställer in port vidarebefordran eller kör ett VPN. Vissa av stegen skulle vara lite annorlunda, och du behöver inte köpa domännamn eller ställa in SSL-certifikat.
Välj en värd
snabblänkar
- Välj en värd
- Installera vad du behöver
- Ställ in din brandvägg
- Konfigurera SSH
- SSH-nycklar
- Windows
- Mac och Linux
- Avvisa rötter och lösenord
- SSH-nycklar
- Konfigurera din databas
- Konfigurera PHP
- Skaffa Nextcloud
- Skapa SSL-certifikat
- Konfigurera Nginx
- Starta Nextcloud
Förutsatt att du går med en riktig molnlösning och vill ha dina filer tillgängliga via webben måste du ställa in en VPS för att vara värd för Nextcloud på. Det finns några fantastiska alternativ där ute, så välj det som verkar bäst för dig. Kolla in Linode, DigitalOcean och Gandi, om du inte redan har en värd i åtanke.
Den här guiden kommer att använda Debian 9 “Stretch” som serveroperativsystem. Debian är superstabil och ganska säker som standard. Det stöds också av de flesta värdplattformar. Om du är mer bekväm med Ubuntu kommer det mesta av detta att gälla direkt där också, eftersom Ubuntu är baserat på Debian.
Du kommer också att behöva få ett domännamn för din server. Eftersom detta inte kommer att bli en offentlig webbplats kan du verkligen göra det vad du vill. Processen för att köpa och länka ett domännamn skiljer sig åt varje värd- och domännamnleverantör, så se till att du kontrollerar dokumentationen från de tjänster du väljer.
Allt här kommer att hanteras på distans från Linux-kommandoraden. Så om du är på Mac eller Linux kan du bara öppna en terminal och använda SSH för att komma åt din VPS. Om du är på Windows, ta en SSH-klient som PuTTY .
Installera vad du behöver
Det här är många bitar till detta pussel. Du kan lika gärna ta tag i dem alla nu, så du har det du behöver för att fortsätta härifrån. Debian har vanligtvis inte sudo installerat som standard, så ta det först och ställ in det.
$ su -c 'apt install sudo'
Ange ditt root-lösenord så kommer Sudo att installeras. Sedan måste du lägga till din användare i sudo-gruppen.
$ su -c 'gpasswd-ett användarnamn sudo'
Nu kan du använda sudo. Du kanske måste logga in igen om det inte fungerar omedelbart. Från denna punkt och framåt använder du istället sudo, särskilt eftersom du kommer att inaktivera root-inloggningar för säkerhetsändamål.
Ta nu allt från Debians förvar.
$ 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
Ställ in din brandvägg
Din server är på Internet. Det finns ingen väg runt det, och det betyder att du kommer att behöva ta itu med angripare. Att installera en enkel brandvägg hjälper till att förhindra många potentiella hot.
Istället för att använda iptables direkt kan du använda UFW (Uncomplicated Firewall) för att säkra ditt system. Den har enklare syntax, och det är mycket lättare att arbeta med.
Börja med att inaktivera allt i brandväggen. Detta kommer att ställa in standardpolicyn för att neka anslutningar till alla tjänster och portar, vilket säkerställer att angripare inte kan ansluta till någon glömd port.
$ sudo ufw standard förnekar inkommande
$ sudo ufw default neka utgående $ sudo ufw default nekar framåt
Därefter kan du berätta för de tjänster du vill att de ska tillåta. I detta fall behöver du bara SSH och webbåtkomst. Du kommer också att vilja aktivera NTP och DNS så att din server kan hämta uppdateringar och ställa in klockan.
$ sudo ufw tillåta i ssh $ sudo ufw tillåta ut ssh $ sudo ufw tillåta i http $ sudo ufw tillåt ut http $ sudo ufw tillåta i https $ sudo ufw tillåt ut https $ sudo ufw tillåt i ntp $ sudo ufw tillåt ut ntp $ sudo ufw tillåta i 53 $ sudo ufw tillåta 53 53 sudo ufw tillåta i 67 $ sudo ufw tillåta 67
Du kan starta din brandvägg nu. Det kommer att ge dig en varning om att störa SSH, men du har redan tillåtit SSH, så du kommer att vara okej.
Konfigurera SSH
SSH är en av de mest angripna tjänsterna på Linux-servrar. Det är porten till allt annat på servern, och det är vanligtvis bara skyddat med ett lösenord. Det är därför det är viktigt att se till att din server inte är lättillgänglig för angripare via SSH.
SSH-nycklar
Först måste du skapa ett mycket säkrare alternativ till ett lösenord, en SSH-nyckel. Processen är annorlunda på Windows än på Mac och Linux, så följ instruktionerna som passar ditt skrivbord.
Windows
På samma sätt som Windows-sättet behöver du ännu ett program för att slutföra denna enkla uppgift. PuTTYgen är en RSA-nyckelgenerator för PuTTY. Det är tillgängligt från PuTTY-nedladdningssidan . Ladda ner den och kör den.
I fönstret som öppnas, namnge din nyckel och skapa ett lösenord för den. Det är lösenordet du använder för att logga in på din server. På botten väljer du SSH-2 RSA och ställer in en nyckelstorlek på minst 2048 bitar. 4096 är bättre, men 2048 kommer att vara något snabbare. Generera sedan dina nycklar och spara både de offentliga och privata nycklarna. Slutligen kopierar du den offentliga nyckeln som visas längst upp i fönstret.
Använd PuTTY för att ansluta till din server. Öppna en fil på ~ / .ssh / Author_keys och klistra in din nyckel.
Tillbaka i PuTTY, hitta SSH på sidmenyn. Öppna sedan "Auth." I fältet för pivate-tangenten bläddrar du till platsen för den privata nyckeln som du just har sparat. När allt i PuTTY är konfigurerat för din server, spara sessionen. Testa det för att se till att du ansluter till din nyckel innan du går vidare.
Mac och Linux
Mac- och Linux-användare har en mycket enklare väg här. Börja med att generera en SSH-nyckel om du inte redan har en. Du har möjlighet att skapa ett lösenord för nyckeln. Det är valfritt, så det är ditt samtal.
$ ssh-keygen -b 4096-t rsa
Nu skickar du bara nyckeln till din server. Byt ut ditt användarnamn och serverns IP-adress.
$ ssh-copy-id -i ~ / .ssh / id_rsa.pub
Det är allt!
Avvisa rötter och lösenord
När du har konfigurerat nyckeln kan du inaktivera lösenord för SSH. Oroa dig inte om du ställer in en nyckel med ett lösenord. Det är något annorlunda, och det kommer inte att påverka det alls. Öppna SSH-konfigurationsfilen på / etc / ssh / sshd_config.
$ sudo nano / etc / ssh / sshd_config
Hitta raden som lyder:
#PermitRootLogin förbud-lösenord
Ändra det till:
PermitRootLoginr
Därefter hittar du de två raderna:
#PasswordAuthentication ja #PermitEmptyPasswords nej
Ändra dem till:
Lösenordsautentisering ingen tillåtelse tomt lösenord nr
Slutligen, hitta:
UsePAM ja
Gör det:
UsePAM nr
Spara din fil och stäng den. Starta sedan om SSH. Det här kan komma igång, så anslut om det igen.
$ sudo systemctl starta om sshd
Konfigurera din databas
Nästa sak du behöver göra är att konfigurera din databas. Det är verkligen inte mycket involverat här, så oroa dig inte för mycket. Du behöver bara konfigurera en användare och en tom databas för att Nextcloud ska komma åt.
Det finns faktiskt ett bekvämt skript att konfigurera och säkra MariaDB åt dig. Kör det först.
$ sudo mysql_secure_installation
Standardrotlösenordet är tomt, så det "Enter" när det blir fråget. Den kommer då att be dig att ställa in ett root-lösenord. Gör det. Svara "Ja" på alla frågor som följer.
Du kan logga in i din databas med root-lösenordet som du just skapade.
$ sudo mysql -u root -p
Frågan ändras till MariaDB. Detta är konsolen för att hantera din databaseserver. Börja med att skapa en ny databas. Kapitalisering räknas här.
SKAPA DATABASE nextcloud;
Gör sedan en användare för den databasen.
SKAPA ANVÄNDARE `nextcloud` @` localhost` IDENTIFIERAD AV "PasswordForUser";
Ge sedan användaren behörighet att använda databasen.
GE ALLA PÅ nextcloud. * TILL `nextcloud` @` localhost`;
Det är allt! Du kan lämna databaseservern nu.
Konfigurera PHP
Nextcloud är skriven i PHP. Du har redan installerat den senaste versionen av PHP som finns tillgänglig på Debian Stretch tillsammans med PHP-tillägg som Nextcloud behöver för att fungera rätt. Du måste fortfarande göra ett par tweaks till din PHP-konfiguration för att det ska fungera lättare med Nginx.
Den behöver egentligen bara några grundläggande säkerhetsjusteringar. Dessa är inte något större, men de kommer att förbättra din serverns säkerhet.
Öppna /etc/php/7.0/fpm/php.ini med sudo och din favorittextredigerare.
Filen är massiv, så använd redaktörens sökfunktion för att navigera runt. Om du har använt Nano är det Ctrl + W. Fistalternativet som du behöver hitta är disable_functions. Lägg till lägg till phpinfo, system, mail, exec, i slutet.
Hitta sedan sql.safe_mode och slå på den. Ställ sedan av allow_url_fopen. I slutet av filen lägger du till följande rad, sparar och stänger den.
Skaffa Nextcloud
Nextcloud är inte tillgängligt som ett paket för Debian ännu, och det är okej. Du behöver verkligen inte göra det. Det är mycket som andra förbyggda PHP-webbapplikationer, som WordPress, och det finns i ett komprimerat arkiv som du kan extrahera där du vill att Nextcloud ska installeras.
Just nu är den senaste stabila versionen Nextcloud, dubbelkontrollera vad den senaste versionen är för dig när du läser detta. Guiden hänvisar till 12, men använd vad som helst den senaste stabila är.
Byt till en katalog där du vill ladda ner ditt Nextcloud-arkiv. Byt sedan till / var / www för att extrahera det.
$ cd ~ / Nedladdningar $ 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
Om du läser detta i framtiden kan du hitta nedladdningslänken på Nextclouds serverinstallationssida .
Ändra slutligen äganderätten till din Nextcloud-installation till www-data.
$ sudo chown -R www-data: www-data / var / www / nextcloud
Skapa SSL-certifikat
Att skapa dina SSL-certifikat är mycket enkelt tack vare Certbot. Certbot genererar automatiskt dina SSL-certifikat åt dig och placerar dem i webbroten för vilken webbplats du skapar dem för. Du behöver bara köra ett enda kommando.
$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com
Eftersom det är första gången du kör Certbot kommer den att be om en e-postadress. Den kommer att använda den adressen för att varna dig när dina certifikat håller på att upphöra. Du kan enkelt förnya dem med ett enda kommando också.
Konfigurera Nginx
Nginx är en lätt, men ändå kraftfull webbserver. Det kommer att tjäna gränssnittet som du använder för att komma åt Nextcloud. Det finns ett par konfigurationsfiler associerade med Nginx. Den första är huvudkonfigurationen som finns på /etc/nginx/nginx.conf. Det är den huvudsakliga konfigurationsfilen, men den har solida standardvärden. Du kan spela med det om du vet vad du gör, men du kan lämna det i fred och vara bra också.
Nästa konfiguration är mycket längre och mer komplex. Tack och lov behöver du inte skriva allt. Nextcloud-devs gjorde redan. Du behöver bara ändra det. Konfigurationsfilen finns på Nextclouds webbplats . Ta tag i den för webroot från Nginx. Skapa en ny fil på / etc / nginx / sites-available / nextcloud och klistra in den.
När du har fått filen måste du göra några enkla ändringar. Först ska du hitta uppströmsblocket och ändra det så att det ser ut så här:
uppströms php-handler {server unix: /run/php/php7.0-fpm.sock; }
Sedan hittar du någonstans där det står cloud.example.com och ändra det till ditt domännamn.
Det sista du behöver göra är att peka Nginx till dina SSL-certifikat. Ändra raderna:
ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
Till:
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
Det är allt! Därefter måste du länka det så att Nginx kan hitta det.
$ cd / etc / nginx / sites-aktiverat $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud
Ta bort befintligt standard som finns där.
$ sudo rm standard
Starta om PHP och Nginx så kan du komma åt Nextcloud!
$ sudo systemctl starta om php7.0-fpm $ sudo systemctl starta om nginx
Starta Nextcloud
Öppna din webbläsare och navigera till ditt domännamn. Du hälsas med installationsskärmen för Nextcloud. Skapa själv ett administratörskonto och ange informationen för databaskontot som du skapade.
Nextcloud tar flera minuter att konfigurera sig själv och installera. När det är klart kommer du att släppas in i din nya Nextcloud-instrumentbräda. Därifrån kan du skapa nya användare för att låta människor du litar på din nya molnlagring. Du kan också börja ladda upp filer direkt.
Det är allt! Du har nu ditt eget privata moln!