Home Enterprise De ultieme Nextcloud-servergids

De ultieme Nextcloud-servergids

by Andrew Waag

Dit artikel laat zien hoe u een krachtige, aanpasbare cloudopslagserver bouwt met Ubuntu Server 24.04.1 en Nextcloud Hub 9. Hiervoor hebt u enige kennis van Linux-serverbeheer en de opdrachtregel nodig.

Niemand houdt ervan om geen gratis cloudopslag meer te hebben. Als je die melding van Google Photos of iCloud ziet dat je geen ruimte meer hebt, kan dat een domper zetten op je exotische luiaard-seeingtrip naar Zuid-Amerika. Voor ons doe-het-zelvers en thuislabbers is er echter een oplossing als je bereid bent om je handen vuil te maken.

Introductie van Nextcloud

Nextcloud is een gratis en open-source cloudopslagplatform dat de kracht en flexibiliteit van de cloud in uw handen legt. Het ondersteunt verschillende populaire Linux-distributies, zoals Red Hat Enterprise Linux 9 en Ubuntu 24.04 LTS. In dit artikel gebruiken we Ubuntu Server 24.04.1 en Nextcloud Hub 9 (30.0.0) om een ​​krachtige, volledig aanpasbare cloudopslagserver te bouwen. Sommige van de hier getoonde stappen vereisen mogelijk enige achtergrondkennis van Linux-serverbeheer en de opdrachtregelinterface, dus zet uw denkpet op en bereid u voor op de technische kant!

De server instellen

Om een ​​Nextcloud-server te starten, hebt u een nieuwe installatie van Ubuntu Server nodig op een systeem naar keuze. Een virtuele machine op uw hoofdcomputer of welke reservehardware u ook hebt liggen, zal waarschijnlijk de truc doen! Wij raden een computer aan met ten minste 2-4 CPU-cores, 8 gigabyte RAM en 500 GB opslag. Wanneer u uw systeem gereed hebt, downloadt u Ubuntu Server via deze link: https://ubuntu.com/download/server .

Als u Ubuntu Server nog nooit eerder hebt geïnstalleerd, raadpleeg dan eerst hun handleiding voordat u begint: https://ubuntu.com/tutorials/install-ubuntu-server Zorg ervoor dat u niet de optie selecteert om Nextcloud vooraf te installeren op de aanbevolen softwarepagina, want dat regelen wij zelf.

Nadat u uw server op het netwerk hebt aangesloten, deze een hostnaam hebt gegeven en bent ingelogd met de gebruikersnaam en het wachtwoord die u tijdens de eerste installatie hebt gemaakt, kunt u de nieuwste software-updates voor Ubuntu Server ophalen door te typen “sudo apt update en sudo apt upgrade -y” in de console en druk op enter. Start de server opnieuw op nadat de updates zijn voltooid door “sudo opnieuw opstarten”.

Let op: Het kan zijn dat u uw wachtwoord opnieuw moet invoeren om sudo-opdrachten uit te voeren.

De software installeren

Vervolgens moeten we een aantal van de vereiste software pakken waar onze Nextcloud-instantie van afhankelijk is. Typ (of kopieer en plak bij voorkeur) de volgende opdrachten in uw opdrachtregelinterface om de Apache-webserver te downloaden en te installeren, evenals een paar pakketten die u later nodig hebt voor geavanceerdere Nextcloud-installaties:

sudo apt install apache2 mariadb-server php libapache2-mod-php redis-server libmagickcore-6.q16-7-extra
sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml

Als u wordt gevraagd om Y of N te typen om de installatie voort te zetten of te stoppen, typt u Y en drukt u op enter. Typ ten slotte “wget https://download.nextcloud.com/server/releases/latest.zip"om de nieuwste versie van Nextcloud te krijgen en te gebruiken “sudo apt install unzip” Om de unzip-tool te installeren, moeten we die bestanden uitpakken.

Nu we alle benodigde software hebben om onze Nextcloud-instantie in te stellen, gaan we de webserver die we hebben geïnstalleerd, bekijken.

De Apache-webserver configureren – Deel 1

Voordat we met Apache gaan rommelen, moeten we eerst zorgen dat we goed verbinding kunnen maken met de server. Om webbrowserverbindingen (HTTP en HTTPS) met de Nextcloud-instantie toe te staan, gebruikt u de volgende opdrachten:

sudo ufw toestaan ​​in "Apache Full"
sudo ufw inschakelen

U zou nu een draaiende en toegankelijke webserver op uw Ubuntu Server moeten hebben! Typ op een andere computer die is verbonden met hetzelfde netwerk als uw Nextcloud-machine het IP-adres van uw server in een browservenster en druk op enter. Als u zich het IP-adres van de server niet meer kunt herinneren, gebruikt u de “hostnaam -I” opdracht op uw server om het weer te geven. Als uw installatie succesvol was, zou u de standaard Apache2-pagina in al zijn glorie moeten zien!

Hoewel sommigen deze standaard webserverpagina misschien wel gaaf vinden, vervangen we deze in deel twee door iets nog beters. Laten we een korte omweg maken en MariaDB nu instellen!

MariaDB configureren

Onze Nextcloud-server heeft een altijd-online database nodig om serverconfiguratie en gebruikersprofielinformatie op te slaan. Om MariaDB te configureren om te draaien nadat het systeem opnieuw is opgestart, typt u “sudo systemctl mariadb inschakelen” en druk op enter. Nu zijn we klaar om de database voor te bereiden op onze Nextcloud-installatie!

Gelukkig wordt MariaDB geleverd met een veilig installatieprogramma, zodat we niet veel zwaar werk hoeven te doen. “sudo mysql_secure_installatie” om het te starten en de vragen van de wizard te beantwoorden.

  • Voer huidig ​​wachtwoord voor root in (voer voor geen enkel in): klik op enter
  • Overschakelen naar unix_socket-authenticatie [J/n] n
  • Het root-wachtwoord wijzigen? n
  • Anonieme gebruikers verwijderen? [Y / n] y
  • Geen root login op afstand toestaan? [Y / n] y
  • Testdatabase verwijderen en er toegang toe hebben? [Y / n] y

MariaDB is nu veilig en we kunnen beginnen met het maken van een database voor onze Nextcloud-instantie.

Type “sudo mysql -u root” en voer deze opdrachten in wanneer de MySQL-opdrachtregelinterface verschijnt (en zorg ervoor dat u “;” aan het einde van elke regel gebruikt!):

MAAK GEBRUIKER 'nextcloud'@'localhost' GEÏDENTIFICEERD DOOR 'P@$$w0rd';

Let op: Vervang “nextcloud” en “P@$$w0rd” door een gebruikersnaam en wachtwoord naar keuze.

DATABASE MAKEN ALS DIE NIET BESTAAT nextcloud KARAKTERSET utf8mb4 COLLATE utf8mb4_general_ci;
VERLEEN ALLE RECHTEN OP nextcloud.* AAN 'nextcloud'@'localhost';

Let op: Vervang opnieuw het ‘nextcloud’-symbool voor het @-symbool door de gebruikersnaam die u eerder hebt gebruikt.

VOORRECHTEN VOOR FLU'S;
ontslag nemen;

We komen dichterbij! We hebben nu een functionele (maar nog niet afgemaakte) webserver en database.

PHP-extensies inschakelen en PHP-prestaties verbeteren

Herinnert u zich al die PHP-extensies die we hebben geïnstalleerd? We moeten ze inschakelen om ervoor te zorgen dat Nextcloud ze goed kan gebruiken. Gebruik deze opdracht om de vereiste PHP-extensies in te schakelen:

sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml

Nu de juiste extensies zijn ingeschakeld, moeten we enkele PHP-instellingen aanpassen om beter aan onze behoeften te voldoen. Het PHP-configuratiebestand dat we gaan bewerken, bevindt zich op “/etc/php/8.3/apache2/php.ini” en kan worden gewijzigd door het plaatsen “sudo nano” voor het pad en druk op enter. Als u een andere versie van PHP hebt geïnstalleerd, wijzigt u de "8.3" naar het hoofdversienummer van uw geïnstalleerde versie, dat u kunt verkrijgen door “php-v” in de console.

Zodra u de “php.ini” bestand met nano, Ubuntu's ingebouwde teksteditor, houd de control (ctrl) toets ingedrukt en tik op de "W" toets op uw toetsenbord. Wanneer de zoekbalk verschijnt, typt u in “maximale_uitvoeringstijd”, en druk op enter. Nano springt dan naar de eerste match die het vindt met de waarde die u hebt ingevoerd. Gebruik de pijltjestoetsen om te navigeren en de backspace-toets om tekens te verwijderen, verander de "30" in "360". Herhaal deze truc om de waarden voor de volgende PHP-instellingen te wijzigen:

memory_limit = 512M
  • Kan optioneel worden verhoogd om PHP indien nodig meer geheugen te geven (1024M, 2048M, enz.)
post_max_grootte = 100G
upload_max_bestandsgrootte = 100G
  • Deze waarde en de vorige waarde vertegenwoordigen de maximale bestandsgrootte die u kunt uploaden naar uw Nextcloud-server. Wijzig ze naar uw gewenste maximale bestandsgrootte. (1G = 1 gigabyte, 10G = 10 gigabyte, 100G = 100 gigabyte, enz.) Zorg ervoor dat u alleen groottes in K (kilobytes), M (megabytes) en G (gigabytes) invoert.
datum.tijdzone = Amerika/New_York
  • Verwijder “;” voor de regel en gebruik deze gids om uw juiste tijdzone te bepalen: https://www.php.net/manual/en/timezones.php
opcache.enable=1
  • Verwijder “;” voor de regel.
opcache.memory_consumption=128
  • Verwijder “;” voor de regel. Deze waarde, in megabytes, kan worden aangepast aan de hoeveelheid geheugen die u in uw Nextcloud-server hebt (128 = 128 megabytes, 1024 = 1024 megabytes/1 gigabyte, 2048 = 2048 megabytes/2 gigabytes).
opcache.interned_stringers_buffer=16
  • Verwijder “;” voor de regel. Geeft de hoeveelheid geheugen weer die is toegewezen voor geïnterneerde strings in megabytes, de aanbevolen waarde is 16.
opcache.max_accelerated_files=10000
  • Verwijder “;” voor de regel. Deze waarde kan worden aangepast naar elk getal tussen 200 en 1000000 om aan te sluiten bij de cache- en geheugencapaciteiten van uw systeem.
opcache.revalidate_freq=1
  • Verwijder “;” voor de regel en verander dit naar 1.
opcache.save_comments=1
  • Verwijder “;” voor de regel en controleer of de waarde op 1 staat.

Nadat u alle benodigde wijzigingen in het php.ini-bestand hebt voltooid, slaat u het bestand op door de control-toets (ctrl) ingedrukt te houden en op de toets "O" te drukken. Druk op enter om te bevestigen en houd control (ctrl) opnieuw ingedrukt en tik op de toets "X" om nano te verlaten.

Schakel vervolgens meer vereiste Apache-modules in door “sudo a2enmod dir env headers mime herschrijven ssl” in de console. U hoeft Apache op dit punt niet opnieuw te starten met de opdracht die in het consolebericht wordt voorgesteld.

De Apache-webserver configureren – Deel 2

Hoewel we Nextcloud hebben gedownload en veel van de softwarevereisten hebben ingesteld, moeten we nog steeds de standaard Apache-webpagina vervangen door Nextcloud. Type “cd-rom” in de console en druk op enter, waarmee we terugkeren naar de home directory van onze gebruiker. Dit is waar het Nextcloud ZIP-bestand is gedownload. Typ nu “unzip nieuwste.zip” Druk op Enter en zie het unzip-hulpprogramma brullen!

De “nieuwste.zip” Het ZIP-bestand is nu uitgepakt in een map met de naam “volgende cloud” in dezelfde directory waar het is gedownload. Deze nieuwe map bevat alle benodigde materialen voor de Nextcloud-site. Nu gaan we deze map naar de juiste locatie verplaatsen, “/var/www/html”.

Voordat de map kan worden getransporteerd, moeten we ervoor zorgen dat de ingebouwde “www-gegevens” gebruiker is de eigenaar van de nieuwe directory. Dit is extreem belangrijk omdat de “www-gegevens” gebruiker verwerkt alle webserverbewerkingen die worden uitgevoerd door de Apache-webserver en Nextcloud zelf. Type “sudo chown -R www-gegevens:www-gegevens ./nextcloud” in de console en druk op enter.

Nu de “www-gegevens” gebruiker is eigenaar van de map, kunnen we deze zonder vertraging verplaatsen. Gebruik “sudo mv ./nextcloud /var/www/html” om de map naar de juiste directory te verplaatsen.

We kunnen nu de standaard Apache webserverpagina uitschakelen door “sudo a2dissite 000-default.conf” in de console. Negeer de waarschuwing om de Apache-server opnieuw te laden en maak een virtueel hostbestand voor de nieuwe site door te typen “sudo nano /etc/apache2/sites-available/nextcloud.conf” en druk op enter. De inhoud van het virtuele hostbestand moet exact als volgt worden getypt:

DocumentRoot /var/www/html/nextcloud/ Servernaam nextcloud-demo.moose.local Vereisen alle toegekende AllowOverride Alle opties FollowSymLinks MultiViews Dav uit

vervangen “nextcloud-demo.moose.local” met de volledig gekwalificeerde domeinnaam (FQDN) van de server waarop u Nextcloud hebt geïnstalleerd. Het eerste deel van de FQDN is de hostnaam van de server die u eerder hebt gemaakt, die kan worden weergegeven met behulp van de “hostnaam” opdracht in de console. Het tweede en derde deel van de naam zijn respectievelijk het domein en het topleveldomein. Als uw domein bijvoorbeeld “opslagreview.com” en de hostnaam van uw server was “volgende cloud”, dan zou de FQDN van uw server zijn “nextcloud.storagereview.com”.

Als u geen domein bezit, kunt u er een kopen bij een registrar zoals Cloudflare met behulp van https://www.cloudflare.com/products/registrar/ of gebruik een gratis, openbaar beschikbare hostnaam van websites zoals https://www.noip.com/ Als u geen domein wilt kopen of geen gratis hostnaam wilt gebruiken, kunt u een fictieve FQDN in dit veld plaatsen. Let wel: u kunt alleen het IP-adres van de server (openbaar en privé) gebruiken om verbinding te maken met de Nextcloud-instantie.

Let op: Om de FQDN van de server te gebruiken voor lokale toegang tot uw Nextcloud-instance, moet u een correct geconfigureerde DNS-server op uw thuisnetwerk hebben draaien. Anders moet u het lokale IP-adres van de server gebruiken wanneer u deze vanaf uw thuisnetwerk benadert.

Wanneer u klaar bent met het schrijven van het virtuele hostbestand en de voorbeeld-FQDN hebt vervangen door de FQDN van uw server (legitiem of anderszins), kunt u de Nextcloud-site eindelijk inschakelen met behulp van “sudo a2ensite nextcloud.conf” en “sudo systemctl herstart apache2” om de webserver opnieuw te starten met de nieuwe site. Navigeer naar uw Nextcloud-instance met een webbrowser op een andere computer die zich op hetzelfde netwerk bevindt via de FQDN van de server of het lokale IP-adres.

Nextcloud Eerste installatie

Als u de vorige stappen correct hebt gevolgd, wordt u begroet met een pagina die u vraagt ​​om een ​​admin-gebruiker voor de site aan te maken en wat gegevens over uw Nextcloud-server in te vullen. Geef de admin-gebruiker de gewenste naam, zoals Administrator of Superadmin, en een sterk wachtwoord.

Eerste installatie van NextcloudVoer in het gedeelte 'Opslag en database' van de instellingenpagina het volgende in: “/var/www/html/nextcloud/data” in het veld "Data folder" en de gebruikersnaam, het wachtwoord en de databasenaam die u hebt gebruikt bij het maken van de MariaDB-database. Voer voor het veld "Database host" in "lokale host" en klik op de knop Installeren als u klaar bent.

Nextcloud configureert de database

De site laadt even en biedt u vervolgens de optie om verschillende aanbevolen apps voor uw Nextcloud-server te installeren. Houd er rekening mee dat het toevoegen van meer apps aan uw Nextcloud-instance de verwerkingsbelasting, het geheugengebruik en het totale schijfgebruik van de server zal verhogen. Kies of u de aanbevolen apps wilt installeren of sla deze stap eventueel over.

Door Nextcloud aanbevolen appsZodra de apps geïnstalleerd zijn of de volgende pagina verschijnt, kunt u, indien gewenst, het introductiemenu doorlezen.

Het lijkt erop dat de Nextcloud-server klaar is, maar we moeten nog één stap zetten om de server te laten werken: een cronjob instellen om regelmatig geplande taken op de server uit te voeren.

Een cron-taak maken

Een cronjob is een opdracht die regelmatig wordt uitgevoerd zonder tussenkomst van de gebruiker. Onze Nextcloud-server heeft een cronjob nodig om de server aan te roepen “cron.php” script elke 5 minuten voor optimale prestaties en functionaliteit.

Om deze cron-taak in te stellen, voert u de opdracht in "sudo crontab -u www-data -e" in de console van de server.

Wanneer de “www-gegevens” Als de crontab van de gebruiker wordt geopend, voegt u de volgende regel toe aan het einde van het bestand:

*/5 * * * * php -f /var/www/nextcloud/cron.php

Wanneer u klaar bent, houdt u de control (ctrl)-toets ingedrukt en drukt u op de "O"-toets om het bestand op te slaan, en houdt u de control (ctrl)-toets ingedrukt en drukt u op de "X"-toets om af te sluiten. Gefeliciteerd! U hebt nu een werkende Nextcloud-server beschikbaar op uw lokale netwerk! U kunt nu beginnen met het uploaden en downloaden van bestanden van en naar uw Nextcloud-server op uw thuisnetwerk, maar om het te laten schitteren, moeten we de beveiliging verbeteren, een paar favoriete homelab-apps toevoegen, een razendsnel geheugencachingsysteem instellen en het toegankelijk maken vanaf het openbare internet.

Verbeter de beveiliging van uw Nextcloud-server

Een van de beste manieren om de beveiliging van uw webserver te verbeteren, is door te upgraden naar HTTPS in plaats van ongecodeerde en onveilige HTTP. Wanneer ingeschakeld, worden verzoeken via TLS 1.3 uitgevoerd, de nieuwste en veiligste encryptiestandaard voor webverbindingen. Dit is een noodzakelijke stap wanneer u van plan bent om een ​​website bloot te stellen aan het openbare internet en is een uitstekende eerste stap bij het beschermen van gevoelige informatie.

Zodra u hebt besloten om uw Nextcloud-verkeer te versleutelen, zijn er twee opties om HTTPS in te stellen: een zelfondertekend certificaat gebruiken of een certificaat van een geldige certificeringsinstantie gebruiken. Als u momenteel geen domein bezit of niet van plan bent om er een in te stellen voor een tijdelijke Nextcloud-instantie, raden we u aan een zelfondertekend certificaat of een certificaat van een hostnameprovider te gebruiken. Als u van plan bent om een ​​meer permanente Nextcloud-installatie te hebben, raden we u ten zeerste aan om een ​​openbaar vertrouwd certificaat te verkrijgen van een certificeringsinstantie zoals Let's Encrypt.

HTTPS met een zelfondertekend certificaat

Om een ​​zelfondertekend certificaat in te schakelen en te maken, moet u een paar eenvoudige opdrachten uitvoeren:

sudo a2enmod ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt

Nu we de Apache SSL (ook bekend als TLS) module hebben ingeschakeld en het zelfondertekende certificaat hebben gemaakt, moeten we de site instrueren om TLS in te schakelen en het certificaat te gebruiken. Type “sudo nano /etc/apache2/sites-available/nextcloud.conf” en druk op Enter om het virtuele hostbestand opnieuw te bewerken.

Voeg de volgende regels toe aan het einde van uw virtuele hostbestand, precies zoals hieronder, maar vervang het veld "ServerName" door de volledig gekwalificeerde domeinnaam van uw server:

DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLEngine op SSLCertificateFile /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key Vereisen alle toegekende AllowOverride Alle opties FollowSymLinks MultiViews Dav uit

Houd control (ctrl) ingedrukt en druk op de toets "O" om het bestand op te slaan, en houd control (ctrl) ingedrukt en druk op de toets "X" om nano te verlaten. Om deze wijzigingen toe te passen op de Apache-webserver, gebruikt u de “sudo systemctl herstart apache2” commando. Je zou nu HTTPS moeten hebben ingeschakeld met een zelfondertekend certificaat!

De volgende keer dat u uw site bezoekt door de volledig gekwalificeerde domeinnaam of het IP-adres van de server in te typen, ziet u een waarschuwing die u informeert dat de certificeringsinstantie van de site niet geldig is. Ga voorbij deze fout (de methode verschilt afhankelijk van uw webbrowser) en bekijk de site. De webbrowser heeft automatisch verbinding gemaakt met HTTPS en verzendt gegevens met TLS-codering.

Nextcloud-dashboard

HTTPS met een vertrouwd certificaat

Om een ​​vertrouwd certificaat voor Nextcloud te gebruiken, moet u eerst een domein bezitten of een ondertekend certificaat van een hostnameprovider hebben. Als u eerder een zelfondertekend certificaat gebruikte en de stappen in de vorige sectie volgde om HTTPS in te schakelen, verwijdert u het tekstgedeelte dat onderaan het bestand is toegevoegd en voert u de opdrachten uit “sudo a2dismod ssl” en “sudo systemctl herstart apache2”Vergeet niet om control + “O” en control + “X” te gebruiken om op te slaan en nano af te sluiten als je klaar bent.

HTTPS-installatie voor domeineigenaren (via Certbot)

Nu het virtuele hostbestand weer een standaard HTTP-configuratie heeft, kunnen we beginnen met de voorbereidingen om een ​​vertrouwd certificaat van een certificeringsinstantie te gebruiken. Als u een domein bezit, volgt u deze stappen om een ​​certificaat te verkrijgen en te implementeren. Als u dat niet hebt, gaat u naar de volgende sectie, waarin wordt beschreven hoe u een certificaat kunt gebruiken dat is verkregen van een hostnameprovider. Om een ​​certificaat te verkrijgen dat met uw eigen domein wordt gebruikt, gebruiken we Certbot van Let's Encrypt, een non-profitorganisatie die gratis certificaten verstrekt voor gebruik in webservers.

Om Certbot te downloaden, moet u eerst Snap installeren en updaten met “sudo snap kern installeren en sudo snap kern vernieuwen”. Typ dan “sudo snap install –klassieke certbot” (twee streepjes op een rij vóór “classic”) om het pakket te installeren.

Voer het commando uit “sudo certbot –apache” (opnieuw, twee streepjes vóór "apache") om certbot te starten en volg alle aanwijzingen om uw webcertificaat te maken en te downloaden.

Voor het proces van het aanmaken van het certificaat is informatie nodig, zoals een e-mailadres dat wordt gebruikt om contact op te nemen met de domeineigenaar, en om u te vragen akkoord te gaan met de algemene voorwaarden die door Let's Encrypt worden vereist. Voer de domeinnaam in of selecteer deze waarvoor u een certificaat wilt verkrijgen wanneer u hierom wordt gevraagd, en voltooi het interactieve proces. Als u fouten tegenkomt tijdens het gebruik van Certbot, moet u mogelijk poortdoorsturing op uw router inschakelen voor poorten 80 en 443 naar het privé-IP-adres van uw Nextcloud-server of de DNS-records van uw domein configureren om te verwijzen naar het openbare IP-adres van uw router. Het proces voor poortdoorsturing en DNS-recordinstelling is sterk afhankelijk van uw router, domeinregistrar en internetprovider en wordt daarom niet behandeld in deze handleiding.

Nadat Certbot klaar is, opent u het virtuele hostbestand opnieuw door te typen “sudo nano /etc/apache2/sites-available/nextcloud.conf” en druk op enter. Voeg de volgende regels direct boven de header om het herschrijven van HTTP-URL's als HTTPS mogelijk te maken en te vervangen “nextcloud-demo.moose.local” met de volledig gekwalificeerde domeinnaam van uw server:

RewriteEngine op RewriteCond %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Het voltooide virtuele hostbestand zou er als volgt uit moeten zien:

U zou nu een vertrouwd certificaat van een geldige certificeringsinstantie moeten hebben en de HTTPS-encryptie zou klaar moeten zijn voor het web!

HTTPS-installatie met behulp van een certificaat van een hostnameprovider

De stappen voor het gebruiken van een certificaat van een hostnameprovider om HTTPS op uw Nextcloud-server in te schakelen, zijn identiek aan die in de sectie 'HTTPS met een zelfondertekend certificaat' in dit artikel, met als enige uitzondering dat u het pad naar de zelfondertekende sleutels moet vervangen door een pad naar de sleutels van uw hostnameprovider. Opdrachten zoals “wget” en “mv” kan worden gebruikt om de certificaatbestanden te downloaden en te verplaatsen naar de juiste mappen (/etc/ssl/certs voor het certificaatbestand en /etc/ssl/private voor het sleutelbestand). Zorg ervoor dat u de Apache SSL-module inschakelt met de “sudo a2enmod ssl” commando en gebruik “sudo systemctl herstart apache2” wanneer u klaar bent om uw wijzigingen toe te passen. Het voltooide virtuele hostbestand voor het gebruik van certificaatbestanden zou er ongeveer zo uit moeten zien (met de velden SSLCertificateFile en SSLCertificateKeyFile vervangen door paden naar uw aangepaste certificaat- en sleutelbestanden):

De Antivirus voor Bestanden-app installeren

Hoewel Nextcloud gegevens veilig via HTTPS kan verzenden, betekent dat niet dat alles wat u of uw gebruikers uploaden veilig is. Of het nu opzettelijk of onopzettelijk is, malware-infecties op webservers kunnen enorme schade aanrichten en zich razendsnel verspreiden naar andere systemen als er niet snel iets aan wordt gedaan. Voor een extra beschermingslaag tegen kwaadwillenden op internet is een antivirusprogramma een must-have voor servers die toegankelijk zijn vanaf internet.

ClamAV is een gratis en open-source antivirus suite die kan worden geïntegreerd met Nextcloud om bestanden die door gebruikers zijn geüpload te scannen op malware. De Nextcloud app store heeft een app genaamd "Antivirus for files" die ClamAV gebruikt als backend om gebruikersbestanden te scannen en uw server te beschermen. Deze app kan worden gedownload door naar het tabblad "Apps" te navigeren door te klikken op de profielfoto van uw beheerdersaccount en de categorie "Security" te selecteren.

Klik op de knop 'Downloaden en inschakelen' in het gedeelte 'Antivirus voor bestanden' om het op uw Nextcloud-instantie te installeren. Vervolgens moeten we ClamAV installeren en het scanner- en malware-handtekeningupdatesysteem inschakelen. Gebruik “sudo apt installeert clamav clamav-daemon” om alle benodigde ClamAV-pakketten te verkrijgen.

Wanneer de pakketten zijn geïnstalleerd, voer je het volgende uit: “sudo dpkg-clamav-daemon opnieuw configureren” in de console om een ​​interactief configuratiemenu te openen. We zullen dit gebruiken om het scangedrag van onze ClamAV-installatie aan te passen.Geef de volgende antwoorden op de onderstaande vragen:

  • Het configuratiebestand automatisch verwerken? Ja
  • Socket type: UNIX
  • Lokale (UNIX) socket clamd luistert naar: /var/run/clamav/clamd.ctl
  • Groepseigenaar van clamd lokale (UNIX) socket: ClamAV
  • Aanmaakmodus voor clamd lokale (UNIX) socket: 666
  • Hoe kan ik overgebleven UNIX-socketbestanden op een elegante manier verwerken? Ja
  • Wilt u e-mailscanning inschakelen? Nee
  • Wilt u archiefscannen inschakelen? Nee
  • Maximale toegestane directorydiepte: 15
  • Wilt u dat de daemon de normale bestands-symlinks volgt? Ja
  • Time-out voor het stoppen van de threadscanner (seconden): 180
  • Aantal threads voor de daemon: 2
    • Trek 2 af van het aantal cores/vCPU's dat uw Nextcloud-server heeft en voer dat getal in dit veld in.
  • Aantal toegestane verbindingen in behandeling: 15
  • Wilt u de systeemlogger gebruiken? Nee
  • Logbestand voor clamav-daemon (voer geen in om uit te schakelen): /var/log/clamav.log
  • Wilt u bij elk bericht tijdinformatie vastleggen? Nee
    • Als een grote hoeveelheid schrijfbewerkingen niet schadelijk is voor uw systeem, kiest u in plaats daarvan “Ja”.
  • Wilt u logrotatie inschakelen? Ja
  • Vertraging in seconden tussen zelfcontroles van de daemon: 3600
  • Gebruiker moet clamav-daemon uitvoeren als: ClamAV
  • Groepen voor clamav-daemon (gescheiden door spaties): www-data
  • Wilt u bytecode uit de database laden? Ja
  • Beveiligingsniveau dat op de bytecode moet worden toegepast: VertrouwenGetekend
  • Bytecode-uitvoeringstime-out in milliseconden: 60000

Oef! Dat was een hoop configureren! Gelukkig hoeven we het maar één keer te doen. Gebruik “systemctl schakelt clamav-freshclam in” en “systemctl schakelt clamav-daemon in” om ClamAV te laten starten nadat het systeem is opgestart, en we kunnen beginnen met het configureren van de Nextcloud-app "Antivirus voor bestanden".

Meld u aan bij Nextcloud met een webbrowser op een andere computer die is verbonden met hetzelfde netwerk en subnet als uw Nextcloud-server en klik op de profielfoto van uw admin-gebruiker. Klik op de optie 'Administration settings' in het vervolgkeuzemenu en selecteer de sectie 'Security' nadat de pagina is geladen.

Scroll naar beneden naar de sectie "Antivirus voor bestanden" en verander het veld "Modus" in "ClamAV Daemon (Socket)". Verander het veld "Wanneer geïnfecteerde bestanden worden gevonden tijdens een achtergrondscan" in "Bestand verwijderen" en klik op de knop "Opslaan". ClamAV scant periodiek bestanden die naar Nextcloud zijn geüpload op malware en verwijdert bestanden die overeenkomen met bekende malwarehandtekeningen.

Nextcloud-integraties en algemene verbeteringen

Nu we een functionele en veilige cloudserver hebben gebouwd voor het opslaan van gegevens, kunnen we de mogelijkheden ervan uitbreiden en nieuwe functies toevoegen. Laten we beginnen met het aanpakken van wat laaghangend fruit: Nextcloud verbinden met een e-mailserver en de standaard telefoonregio instellen.

Een e-mailserver verbinden

Om e-mailmeldingen, activiteitswaarschuwingen en wachtwoordherstelkoppelingen (voor niet-LDAP-gebruikers) te verzenden, moet Nextcloud verbonden zijn met een werkende e-mailserver. Als u uw e-mailserver zelf host, is de installatie net zo eenvoudig als het invoeren van de juiste serveradressering en authenticatiegegevens. U kunt ook een e-mailserver van derden gebruiken met een e-mailadres dat u al hebt, zoals de SMTP-server van Gmail.

Navigeer naar de volledig gekwalificeerde domeinnaam of het IP-adres van uw Nextcloud-server met behulp van een webbrowser op een computer op hetzelfde netwerk en subnet als uw server. Klik op de profielfoto van uw admin-gebruiker en selecteer 'Administration settings' in het dropdownmenu.

Selecteer op de pagina “Beheerinstellingen” het gedeelte “Basisinstellingen” aan de linkerkant en scroll naar beneden naar de module “E-mailserver”.

Vanaf deze pagina kunt u de encryptie-, adresserings- en authenticatie-instellingen van uw e-mailserver configureren. U kunt een paar encryptie- en authenticatiemethoden kiezen die passen bij uw beveiligings- of compatibiliteitsbehoeften.

Om de SMTP-server van Gmail te gebruiken met een Google-account dat u al bezit, navigeert u eerst naar https://myaccount.google.com/apppasswords en maak een app-wachtwoord door de instructies op de site te volgen. Geef uw app-wachtwoord een naam die is gekoppeld aan uw Nextcloud-server en bewaar uw wachtwoord op een veilige locatie. Let op: het wachtwoord wordt weergegeven met spaties om de vier tekens, maar bevat deze spaties niet. App-wachtwoorden zijn reeksen van zestien aaneengesloten letters.

Vul de volgende e-mailservervelden in zoals hieronder vermeld:

  • Verzendmodus: SMTP
  • encryptie: Geen/STARTTLS
  • Van adres: JohnDoe @ opslagreview.com
    • Voer hier het adres van uw Gmail-account in.
  • Serveradres: smtp.gmail.com : 587
  • authenticatie: Ja (vinkje aan)
  • Geloofsbrieven: [e-mail beveiligd] appwachtwoordhier
    • Voer hier het adres van uw Gmail-account en het app-wachtwoord in dat u hebt aangemaakt.

Wanneer u klaar bent, klikt u op de knop "Opslaan" en gebruikt u de knop "E-mail verzenden" om te controleren of uw configuratie geldig is.

Als u nog geen e-mailadres hebt ingesteld voor het admin-gebruikersaccount dat u gebruikt, ontvangt u een waarschuwing waarin u wordt gevraagd dit te doen. Dit kunt u eenvoudig oplossen door te klikken op de profielfoto van uw admin-gebruiker, 'Persoonlijke instellingen' te selecteren in het vervolgkeuzemenu en uw e-mailadres in te voeren in het veld 'E-mail'. Als u klaar bent, gaat u terug naar de module 'E-mailserver' onder 'Basisinstellingen' op de pagina 'Beheerinstellingen' en voert u de configuratie indien nodig opnieuw in.

De standaard telefoonregio instellen

Een snelle maar nuttige wijziging die we kunnen doorvoeren om Nextcloud telefoonnummers beter te laten verwerken, is het instellen van een standaardtelefoonregio voor de instantie. Wanneer gebruikers hun profiel invullen in de instellingen voor 'Persoonlijke info' onder 'Persoonlijke instellingen', wordt hen gevraagd om optioneel een telefoonnummer op te geven voor contactdoeleinden. Zonder een standaardtelefoonregio dwingt Nextcloud gebruikers om een ​​landcode met dit nummer in te voeren. Door de standaardtelefoonregio in te stellen, kunnen gebruikers dit voorvoegsel uitsluiten.

Gebruik in de Nextcloud-serverconsole “sudo nano /var/www/html/nextcloud/config/config.php” om het PHP-configuratiebestand van de Nextcloud-site te bewerken.

Voeg de volgende regel toe aan uw PHP-configuratiebestand, waarbij u consistent blijft met het spatiepatroon dat is gemaakt door de vorige regels en deze invoegt vóór de afsluitende haak “);”:

'default_phone_region' => 'VS',

Om veiligheidsredenen mag u de inhoud van uw Nextcloud-instantie aan niemand laten zien. “config.php” bestand. Het bevat gevoelige informatie zoals wachtwoorden en systeemgeheimen die alleen u of uw systeembeheerder(s) zouden moeten weten. Nadat u klaar bent met het toevoegen van de standaard telefoonregiolijn aan uw configuratiebestand, slaat u de nieuwe inhoud op door control (ctrl) ingedrukt te houden en op "O" te tikken, en vervolgens control ingedrukt te houden en op "X" te tikken om af te sluiten. Om de wijzigingen toe te passen, voert u in “sudo systemctl herstart apache2” in de console en druk op enter.

Een onderhoudsvenster instellen

Een andere kleine verbetering die we kunnen aanbrengen in het PHP-configuratiebestand van de Nextcloud-site is het instellen van een onderhoudsvenster voor de server om intensievere en mogelijk gebruikersbeïnvloedende taken uit te voeren. Het venster wordt ingesteld met behulp van UTC-tijd, dus u moet de gewenste starttijd van het onderhoudsvenster omzetten in een equivalente UTC-tijd (uitgedrukt als een geheel getal tussen 1 en 24). Het onderhoudsvenster duurt vier uur, dus een onderhoudsvenster dat begint om 3:00 AM UTC eindigt om 7:00 AM UTC.

Te gebruiken “sudo nano /var/www/html/nextcloud/config/config.php” om het PHP-configuratiebestand opnieuw te bewerken en deze regel toe te voegen vóór de afsluitende haak “);”, volgens de spatieconventies die worden gebruikt door de regels die al in het bestand staan:

'onderhoudsvenster_start' => 1,
    • Vergeet niet om “1” te vervangen door de gewenste starttijd van het onderhoudsvenster, vertaald naar UTC-tijd.

Nadat u het bestand hebt opgeslagen met behulp van Control (Ctrl) + “O” en Control (Ctrl) + “X”, past u het onderhoudsvenster toe met behulp van “sudo systemctl herstart apache2”.

Integratie van LDAP/Active Directory-server

Als u van plan bent om meerdere gebruikers toegang te geven tot uw Nextcloud-instantie, is een van de krachtigste functies die u aan Nextcloud kunt toevoegen de mogelijkheid om verbinding te maken met en te authenticeren een LDAP- of Active Directory-server. Veel organisaties en homelabbers gebruiken Active Directory of LDAP om gebruikerstoegang tot netwerkbronnen op een gecentraliseerde manier te organiseren en te beheren, en Nextcloud is daarop geen uitzondering. Met de app "LDAP-gebruiker en groepsbackend" kunnen gebruikers van uw Active Directory-domein of LDAP-server worden geïmporteerd in uw Nextcloud-server en inloggen met hun gebruikersnaam of e-mailadres en hun wachtwoord. Deze functie wordt nog krachtiger in combinatie met externe opslag (zoals een SMB-share op een NAS) die individuele 'home'-mappen biedt voor gebruikers met machtigingen die specifiek zijn voor die gebruiker.

Om de app "LDAP user and group backend" te installeren, klikt u eerst op de profielfoto wanneer u bent ingelogd op de Nextcloud-webpagina met uw admin-gebruikersaccount. Selecteer "Apps" in het vervolgkeuzemenu dat verschijnt en klik op de module "Featured apps". Scrol omlaag totdat u de app "LDAP user and group backend" vindt en klik op de knop "Enable".

Nu de app is ingeschakeld, moeten we Nextcloud verbinden met een LDAP-server. Zorg ervoor dat u een account gereed hebt om deze verbinding te autoriseren. Normaal gesproken wordt een serviceaccount aanbevolen dat specifiek is gemaakt voor deze verbinding, maar elk Active Directory- of LDAP-account met de mogelijkheid om de directory te doorzoeken, kan worden gebruikt. Begrijp dat hoewel dit voorbeeld een ingebouwde domein "Administrator"-account op een Active Directory-domein zal gebruiken, dit geen veilige praktijk is. Als de Nextcloud-server wordt gecompromitteerd en de inloggegevens van het 'Administrator'-account worden gestolen, heeft een aanvaller volledige rechten om elk object in het domein te lezen, te wijzigen en zelfs te verwijderen.

Navigeer nogmaals naar de pagina "Administration settings" door te klikken op de profielfoto van uw admin-gebruiker en deze te selecteren in het dropdownmenu. Klik op de "LDAP/AD-integratiemodule" om te beginnen.

Vul op deze pagina de vereiste informatie voor uw LDAP/Active Directory-server in:

  • host: 192.168.1.102
    • Vervang dit door het IP-adres/de hostnaam van uw LDAP-server of Active Directory-domeincontroller.
  • Port: 389
    • Als u Active Directory gebruikt, gebruikt u poort 389. Als u een ander type LDAP-server gebruikt of de poort hebt aangepast waarnaar uw AD-server luistert voor LDAP-aanvragen, voert u hier het specifieke nummer in.
  • Gebruiker DN: CN=Beheerder,CN=Gebruikers,DC=moose,DC=lokaal
    • Voer de distinguished name in voor het account dat wordt gebruikt om Nextcloud te verbinden met uw LDAP/AD-server. Als u Active Directory gebruikt, kunt u dit eenvoudig vinden door deze opdracht uit te voeren met behulp van een CMD-venster, waarbij u 'Administrator' vervangt door de gebruikersnaam van het account dat u gebruikt voor de verbinding:
      • dsquery gebruikersnaam “Beheerder”
    • Klik op de knop 'Inloggegevens opslaan' nadat u dit veld hebt ingevuld.
  • Eén basis-DN per lijn: DC=eland,DC=lokaal
    • Klik op de knop “Basis-DN detecteren” nadat u de vorige inloggegevens hebt opgeslagen om automatisch de basis-DN voor de LDAP/AD-server te bepalen.
    • Klik eventueel op de knop “Test Base DN” om te controleren of de configuratie tot nu toe geldig is.

Nadat u de eerste pagina van de module “LDAP/AD-integratie” hebt voltooid, klikt u op de knop met het label “Doorgaan” en neemt u even de tijd om de sectie “Gebruikers” te bekijken en te bestuderen.

Hoewel de lay-out van de pagina in eerste instantie verwarrend lijkt, is de functie ervan om de gebruikers die beschikbaar zijn voor inloggen op de Nextcloud-server te filteren op kenmerken zoals objectklassen en groepen. We raden aan om een ​​unieke groep te maken voor gebruikers die inloggen op de Nextcloud-server, zodat er gefilterd kan worden op basis van het lidmaatschap van die groep. Selecteer de gewenste objectklassen en/of groepen die u toegang wilt geven en klik op de knop ">" om de groep toe te voegen aan het filter. In dit voorbeeld wordt een groep met de naam "familie" gebruikt. Klik op de knop "Instellingen verifiëren en gebruikers tellen" om een ​​bericht weer te geven met het aantal gebruikers dat past bij de beschrijving die u hebt ingevoerd. Als het aantal onjuist lijkt, controleer dan uw objectklasse- en groepsfilters nogmaals.

Zodra u het juiste aantal gebruikers hebt, klikt u op de knop "Doorgaan" om door te gaan naar de sectie "Login Attributes". Vink de vakjes aan voor de velden "LDAP/AD Username:" en "LDAP/AD Email Address" en controleer of het login-attribuut correct is door een gebruikersnaam en e-mailadres (indien gewenst) in te voeren in het vak "Test Loginname" en te klikken op "Verify settings".

Als de gebruikersnaam/het e-mailadres kan worden gebruikt om in te loggen, verschijnt er een melding met de tekst "Gebruiker gevonden en instellingen geverifieerd". Klik nog een keer op de knop "Doorgaan" om door te gaan naar de laatste pagina, "Groepen". Net als op de pagina "Gebruikers", beperkt de sectie "Groepen" wie kan inloggen op de Nextcloud-server met behulp van objectklasse- en groepscriteria. Maak dezelfde selecties die u op de pagina "Gebruikers" hebt gemaakt, of verminder het aantal gebruikers dat kan inloggen door hier specifiekere criteria in te voeren in de velden "Zoek objectklassen" en "Zoek groepen". In dit voorbeeld wordt de groep "familie" geselecteerd uit de lijst op de pagina en wordt de knop ">" gebruikt om de toegang tot alleen die groep te beperken. Klik ten slotte op "Instellingen verifiëren en de groepen tellen" om het aantal groepen weer te geven dat geldig is voor inloggen.

U hebt nu de mogelijkheid verleend om in te loggen op de Nextcloud-server voor de LDAP- of Active Directory-groepen die in de vorige stappen zijn geselecteerd. Klik op de profielfoto van uw beheerder en selecteer 'Uitloggen'. Wanneer u wordt gevraagd om een ​​gebruikersnaam en wachtwoord om opnieuw in te loggen, test u de inlogmogelijkheid voor een van de gebruikers die u toegang hebt gegeven. Als de gebruiker niet kan inloggen, gaat u opnieuw naar de sectie 'Gebruikers' en 'Groepen' op deze pagina om uw criteria te bekijken en de fout op te lossen.

Integratie van externe opslag

Een andere krachtige toevoeging aan uw Nextcloud-server is de mogelijkheid om verbinding te maken met en externe opslagpools te gebruiken. Gebruikersbestanden rechtstreeks op de server zelf plaatsen, kan leiden tot problemen met betrekking tot het beheer van de opslag van de server en het voortdurend moeten verhogen van de capaciteit om aan de vraag van de gebruiker te voldoen. Als u niet voortdurend waakzaam bent bij het afdwingen van quota's en het verwijderen van onnodige gegevens die door gebruikers zijn gemaakt, kan dit leiden tot frustratie en onverwachte downtime. Het scheiden van de webserver- en opslagcomponenten van een Nextcloud-installatie wordt ten zeerste aanbevolen en is cruciaal wanneer u streeft naar het creëren van een schaalbaar cloudopslagsysteem en een prettige gebruikerservaring.

Met de app “Externe opslagondersteuning” voor Nextcloud kunt u mappen koppelen van de volgende opslagtypen:

  • Amazon S3
  • FTP
  • Nextcloud
    • Ja, dat klopt. U kunt verbinding maken met de opslagruimte op andere Nextcloud-servers en deze gebruiken!
  • OpenStack-objectopslag
  • SFTP
  • SMB / CIFS
  • WebDAV

Zoals u kunt zien, zijn er verschillende keuzes om Nextcloud te verbinden met externe opslagarrays, clouds en andere systemen. Als voorbeeld verbinden we een Nextcloud-instance met een SMB-share die de toegang tot verschillende mappen beheert met behulp van machtigingen die zijn verleend aan gebruikers die zijn geïmporteerd uit het Active Directory-domein waarmee we eerder verbinding hebben gemaakt.

Om de app "Externe opslagondersteuning" in te schakelen, klikt u op de profielfoto van uw beheerder wanneer u bent ingelogd op de site en selecteert u "Apps". Navigeer nogmaals naar "Uitgelichte apps" en zoek de module met het label "Externe opslagondersteuning". Klik op de knop "Inschakelen" om de applicatie beschikbaar te maken.

Wanneer de app is ingeschakeld, kunt u externe opslag toevoegen door naar "Administration settings" te gaan en op de module "External storage" te klikken. Vanaf deze pagina kunt u verbinding maken met externe opslag door het type opslag te selecteren in het dropdownmenu en de configuratiegegevens in te vullen.

Om een ​​SMB-share toe te voegen, selecteert u de optie “SMB/CIFS” uit de lijst en vult u de configuratiegegevens als volgt in:

  • authenticatie: Handmatig ingevoerd, opslaan in database
    • Om gebruikers handmatig hun eigen gebruikersnaam en wachtwoord voor authenticatie te laten invoeren, kiest u deze optie. Om een ​​set statische referenties te gebruiken om gebruikers toegang te geven tot een SMB-share, kiest u 'Login en wachtwoord'. Selecteer anders de optie die het beste bij uw behoeften past in het vervolgkeuzemenu.
  • Mapnaam: familiaal
    • Deze naam kan worden ingesteld op wat u maar wilt gebruiken om de opslag te beschrijven die u mount. Voorbeelden: "SMB" of de naam van de share die u mount.
  • host: 192.168.1.140
    • Vervang deze waarde door het IP-adres of de FQDN van de server waarop de SMB-share staat waarmee u verbinding wilt maken.
  • Delen: familiaal
    • Vervang deze waarde door de naam van de share die u wilt koppelen en die aanwezig is op de server die u hebt ingevoerd in het veld 'Host'.
  • Externe submap: \
    • Om de bovenste map van de share (de gedeelde map zelf) te mounten, gebruikt u “\”. Anders voert u het pad naar een submap in de gewenste share in op deze manier:
      • \submap\nog_een_submap\nog_een_submap
  • Domain: ELAND
    • Vervang deze waarde door de NetBIOS-naam voor een domein als toegang tot de share wordt beheerd met behulp van LDAP of Active Directory. Dit veld is niet vereist als de share niet wordt beheerd door een LDAP/AD-server.
  • Verborgen bestanden weergeven: Check
    • Vink dit vakje aan als gebruikers verborgen bestanden (bestanden die beginnen met een “.”-teken) moeten kunnen bekijken.
  • Hoofdlettergevoelig bestandssysteem: Check
  • Controleer ACL-toegang bij het weergeven van bestanden: Check
    • Deze optie is extreem belangrijk om toegangscontrole goed te laten functioneren. Anders, als twee gebruikers dezelfde share hebben gemount en mappen hebben geconfigureerd zodat de ander geen toegang heeft, kunnen ze nog steeds elkaars bestanden bekijken.
  • Alle mensen: Check
    • Selecteer deze optie als u wilt dat alle Nextcloud-gebruikers inloggegevens kunnen invoeren voor de SMB-share en er verbinding mee kunnen maken. Anders selecteert u een lokale groep op het Nextcloud-exemplaar om de share beschikbaar te maken met behulp van het onderstaande veld.
      • Helaas is het op het moment van schrijven niet mogelijk om een ​​LDAP/Active Directory-groep te selecteren met behulp van het veld onder deze optie als deze niet is geselecteerd.

Nadat u de SMB-shareconfiguratiegegevens voor uw specifieke installatie hebt ingevoerd, klikt u op het vinkje om deze op te slaan en beschikbaar te maken voor gebruikers.

Als u wilt dat gebruikers hun eigen externe opslag kunnen mounten, klikt u op het vinkje onder het gedeelte opslagmounten op de pagina. Als u ervoor kiest om deze optie in te schakelen, kunt u bovendien de typen opslag beperken die beschikbaar zijn voor zelfmounten.

Om het instellen van de SMB-share te voltooien, moeten gebruikers naar de module 'Externe opslag' onder 'Persoonlijke instellingen' navigeren nadat ze op hun profielfoto hebben geklikt en deze hebben geselecteerd in het vervolgkeuzemenu.

Op deze pagina kunnen gebruikers hun gebruikersnaam en wachtwoord invoeren en op het vinkje klikken om de SMB-share te ontgrendelen voor het opslaan en ophalen van bestanden.

Zodra de gebruiker zijn of haar inloggegevens heeft ingevoerd, kan de share worden geopend door op het mappictogram boven aan het menu van de Nextcloud-site te klikken en door de lijst met gebruikersmappen en bestanden te bladeren.

Nextcloud omtoveren tot een echte webserver

Nu is uw feature-rijke Nextcloud-instantie bijna klaar om een ​​openbaar beschikbare en krachtige webserver te worden! Voordat we de sluizen openen, moeten we ervoor zorgen dat de server intensieve verzoeken van meerdere gebruikers die toegang hebben tot bestanden aankan. We hebben de prestaties al verbeterd door verschillende belangrijke bewerkingen aan de PHP-configuratie van het systeem te maken, en het toevoegen van ondersteuning voor geheugencaching kan dat versterken.

Geheugencaching instellen – APCu

ACPu is een PHP-cache die helpt de toegangstijden van veelgebruikte objecten te versnellen. We gebruiken het als de eerste cache voor onze Nextcloud-instantie. Voordat we de APCu-cache inschakelen, moeten we een paar wijzigingen aanbrengen in het bestand "php.ini" van ons systeem.

Te gebruiken “sudo nano /etc/php/8.3/apache2/php.ini” om het bestand te bewerken. Scrol naar het einde van het bestand door de pijl-omlaagtoets een langere tijd ingedrukt te houden. Voeg in een nieuwe regel onderaan het bestand de volgende regels toe:

apc.enable_cli=1
apc.shm_grootte=128M

Door deze twee regels toe te voegen, kan het systeem APCu als cache gebruiken en de cachegrootte instellen op 128 megabytes in plaats van de standaardwaarde van 32. Wanneer u klaar bent, drukt u op Control (Ctrl) + "O" en Control (Ctrl) + "X" om het bestand op te slaan en nano af te sluiten.

Om het inschakelen van de APCu-cache te voltooien, gebruikt u “sudo nano /etc/php/8.3/mods-available/apcu.ini” en voeg “apc.enable_cli=1” onderaan het configuratiebestand, zoals we dat deden voor de “php.ini” bestand. Gebruik control (ctrl) + “O” en control (ctrl) + “X” opnieuw om het configuratiebestand op te slaan en te verlaten.

We hebben PHP ingeschakeld om APCu te gebruiken, maar nu moeten we Nextcloud opdracht geven om het ook te gebruiken.

Type “sudo nano /var/www/html/nextcloud/config/config.php” in de console en druk op enter. In het Nextcloud PHP-configuratiebestand voegen we één regel toe om Nextcloud APCu te laten gebruiken voor lokale geheugencaching:

'memcache.local' => '\OC\Memcache\APCu',

Plaats deze regel vóór de afsluitende “);” haak, volgens de spatieconventies van de vorige configuratiebestandsregels. Houd nogmaals control (ctrl) ingedrukt en druk op “O” en vervolgens control (ctrl) en “X” om op te slaan en af ​​te sluiten.

Nadat het PHP-configuratiebestand is opgeslagen, gebruikt u “sudo systemctl herstart apache2” om de Apache-webserver opnieuw te starten en uw wijzigingen toe te passen.

Als u alle stappen hebt gevolgd om APCu correct in te stellen voor lokale geheugencaching, zou de prestatie van uw Nextcloud-server aanzienlijk moeten zijn verbeterd! Laten we nog een stap verder gaan en Redis configureren voor nog meer geheugencaching.

Geheugencaching instellen – Redis

U vraagt ​​zich misschien af: "Waarom heeft mijn webserver twee verschillende geheugencaches nodig? Is één niet genoeg?" Het antwoord op deze vraag is eigenlijk vrij eenvoudig. Net zoals elk gereedschap in een winkel zijn eigen toepassing heeft, geldt dat ook voor APCu en Redis. APCu is een uitstekende lokale geheugencache en presteert aanzienlijk beter dan de laatste in deze categorie, terwijl Redis schittert in gedistribueerde caching en transactionele bestandsvergrendeling.

Om aan de slag te gaan met Redis, bewerken we het Redis-systeemconfiguratiebestand door het volgende in te voeren:
"sudo nano /etc/redis/redis.conf" in de console en druk op enter. Standaard luistert de Redis-service naar een TCP-poort voor caching en transactiebestandvergrendelingsverkeer, maar voor een enkele serveropstelling is een Unix-socket de voorkeursmethode voor communicatie. Het gebruik van een TCP-poort zou zinvol zijn als we de Redis-service via een netwerk aanbieden, maar een Unix-socket is veel efficiënter voor communicatie tussen de Redis- en Nextcloud-webserverprocessen.

Zodra u nano hebt ingevoerd, houdt u de control (ctrl)-toets ingedrukt en drukt u op "W" om de zoekfunctie van nano te activeren. Typ “unix-socket” in de zoekbalk en druk op enter, en nano springt naar de “Unix-socket” configuratiegedeelte van het bestand. In de “Unix-socket” sectie, verwijder de "#" tekens en lege ruimtes voor “unixsocket /run/redis/redis-server.sock” en “unixsocketperm 700”. Verander de "700" naar "770", en scroll omhoog totdat u de regel vindt die luidt “poort 6379”. We zullen deze waarde wijzigen in "0", wat de Redis-server effectief vertelt om niet te luisteren op een TCP-poort voor verbindingen. Bekijk de onderstaande afbeeldingen om uw configuratiebestand te valideren voordat u control (ctrl) + "O" en control (ctrl) + "X" gebruikt om het bestand op te slaan en te sluiten.

Met deze wijzigingen in het Redis-systeemconfiguratiebestand kunnen we nu specificeren dat we Redis willen gebruiken voor gedistribueerde caching en transactionele bestandsvergrendeling in het Nextcloud PHP-configuratiebestand. Open dit bestand in nano met behulp van “sudo nano /var/www/html/nextcloud/config/config.php”.

Voeg onderaan het Nextcloud PHP-configuratiebestand, vóór de afsluitende haak “);”, de volgende regels toe, waarbij u goed op de spaties en komma’s let:

'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/run/redis/redis-server.sock', 'poort' => 0, ],

Als u de regels correct hebt ingevoerd, zou het geheugencachegedeelte van uw PHP-configuratiebestand er als volgt uit moeten zien:

Voordat u de Apache-webserver en Redis opnieuw opstart om de wijzigingen toe te passen, gebruikt u “sudo usermod -a -G redis www-gegevens” om de. toe te voegen “www-gegevens” gebruiker van de “herhaald” groep, waarmee de webserver toegang krijgt tot de Redis Unix-socket. Typ ten slotte “sudo systemctl herstart apache2 && sudo systemctl herstart redis-server” in de console en druk op Enter om de wijzigingen toe te passen en de betrokken services opnieuw te starten.

Nextcloud blootstellen aan het internet

We zijn bijna klaar! De laatste stap bij het implementeren van uw Nextcloud-server is het toegankelijk maken voor het openbare internet. Voor deze stap moet u poortdoorsturing configureren op uw router, en het kan zijn dat u wat onderzoek moet doen. Gebruik de catalogus met poortdoorsturingshandleidingen op https://portforward.com/router.htm om te proberen de fabrikant van uw router te vinden en de oplossing door te lezen. Als u de fabrikant van uw router niet in de lijst kunt vinden of een enterprise/homemade router gebruikt, moet u mogelijk wat zoeken op internet totdat u de juiste methode vindt.

Wanneer u poortdoorsturing configureert, stuurt u poorten 80 en 443 door vanaf het privé-IP-adres van uw Nextcloud-server (dat u kunt vinden met behulp van de “hostnaam -I” command) naar het openbare IP-adres van de router. Als uw internetprovider u geen openbaar IP-adres verstrekt, moet u een service gebruiken zoals Cloudflare's Tunnels, waarmee u een beveiligde tunnel kunt maken tussen uw webserver en de servers van Cloudflare, die verkeer van websitebezoekers terug naar u doorsturen.

Als u een domein bezit of een hostnaam van een hostnameprovider gebruikt, zorg er dan voor dat uw DNS-records zo zijn ingesteld dat ze verwijzen naar het openbare IP-adres van uw server. Sommige serviceproviders bieden optioneel de mogelijkheid om uw IP-adres volledig te verbergen voor websitebezoekers en die gegevens veilig van hun servers terug naar de uwe te transporteren.

Onderhouden en upgraden van Nextcloud

Ervoor zorgen dat uw Nextcloud-server de nieuwste updates en beveiligingspatches heeft, is een belangrijk onderdeel van het snel en veilig houden van uw cloudopslag. Voordat we klaar zijn, laten we een paar manieren doornemen om uw server als nieuw te laten draaien!

Post-inzet commando's

Nadat u uw Nextcloud-server hebt geïmplementeerd, hebt u mogelijk enkele waarschuwingen opgemerkt op de pagina 'Overzicht' nadat u op 'Beheerinstellingen' in het profielfotomenu hebt geklikt. Soms bevatten deze waarschuwingen ook opdrachten die kunnen worden uitgevoerd om het probleem waarover de waarschuwing gaat, onmiddellijk op te lossen. Meestal moeten de opdrachten worden uitgevoerd zoals de “www-gegevens” gebruiker en uitvoeren vanaf de “/var/www/html/nextcloud” map. Type “cd /var/www/html/nextcloud” en druk op enter om de huidige werkmap te wijzigen naar de juiste map, en voeg in “sudo -u www-gegevens” vóór elk van de opdrachten.

We kunnen nu een aantal van deze opdrachten uitvoeren om de waarschuwingen te verhelpen voordat ze problemen worden:

sudo -u www-data php occ db:add-missing kolommen
sudo -u www-data php occ db:add-missing-indices
sudo -u www-data php occ db:add-missing-primary-keys

Deze commando's zorgen ervoor dat de database correct is ingesteld en dat er geen belangrijke informatie ontbreekt. Happy database, happy life! Toch?

Ubuntu Server up-to-date houden

Regelmatig het besturingssysteem en de softwarepakketten van uw server updaten is belangrijk om het veilig en snel te houden. Zoek een periode waarin het gebruik van uw server elke week of twee laag is en voer de volgende opdrachten uit:

sudo apt update && sudo apt upgrade -y
herstart sudo

Met deze opdrachten worden het besturingssysteem en de softwarepakketten van de server bijgewerkt en wordt de server opnieuw opgestart, zodat de wijzigingen worden toegepast wanneer de server opnieuw wordt opgestart.

Nextcloud upgraden

Omdat Nextcloud niet met een pakketbeheerder is geïnstalleerd, worden de softwarepakketten van de server bijgewerkt met “geschikt” zal Nextcloud niet automatisch naar de volgende versie pushen. Om te beginnen met het upgraden van onze Nextcloud-server, moeten we klikken op de profielfoto van de beheerder in de rechterbovenhoek van de webpagina en "Beheerinstellingen" selecteren in het vervolgkeuzemenu. Op de pagina "Overzicht" kunnen we zien dat er een upgrade beschikbaar is - in dit geval versie 30.0.1. Als er geen update-optie op de pagina "Overzicht" verschijnt, maak je dan geen zorgen, je hebt al de nieuwste versie! Kijk hier af en toe om te zien wanneer er een nieuwe versie beschikbaar is.

Zodra u hebt vastgesteld dat er een update beschikbaar is en het geschikte upgradevenster is bereikt, schakelt u terug naar de console van de server en voert u deze opdracht in:

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

Met deze opdracht wordt de “www-gegevens” gebruiker als eigenaar van de "Www" map en alle submappen en bestanden, zodat het upgradeproces toegang heeft tot alle bestanden en deze kan wijzigen.

Zodra die opdracht is voltooid, ga je terug naar de pagina "Overzicht" onder het menu "Beheerinstellingen" en klik je op de knop met het label "Updater openen". Dit brengt je naar het menu "Updater".

Vanaf hier kunt u op de knop "Start update" klikken om de updateverificatie en het downloadproces van Nextcloud te starten. Als alles correct werkt, ziet u groene vinkjes naast elke stap voor "Continue with web based updater".

Let op: Als het updateproces mislukt bij de stap 'Downloaden', probeer het dan opnieuw totdat het werkt. Het kan meerdere pogingen kosten.

Zodra alle groene vinkjes in het menu "Updater" zijn verschenen, klikt u op de knop met het label "Onderhoudsmodus uitschakelen en doorgaan in de webgebaseerde updater". Op het scherm dat daarna verschijnt, klikt u op "Update starten" om het updateproces te voltooien en te beginnen met het toepassen ervan.

Als alternatief kunt u, zoals voorgesteld op de pagina voor grotere of tragere servers, navigeren naar de “volgende cloud” map en voer de upgrade daar handmatig uit met behulp van de volgende opdrachten:

cd /var/www/html/nextcloud
sudo -u www-data php occ-upgrade

Zodra de upgrade is voltooid, wordt u doorgestuurd naar de "Dashboard"-pagina op de website van uw Nextcloud-server. Uw server draait nu de nieuwste en beste versie van Nextcloud!

Gefeliciteerd! Het is je gelukt!

U bent nu de trotse eigenaar en beheerder van een volledig functionele, geharde en krachtige Nextcloud-server. U kunt nu familieleden of vrienden uitnodigen om uw server te gebruiken voor cloudopslag als u dat wilt. Vergeet niet dat Nextcloud een zeer modulair platform is, dus wees niet bang om nieuwe apps te proberen of uw configuratie te wijzigen om aan uw behoeften te voldoen! Zorg ervoor dat u zo snel mogelijk regelmatige back-ups van de server instelt en houd alles in de gaten om er zeker van te zijn dat alles goed werkt.

Een rondleiding door de Nextcloud-opstelling van de auteur

Wauw, je hebt het allemaal doorstaan ​​en je wilt nog meer lezen? Beschouw ons als onder de indruk! Hier is een korte rondleiding en wat foto's van de Nextcloud-opstelling van de auteur als je op zoek bent naar een beetje inspiratie:

  • Hardware:
    • Virtualisatieserver:
      • OS: Proxmox Virtualisatieomgeving
      • Behuizing: Supermicro SC216 met optionele achterste redundante opstartschijfkooi
      • CPU: Intel Xeon E5-2683
      • RAM: 4x 32 GB DDR4 2400 MHz ECC RDIMM's
      • Moederbord: Gigabyte MU70-SU0 (LGA 2011-3)
      • HBA: Broadcom SAS 9305-24i
      • NIC: Intel X520-DA2 2-poorts 10 GbE SFP+-adapter
      • GPU: NVIDIA Quadro K1200
      • Opstartschijven: 2x Samsung 850 EVO 120 GB SATA SSD's
      • Gegevensschijven: 24x Samsung 860 EVO 250 GB SATA SSD's
    • NAS:
      • OS: TrueNAS-SCHAAL
      • Behuizing: HPE ProLiant MicroServer Gen10 Plus
      • CPU: Intel Xeon E-2224
      • RAM: 2x 16 GB DDR4 2666 MHz ECC UDIMM's
      • HBA: Ingebouwde HPE Smart Array E208i-p SR Gen10-controller
      • NIC: HPE Ethernet 560SFP+ 2-poorts 10 GbE SFP+-adapter
      • Opstartschijf: Micron M600 256 GB SATA SSD (USB-verbinding)
      • Cache-drives: 2x Samsung 860 EVO 250 GB SATA SSD's (via USB aangesloten)
      • Gegevensschijven: 4x WD Red Plus 4 TB 5400 RPM HDD's
      • Back-upschijf: WD Red Pro 14 TB 7200 RPM HDD (via USB aangesloten)
    • Modem:
      • Netgear CM1200
      • DOCSIS 3.1
      • 4x 1 GbE RJ45 WAN-poorten (compatibel met 2-poorts linkaggregatie)
    • Router:
      • Besturingssysteem: pfSense
      • Behuizing: Dell OptiPlex 7040 SFF
      • CPU: Intel Core i5 6500
      • RAM: 8 GB DDR4
      • NIC: Intel E1G44ET 4-poorts 1 GbE RJ45-adapter
      • Opstartschijven: 2x Samsung 860 EVO 250 GB SATA SSD's
    • Kernschakelaar:
      • Dell-netwerken N4032F
      • 24x 10 GbE SFP+-poorten
      • 2x 40 GbE QSFP+-poorten
      • 1 GbE-beheerpoort
    • Toegangsschakelaar:
      • Dell-netwerken X1052
      • 48x 1 GbE RJ45-poorten
      • 4x 10 GbE SFP+-poorten
    • Toegangspunten:
      • Besturingssysteem: OpenWRT
      • Linksys EA8300 MaxStream
      • AC2200
      • MU-MIMO
      • Wi-Fi 5 (802.11ac)
      • 1x 1 GbE RJ45 LAN-poort
      • 4x 1 GbE RJ45 LAN-poorten
    • UPS:
      • CyberPower CP1500AVRLCD3
      • 1500VA
      • 900W
  • Virtuele machines:
    • Proxmox Virtualisatieomgeving:
      • 2x Windows Server 2022 Datacenter-domeincontrollers
      • Ubuntu Server 24.04.1 Nextcloud webserver
      • Windows Server 2022-gameserver
    • TrueNAS-SCHAAL:
      • Back-updoel van Proxmox Backup Server

Andrew gebruikt zijn Nextcloud-server om dataopslagservices te hosten voor zijn geliefden. Met behulp van een combinatie van een Active Directory-domein met redundante domeincontrollers, een NAS om al die gebruikersgegevens op te slaan en een virtualisatieserver, heeft Andrew zijn opstelling geoptimaliseerd om zowel thuis als overal met een internetverbinding hoogwaardige opslagservices te bieden.

De ruggengraat van zijn opstelling is de Dell Networking N4032F, die 10 gigabit-per-seconde verbindingen biedt tussen zijn Proxmox VE-server en de TrueNAS SCALE-opslagarray. Gegevens-, beheer- en opslagverkeer is verdeeld in drie VLAN's, die extra beveiliging bieden in geval van een inbreuk. Zijn toegangsswitch biedt standaard 1 gigabit per seconde verbindingen naar zijn gaming-pc, toegangspunten en andere verschillende apparaten. Alle servers en virtuele machines worden bewaakt door een Raspberry Pi Model 3B+ met Ubuntu Server en een Uptime Kuma-instantie. Zodra een server/VM uitvalt, wordt Andrew per e-mail op de hoogte gebracht en in het geval van een stroomstoring worden de servers netjes uitgeschakeld zodra de UPS een laag laadniveau meldt.

Andrew heeft ook zijn virtualisatieserver op maat gebouwd met behulp van een Supermicro 24-bay 2U-chassis en onderdelen die hij van eBay en andere 'dubieuze' bronnen heeft verkregen. In een ZFS RAIDZ2-opstelling kan deze 24 SSD-array van louter consumentenschijven een doorvoer van ongeveer 8.2 gigabyte per seconde leveren voor leesbewerkingen en 2.7 gigabyte per seconde voor schrijfbewerkingen naar virtuele machines, zoals hier gemeten op een Windows Server 2022 VM:

De echte ster van de dataopslagshow is Andrew's HPE ProLiant MicroServer Gen10 Plus, die vier WD Red Plus 4 TB harde schijven bevat en lukraak is aangesloten via USB 3.2 Gen2 (10 Gbps) en Gen1 (5 Gbps) op een Micron SSD voor het opstarten van TrueNAS, een WD Red Pro 14 TB schijf voor back-upopslag en nog twee Samsung 860 EVO SSD's voor caching. Om het duidelijk te maken, Andrew raadt dat niet aan, maar hij wil graag het maximale uit de hardware halen die hij bezit. Vijf negens betrouwbaarheid is hier absoluut niet gegarandeerd, mensen.

Andere opvallende apparaten zijn een hergebruikte Dell OptiPlex 7040 SFF-pc, die pfSense draait om routingservices te leveren voor de verschillende subnetten van zijn thuislab, en de Netgear CM1200-modem, die om een ​​of andere reden verrassend genoeg linkaggregatie ondersteunt. Hebben we al gezegd dat elke serverdataverbinding, 1 of 10 GBps, foutredundant is? Hierdoor zou Andrews opslagsysteem theoretisch gegevens kunnen delen met een snelheid van 20 Gbps bidirectioneel, onder bepaalde omstandigheden, waarbij meerdere verbindingen tegelijkertijd plaatsvinden. Als hij maar de juiste schijven had om daar ook maar in de buurt te komen!

Conclusie

We hopen dat u iets waardevols hebt gevonden in deze langdradige maar gedetailleerde Nextcloud-installatiehandleiding. Dingen op de moeilijke manier doen heeft vaak voordelen, en meer weten over uw cloudopslag is altijd goed. Als u dat nog niet hebt gedaan, abonneer u dan op de StorageReview-nieuwsbrief voor meer artikelen over servers, opslagsystemen en homelabs, en bekijk ons ​​op YouTube, TikTok, X (voorheen Twitter) of Instagram!

Referenties/Bronnen:

Neem contact op met StorageReview

Nieuwsbrief | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS Feed