Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 10 · 10.4

Eindcheck: je server langs de lat

Module 10: Veilig blijven · Leestijd: 10 minuten

Leerdoel: Na deze les kun je je eigen server met een checklist en een automatische controle van buitenaf beoordelen, weet je welke punten voorrang hebben, en heb je een vast onderhoudsritme en een kort serverdossier.

Kernbegrippen: checklist, prioriteit, controle van buitenaf, serverdossier, onderhoudsritme (wekelijks, maandelijks, per kwartaal, per jaar), einddatum van de release, terugzettest

Van losse lessen naar één geheel

In deze cursus heb je een server stap voor stap ingericht: veilig inloggen, rechten, updates, firewall, diensten, een website met https, back-ups, bewaking en containers. In deze laatste les zet je alles op één lijst. Je loopt je server na, laat het cursusprogramma van buitenaf kijken, en legt vast hoe je de server de komende jaren bijhoudt.

Een server is nooit "af". Software veroudert, certificaten lopen af, schijven lopen vol, releases gaan end of life. Een vast ritme is daarom net zo belangrijk als de eerste inrichting.

De checklist, op volgorde van belang

Niet alles is even dringend. Loop de lijst van boven naar beneden: de eerste blokken voorkomen de meeste ellende.

Blok 1: niemand komt zomaar binnen (module 2, 3, 5)

  • Inloggen alleen met sleutels; PasswordAuthentication no en KbdInteractiveAuthentication no, gecontroleerd met sudo sshd -T.
  • Root logt niet in met een wachtwoord; je werkt als gewone gebruiker met sudo.
  • Databases, caches en zoekclusters luisteren op 127.0.0.1; de poorten 3306, 5432, 6379, 9200 en 27017 zijn van buiten dicht, voor IPv4 én IPv6.
  • Een firewall met standaard alles dicht binnenkomend; alleen de poorten die je nodig hebt, open.
  • fail2ban draait voor SSH (fail2ban-client status sshd).

Blok 2: lekken worden gedicht (module 4)

  • Automatische beveiligingsupdates aan en gecontroleerd (logboek, apt list --upgradable).
  • Een plan voor herstarten; /var/run/reboot-required staat er niet wekenlang.
  • De release wordt nog ondersteund; de einddatum staat in je agenda.

Blok 3: je kunt terug (module 8)

  • Versleutelde back-ups buiten de server, automatisch, met bewaking.
  • Een terugzettest gedaan, en je weet hoe lang terugzetten duurt.
  • Je weet hoe je een snapshot maakt en de console opent.

Blok 4: de buitenkant klopt (module 7)

  • A- en AAAA-records wijzen naar je server; de reverse DNS (PTR) wijst terug naar dezelfde naam.
  • https met een geldig certificaat dat vanzelf vernieuwd wordt; http stuurt door naar https.
  • HSTS en een paar beveiligingsheaders; een security.txt met een werkend contactadres en een vervaldatum.

Blok 5: je ziet wat er gebeurt (module 6, 8)

  • De journal is persistent; je kunt logs van vóór een herstart lezen.
  • Bewaking van buitenaf (bereikbaarheid, certificaat) en van binnen (schijf, diensten), met meldingen die aankomen.
  • systemctl --failed is leeg.

Blok 6: containers onder controle (module 9, als je Docker gebruikt)

  • Poorten van containers op 127.0.0.1 of achter de reverse proxy; geen docker.sock in containers die het niet echt nodig hebben.
  • Volumes zitten in de back-up; images worden regelmatig bijgewerkt.
  • Geheimen staan in .env-bestanden met strenge rechten, niet in Git.

De controle van buitenaf

Een deel van deze lijst kan het cursusprogramma van buitenaf nakijken, precies zoals iedereen op internet je server ziet. De eindopdracht (Z10.4) combineert de controles uit eerdere opdrachten:

OnderdeelWat het programma doetUit les
SSHLeest de versiebanner en vraagt welke inlogmethoden je server aanbiedt voor jouw gebruikersnaam; logt niet in2.2
DatabasepoortenProbeert alleen een verbinding naar 3306, 5432, 6379, 9200 en 27017; stuurt niets5.1
httpsControleert het certificaat (geldig, vertrouwd, juiste naam)7.3
HeadersLeest HSTS en de andere beveiligingsheaders7.4
security.txtHaalt /.well-known/security.txt op en controleert Contact en Expires7.4
ContainerZoekt de header met jouw code, gezet door je reverse proxy9.4

Het programma voert niets uit op je server, probeert geen wachtwoorden en scant geen andere poorten. Elk adres kan maar een paar keer per uur gecontroleerd worden. Een groene uitslag zegt: van buitenaf zijn de bekendste fouten afwezig. Het zegt niets over wat er binnen je server gebeurt; dat is de rest van de checklist, en die loop je zelf na.

Het serverdossier

Schrijf voor elke server een kort document, buiten de server bewaard (bijvoorbeeld in je wachtwoordmanager of een gedeelde map):

  • naam, IP-adressen, aanbieder, release en einddatum;
  • wat er draait (diensten, containers, websites) en waarom;
  • welke poorten open staan en waarvoor;
  • waar de back-ups staan, hoe je terugzet, wanneer de laatste test was;
  • welke geheimen er op de server staan (niet de geheimen zelf, wel welke en waar ze vervangen worden);
  • wat je bewust anders deed dan de standaard (bijvoorbeeld een Lynis-suggestie die je oversloeg, les 10.1);
  • wie er toegang heeft (welke sleutels in authorized_keys).

Dit dossier is goud waard bij een incident (les 10.3), bij een release-upgrade (les 4.3) en als iemand anders het beheer overneemt.

Een onderhoudsritme

Zonder ritme verslapt het. Een voorbeeld voor een kleine server; pas het aan je eigen situatie aan.

WanneerWat
Elke weekBewaking en meldingen nalopen; systemctl --failed; herstarten als /var/run/reboot-required er staat (of controleren dat de automatische herstart werkte)
Elke maandapt list --upgradable (blijft er iets hangen?); docker compose pull en up -d voor je containers, met de release notes; schijfruimte; fail2ban-client status; logboek op opvallende fouten (journalctl -p err --since "1 month ago")
Elk kwartaalTerugzettest van een back-up; authorized_keys en gebruikers nalopen (weg wie geen toegang meer hoort te hebben); Lynis opnieuw draaien; de eindcontrole van buitenaf opnieuw (opdracht Z10.4)
Elk jaarsecurity.txt bijwerken (Expires); einddatum van de release bekijken en een upgrade plannen; je serverdossier en noodplan bijwerken

Zet deze momenten in je agenda. Een groot deel kun je ook automatiseren met de bewaking uit les 8.3, maar kijken blijft nodig.

In de praktijk

Of je server nu bij WebOké of bij een andere aanbieder staat: de aanbieder zorgt voor de hardware, het netwerk en de mogelijkheid om snapshots en back-ups te maken, jij voor alles binnen de server. Deze cursus is zelfhulp: niemand kijkt mee op je server. Met deze checklist, het dossier en het ritme heb je wel alles in handen om dat beheer zelfstandig en goed te doen.

Samenvatting

  • Loop je server na in blokken: niemand komt zomaar binnen, lekken worden gedicht, je kunt terug, de buitenkant klopt, je ziet wat er gebeurt, containers onder controle.
  • De controle van buitenaf kijkt naar SSH-inlogmethoden, databasepoorten, https, headers, security.txt en je containerheader; de rest loop je zelf na.
  • Houd een serverdossier bij, buiten de server.
  • Werk met een vast ritme: wekelijks, maandelijks, per kwartaal en per jaar.

Quiz

1. Je hebt maar een uur. Welk punt uit de checklist pak je als eerste aan?



2. De eindcontrole van buitenaf is helemaal groen. Wat betekent dat?



3. Waarom bewaar je het serverdossier buiten de server?



4. Welke taak hoort bij het kwartaalritme?



5. Je security.txt heeft een Expires-datum van volgend jaar mei. Wat doe je?



Opdracht

Opdracht Z10.4: Eindopdracht: je server van buitenaf. Laat het cursusprogramma je server in één keer van buitenaf controleren: de SSH-inlogmethoden voor jouw gebruikersnaam, de vijf databasepoorten, https en de headers van je site, je security.txt, en de header X-Weboke-Cursus met jouw code op de naam waar je container draait. Vul daarnaast de checklist van de blokken 1 tot en met 6 in voor wat het programma niet kan zien.

Opdracht Z10.4: Eindopdracht: je server van buitenaf

We loggen niet in en proberen geen wachtwoord of sleutel. Eerst laat je zien dat de server van jou is: klik op "Toon mijn code" en zet een bestand /.well-known/weboke-cursus-<code>.txt met alleen die code op de webserver van je hostnaam. We halen het rechtstreeks op bij elk IP-adres dat we controleren (IPv4 en IPv6 apart); een TXT-record telt hier niet. De controle komt van heavy.webawere.nl (185.158.167.16 en 2a07:ae80:100:0:185:158:167:16), niet van onze webserver. Alleen voor aangemelde cursisten; per server hoogstens 6 controles per uur. De eindcheck doet de controles van Z2.2, Z5.1, Z7.3, Z7.4 en Z9.4 achter elkaar. SSH, poorten en https moeten groen zijn; headers, security.txt en de kopregel zijn advies.








Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Opdracht O10.4: Je onderhoudsritme. Maak je eigen serverdossier en onderhoudsritme: wat doe je wekelijks, maandelijks, per kwartaal en per jaar, en zet die momenten in je agenda.

Opdracht O10.4: Je onderhoudsritme

Deze opdracht doe je zelf; niemand kijkt hem na. Vink af wat je gedaan hebt en markeer de opdracht als gedaan.




Je vinkjes en aantekeningen blijven alleen in deze browser; we sturen ze nergens heen. Ben je aangemeld, dan bewaren we in Mijn cursussen alleen dat je de opdracht gedaan hebt.

Verder lezen

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…