Anonim

Cloudopslag is een uitstekende manier om uw bestanden veilig te houden voor het geval er iets gebeurt en uw computer verloren of beschadigd raakt. Het kan u helpen toegang te krijgen tot uw bestanden onderweg of vanaf het werk, en helpt u alles op uw apparaten gesynchroniseerd te houden.

Cloudopslag heeft echter een groot nadeel. Je moet een bedrijf vertrouwen met al je persoonlijke bestanden. Wat gebeurt er als ze worden gehackt? Zijn ze echt zo betrouwbaar, of gaan ze door je dingen als je niet kijkt? Het is niet echt mogelijk om het zeker te weten.

Er is nog een optie. U kunt uw eigen cloudopslag hosten met Nextcloud. Nextcloud is een open source cloudopslagoplossing waarmee u uw eigen cloudopslagbedrijf kunt zijn. Het heeft een eenvoudig te gebruiken en schone interface en bijbehorende apps voor al je apparaten, dus je hebt niet te maken met een aantal samen gehackte rommel.

Deze gids gaat zich richten op het hosten van Nextcloud op een VPS (Virtual Private Server), maar u kunt het ook lokaal op uw thuisnetwerk uitvoeren. Verwacht alleen geen toegang van buitenaf, tenzij u port forwarding instelt of een VPN gebruikt. Sommige stappen zijn een beetje anders en u hoeft geen domeinnaam te kopen of SSL-certificaten in te stellen.

Kies een host

Snelle links

  • Kies een host
  • Installeer wat u nodig hebt
  • Stel uw firewall in
  • SSH configureren
    • SSH-sleutels
      • ramen
      • Mac en Linux
    • Root en wachtwoorden niet toestaan
  • Configureer uw database
  • Configureer PHP
  • Ontvang Nextcloud
  • Maak SSL-certificaten
  • Configureer Nginx
  • Start Nextcloud

Ervan uitgaande dat u met een echte cloudoplossing werkt en uw bestanden toegankelijk wilt maken via internet, moet u een VPS instellen om Nextcloud op te hosten. Er zijn een aantal geweldige opties, dus kies wat het beste voor jou lijkt. Bekijk Linode, DigitalOcean en Gandi als je nog geen host in gedachten hebt.

In deze handleiding wordt Debian 9 "Stretch" gebruikt als serverbesturingssysteem. Debian is standaard superstabiel en redelijk veilig. Het wordt ook goed ondersteund door de meeste hostingplatforms. Als u meer vertrouwd bent met Ubuntu, zal het meeste hiervan ook daar rechtstreeks van toepassing zijn, aangezien Ubuntu op Debian is gebaseerd.

U moet ook een domeinnaam voor uw server krijgen. Omdat dit geen openbare site wordt, kun je er echt alles van maken. Het proces voor het kopen en koppelen van een domeinnaam is verschillend voor elke host en domeinnaamprovider, dus zorg ervoor dat u de documentatie van de door u gekozen services controleert.

Alles hier wordt op afstand afgehandeld vanaf de Linux-opdrachtregel. Dus als u een Mac of Linux gebruikt, kunt u gewoon een terminal openen en SSH gebruiken om toegang te krijgen tot uw VPS. Als u op Windows werkt, pak dan een SSH-client zoals PuTTY .

Installeer wat u nodig hebt

Er zijn veel stukjes in deze puzzel. Je kunt ze net zo goed nu allemaal pakken, dus je hebt wat je nodig hebt om verder te gaan vanaf hier. Debian heeft meestal niet standaard sudo geïnstalleerd, dus pak dat eerst en stel het in.

$ su -c 'apt install sudo'

Voer uw rootwachtwoord in en Sudo wordt geïnstalleerd. Vervolgens moet u uw gebruiker toevoegen aan de sudo-groep.

$ su -c 'gpasswd -a gebruikersnaam sudo'

Nu kunt u sudo gebruiken. Mogelijk moet u opnieuw inloggen als dit niet meteen werkt. Vanaf dit punt zul je in plaats daarvan sudo gebruiken, vooral omdat je root-logins voor beveiligingsdoeleinden gaat uitschakelen.

Pak nu alles uit de repositories van 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

Stel uw firewall in

Uw server is op internet. Er is geen manier om dat te omzeilen, en het betekent dat je aanvallers moet aanpakken. Het opzetten van een eenvoudige firewall helpt veel potentiële bedreigingen te voorkomen.

In plaats van iptables rechtstreeks te gebruiken, kunt u UFW (ongecompliceerde firewall) gebruiken om uw systeem te beveiligen. Het heeft een eenvoudigere syntaxis en het is veel eenvoudiger om mee te werken.

Begin met het uitschakelen van alles in de firewall. Hiermee wordt het standaardbeleid ingesteld om verbindingen met alle services en poorten te weigeren, zodat aanvallers geen verbinding kunnen maken via een vergeten poort.

$ sudo ufw standaard inkomend weigeren

$ sudo ufw standaard weigeren uitgaande $ sudo ufw standaard weigeren doorsturen

Vervolgens kunt u ufw vertellen welke services u wilt toestaan. In dit geval heeft u alleen SSH en webtoegang nodig. U wilt ook NTP en DNS inschakelen zodat uw server updates kan ophalen en de klok kan instellen.

$ sudo ufw toestaan ​​in ssh $ sudo ufw toestaan ​​ssh $ sudo ufw toestaan ​​in http $ sudo ufw toestaan ​​http $ sudo ufw toestaan ​​in https $ sudo ufw toestaan ​​uit https $ sudo ufw toestaan ​​in ntp $ sudo ufw toestaan ​​uit ntp $ sudo ufw toestaan ​​in 53 $ sudo ufw toestaan ​​53 $ sudo ufw toestaan ​​in 67 $ sudo ufw toestaan ​​67

U kunt nu uw firewall opstarten. Het geeft je een waarschuwing over het verstoren van SSH, maar je hebt SSH al toegestaan, dus het komt wel goed.

$ sudo ufw inschakelen

SSH configureren

SSH is een van de meest aangevallen services op Linux-servers. Het is de toegangspoort tot al het andere op de server, en het wordt meestal alleen beschermd door een wachtwoord. Daarom is het belangrijk om ervoor te zorgen dat uw server niet gemakkelijk toegankelijk is voor aanvallers via SSH.

SSH-sleutels

Eerst moet u een veel veiliger alternatief instellen voor een wachtwoord, een SSH-sleutel. Het proces is anders op Windows dan op Mac en Linux, dus volg de instructies die op uw bureaublad passen.

ramen

Net zoals op Windows, heb je nog een ander programma nodig om deze eenvoudige taak te voltooien. PuTTYgen is een RSA-sleutelgenerator voor PuTTY. Het is beschikbaar via de PuTTY-downloadpagina . Download het en voer het uit.

Geef uw sleutel een naam in het venster dat wordt geopend en maak er een wachtwoord voor. Het is het wachtwoord dat u gebruikt om in te loggen op uw server. Selecteer onderaan SSH-2 RSA en stel een sleutelgrootte in van minimaal 2048 bits. 4096 is beter, maar 2048 zal iets sneller zijn. Genereer vervolgens uw sleutels en sla zowel de openbare als de private sleutels op. Kopieer ten slotte de openbare sleutel die boven in het venster wordt weergegeven.

Gebruik PuTTY om verbinding te maken met uw server. Open een bestand op ~ / .ssh / Authorized_keys en plak je sleutel erin.

Terug in PuTTY vind je SSH in het zijmenu. Open vervolgens 'Auth'. Blader in het veld voor de pivate-sleutel naar de locatie van de privésleutel die u zojuist hebt opgeslagen. Wanneer alles in PuTTY is ingesteld voor uw server, slaat u de sessie op. Test het om te controleren of u verbinding maakt met uw sleutel voordat u verdergaat.

Mac en Linux

Mac- en Linux-gebruikers hebben hier een veel gemakkelijkere weg. Begin met het genereren van een SSH-sleutel, als u die nog niet heeft. U kunt een wachtwoord voor de sleutel maken. Het is optioneel, dus dat is uw oproep.

$ ssh-keygen -b 4096 -t rsa

Stuur nu uw sleutel naar uw server. Vervang uw gebruikersnaam en het IP-adres van de server.

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

Dat is het!

Root en wachtwoorden niet toestaan

Nadat u uw sleutel hebt ingesteld, kunt u wachtwoorden voor SSH uitschakelen. Maak je geen zorgen als je een sleutel met een wachtwoord instelt. Dat is iets anders, en dit zal daar helemaal geen invloed op hebben. Open het SSH-configuratiebestand op / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Zoek de regel die luidt:

#PermitRootLogin prohibit-wachtwoord

Verander het in:

PermitRootLogin nee

Zoek vervolgens de twee lijnen:

#PasswordAuthentication ja #PermitEmptyPasswords nee

Verander ze in:

PasswordAuthentication no PermitEmptyPasswords no

Zoek ten slotte:

GebruikPAM ja

Maak het:

GebruikPAM nr

Sla uw bestand op en sluit het. Start vervolgens SSH opnieuw. Dit kan je aftrappen, dus maak opnieuw verbinding als dat zo is.

$ sudo systemctl herstart sshd

Configureer uw database

Het volgende dat u moet doen, is uw database configureren. Er is hier echt niet zoveel bij betrokken, dus maak je geen zorgen. U hoeft alleen een gebruiker en een lege database in te stellen voor Nextcloud om toegang te krijgen.

Er is eigenlijk een handig script om MariaDB voor u in te stellen en te beveiligen. Voer het eerst uit.

$ sudo mysql_secure_installation

Het standaard root-wachtwoord is leeg, dus het "Enter" wanneer gevraagd. Vervolgens wordt u gevraagd om een ​​rootwachtwoord in te stellen. Doe dat. Antwoord "Ja" op elke vraag die volgt.

U kunt zich aanmelden bij uw database met het rootwachtwoord dat u zojuist hebt ingesteld.

$ sudo mysql -u root -p

De prompt verandert in die van MariaDB. Dit is de console voor het beheren van uw databaseserver. Begin met het maken van een nieuwe database. Hoofdlettergebruik telt hier.

DATABASE MAKEN nextcloud;

Maak vervolgens een gebruiker voor die database.

CREER GEBRUIKER `nextcloud` @` localhost` GEÏDENTIFICEERD DOOR "PasswordForUser";

Geef die gebruiker vervolgens toestemming om de database te gebruiken.

TOEGELATEN ALLEN op nextcloud. * NAAR `nextcloud` @` localhost`;

Dat is het! U kunt de databaseserver nu verlaten.

q

Configureer PHP

Nextcloud is geschreven in PHP. U hebt de nieuwste versie van PHP die beschikbaar is op Debian Stretch al geïnstalleerd, samen met de PHP-extensies die Nextcloud nodig heeft om goed te werken. Je moet nog steeds een paar aanpassingen maken aan je PHP-configuratie om het gemakkelijker te laten werken met Nginx.

Het heeft echt alleen een paar fundamentele beveiligingsaanpassingen nodig. Dit zijn geen belangrijke dingen, maar ze helpen de beveiliging van uw server te verbeteren.

Open /etc/php/7.0/fpm/php.ini met sudo en je favoriete teksteditor.

Het bestand is enorm, dus gebruik de zoekfunctie van je editor om rond te navigeren. Als je Nano hebt gebruikt, is dit Ctrl + W. De eerste optie die u moet vinden is disable_functions. Voeg op het einde phpinfo, systeem, e-mail, exec toe.

Zoek vervolgens sql.safe_mode en schakel deze in. Zet vervolgens allow_url_fopen uit. Voeg aan het einde van het bestand de volgende regel toe, sla op en sluit deze.

register_globals = Uit

Ontvang Nextcloud

Nextcloud is nog niet beschikbaar als pakket voor Debian, en dat is goed. Je hoeft het echt niet te zijn. Het lijkt veel op andere vooraf gebouwde PHP-webtoepassingen, zoals WordPress, en het komt in een gecomprimeerd archief dat je kunt uitpakken waar je Nextcloud wilt installeren.

Vanaf nu is de nieuwste stabiele release Nextcloud, controleer nogmaals wat de nieuwste versie voor jou is wanneer je dit leest. De gids verwijst naar 12, maar gebruikt de nieuwste stabiele.

Ga naar een map waar u uw Nextcloud-archief wilt downloaden. Wijzig vervolgens in / var / www om het uit te pakken.

$ 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

Als u dit in de toekomst leest, kunt u de downloadkoppeling vinden op de serverinstallatiepagina van Nextcloud.

Wijzig ten slotte het eigendom van uw Nextcloud-installatie in www-data.

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

Maak SSL-certificaten

Het creëren van uw SSL-certificaten is heel eenvoudig dankzij Certbot. Certbot genereert automatisch uw SSL-certificaten voor u en plaatst deze in de webwortel van de site waarvoor u ze maakt. U hoeft slechts één opdracht uit te voeren.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d uw-domein.com -d www.uw-domein.com

Aangezien het de eerste keer is dat Certbot wordt uitgevoerd, wordt u om een ​​e-mailadres gevraagd. Het zal dat adres gebruiken om u te waarschuwen wanneer uw certificaten op het punt staan ​​te verlopen. Je kunt ze ook eenvoudig met één opdracht vernieuwen.

$ sudo certbot verlengen

Configureer Nginx

Nginx is een lichtgewicht, maar krachtige webserver. Het zal de interface bedienen die u gebruikt om toegang te krijgen tot Nextcloud. Er zijn een paar configuratiebestanden geassocieerd met Nginx. De eerste is de hoofdconfiguratie op /etc/nginx/nginx.conf. Dat is het hoofdconfiguratiebestand, maar het heeft solide standaardwaarden. Je kunt ermee spelen als je weet wat je doet, maar je kunt het met rust laten en ook in orde zijn.

De volgende configuratie is veel langer en complexer. Gelukkig hoef je niet alles te schrijven. De ontwikkelaars van Nextcloud deden dat al. U hoeft het alleen maar te wijzigen. Het configuratiebestand bevindt zich op de site van Nextcloud . Grijp die voor de webroot van Nginx. Maak een nieuw bestand op / etc / nginx / sites-available / nextcloud en plak het in.

Nadat u het bestand hebt, moet u een paar eenvoudige wijzigingen aanbrengen. Zoek eerst het stroomopwaartse blok en wijzig het om er zo uit te zien:

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

Zoek vervolgens overal waar cloud.example.com staat en wijzig dit in uw domeinnaam.

Het laatste wat u hoeft te doen is Nginx naar uw SSL-certificaten te wijzen. Verander de lijnen:

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

Naar:

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

Dat is het! Vervolgens moet u het koppelen zodat Nginx het kan vinden.

$ cd / etc / nginx / sites-ingeschakeld $ sudo ln -s / etc / nginx / sites-beschikbaar / nextcoud nextcloud

Verwijder de bestaande standaard die er is.

$ sudo rm standaard

Start PHP en Nginx opnieuw en je hebt toegang tot Nextcloud!

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

Start Nextcloud

Open uw webbrowser en navigeer naar uw domeinnaam. Je wordt begroet met het Nextcloud-installatiescherm. Maak zelf een beheerdersaccount en voer de informatie in voor de database-account die u hebt gemaakt.

Nextcloud duurt enkele minuten om zichzelf te configureren en te installeren. Als het klaar is, word je neergezet in je nieuwe Nextcloud-dashboard. Van daaruit kunt u nieuwe gebruikers maken om mensen die u vertrouwt toe te staan ​​op uw nieuwe cloudopslag. Je kunt ook meteen beginnen met het uploaden van bestanden.

Dat is het! Je hebt nu je eigen privé cloud!

Creëer uw eigen privé cloud met nextcloud