ID.nl logo
Van TLS tot end-to-end-encryptie, zo versleutel je jouw mailtjes
© thodonal - stock.adobe.com
Huis

Van TLS tot end-to-end-encryptie, zo versleutel je jouw mailtjes

E-mail is nooit helemaal veilig. Wanneer een hacker niet-gecodeerde e-mails kan onderscheppen, heeft hij of zij toegang tot alle informatie die dit bericht en de eventuele bijlagen bevatten. Omdat e-mail zo’n kwetsbaar medium is, bestaan er verschillende manieren om gevoelige berichten te versleutelen.

In dit artikel laten we zien op welke manieren jij je e-mails kunt beveiligen en welke diensten je daarvoor kunt gebruiken:

  • Versleutelen met TLS (Microsoft, Apple en Google)
  • End-to-end-encryptie (Mailvelope en Proton Mail)
  • S/MIME (Outlook)

Ook interessant: Creëer met kleur overzicht in je Outlook-mailbox en -agenda

Toen e-mail in 1971 het levenslicht zag, hielden wetenschappers en ontwikkelaars niet eens rekening met het gegeven dat iemand anders jouw berichten zou kunnen of willen lezen. Dat zou immers ‘onbeleefd’ zijn. Toch gebruiken we nog steeds de protocollen die afstammen uit deze periode.

Het gaat trouwens niet alleen om het gevaar dat anderen privézaken van je zouden achterhalen. E-mailadressen worden ook vaak gebruikt als verificatie van online diensten of om een vergeten wachtwoord terug te krijgen. Ze maken dan deel uit van de tweestapsverificatie die op zijn beurt toegang geeft tot andere accounts. Reden genoeg om je mailverkeer zo veilig mogelijk te maken en de berichten bij aankomst veilig op te slaan.

Geen versleuteling

E-mail uitwisselen via de grote bekende providers brengt risico’s met zich mee, omdat je dan niet-versleutelde mails verstuurt. Deze e-mailproviders maken er geen geheim van dat ze de inhoud van je e-mailverkeer scannen. Naar eigen zeggen doen ze dat om hun diensten te verbeteren. De providers kijken hiervoor naar de metadata van de berichten. Maar ook cybercriminelen kunnen door dit gebrek aan versleuteling toegang krijgen tot je communicatie.

En dan hebben we de belangrijkste reden van de datalekken nog niet genoemd: menselijke fouten. Het 2023 Data Beach Report van het Amerikaanse telecommunicatieconcern Verizon beweert dat 74 procent van alle datalekken te wijten is aan menselijke blunders. Iedereen heeft van die dagen dat hij minder scherp is. Simpele handelingen, zoals het per ongeluk versturen van een e-mail met persoonsgegevens naar de verkeerde persoon, of reageren op een phishingmail, kan rampzalig zijn. Of zoals vorig jaar, toen in de gemeente Groningen een ambtenaar 450 mailadressen in het cc-veld plakte in plaats van in het bcc-veld, waardoor de mailadressen van evenveel inwoners op straat belandden.

©Linaimages

Door niet consequent het bcc-vak te gebruiken, belanden veel e-mailadressen op straat.

Google kijkt mee

‘Voor niets gaat de zon op’; je betaalt in onze wereld met geld of met gegevens. Gmail snuffelde tot 2017 systematisch in de mails van zijn gebruikers om hen gepersonaliseerde advertenties te sturen. Deze praktijk is afgeschaft, maar dezelfde provider scant nog steeds inkomende en uitgaande elektronische post voor allerhande doeleinden. Dit staat letterlijk in de privacyvoorwaarden van Google: ‘We verzamelen ook de content die u maakt, uploadt of van anderen ontvangt wanneer u onze services gebruikt. Dit zijn onder meer de e-mails die u schrijft en ontvangt, foto’s en video’s die u opslaat, documenten en spreadsheets die u maakt en reacties die u achterlaat bij YouTube-video’s’.

Google scant nog steeds de metagegevens in Gmail. 

Transport Layer Security (TLS)

Tegenwoordig zijn er twee belangrijke manieren om e-mails te versleutelen. De eerste heet Transport Layer Security encryptie (TLS). Deze manier van versleutelen wordt gebruikt door Microsoft, Apple en Google. TLS voorkomt dat e-mails die onderweg worden onderschept, gelezen kunnen worden. Vroeger was het mogelijk dat cybercriminelen onderschepte e-mails die tussen de verzender en ontvanger onderweg waren, konden lezen omdat ze in dat stadium niet beveiligd waren. Men noemde die hacktechniek de ‘man in the middle’-aanval.

Hoewel TSL een sterke beveiliging biedt tegen aanvallen, kan het niet voorkomen dat een cybercrimineel binnendringt in de server of in je mailbox, waar hij nog steeds alle e-mails en bijlagen kan lezen.

In Gmail kun je zien dat er TLS-codering is gebruikt door het bericht te openen en dan te klikken op het kleine driehoekje naast de naam van de ontvanger (meestal: aan mij).

In de eigenschappen van het bericht zie je de standaardversleuteling TLS staan.

TSL controleren

Ook Microsoft Outlook ondersteunt TLS. Toch betekent dit niet dat de berichten die Outlook verzendt en ontvangt altijd gecodeerd zijn. Wanneer een ontvanger een e-mailprovider gebruikt die TLS niet ondersteunt, wordt de codering verwijderd en kunnen kwaadwillenden het bericht tijdens het transport alsnog onderscheppen.

Ook in de desktopversie van Outlook kun je het gebruik van TLS checken. Open het bericht in een nieuw venster door erop te dubbelklikken. Daarna ga je naar het menu Bestand en klik je op de grote knop Eigenschappen. Je krijgt dan de onbewerkte koptekst (header) van het bericht te lezen. Als het goed is, zul je daar TLS of version=TLS1_2 lezen.

Ook in Outlook kun je in de eigenschappen van het bericht zien dat TLS is toegepast.

End-to-end-encryptie

Bij end-to-end-codering zijn de berichten versleuteld door de afzender en kan alleen de ontvanger ze decoderen op zijn of haar apparaat. De end-to-end gecodeerde e-mails zijn dus in ieder stadium van de bezorging beveiligd en kunnen zelfs niet door de e-mailservers worden gelezen.

Gmail, Outlook en Yahoo bieden geen end-to-end-versleuteling aan. Verderop in dit artikel leggen we uit hoe je dit toch kunt activeren met behulp van een extensie.

Een onderschept end-to-end-versleuteld bericht is onleesbaar.

PGP

Bij end-to-end-encryptie zijn de berichten van begin tot eind versleuteld. De encryptie kan bijvoorbeeld gebeuren met PGP (Pretty Good Privacy), waarbij gebruik wordt gemaakt van een publieke sleutel en een privésleutel. Wil je een vertrouwelijke mail naar persoon A sturen, dan heb je de publieke sleutel van A nodig, zodat de e-mail wordt versleuteld op een manier die alleen A kan openen met zijn privésleutel.

De publieke sleutel is openbaar en kan dus worden gebruikt door iedereen die versleutelde berichten naar A wil sturen. De privésleutel is alleen bekend bij A en wordt gebruikt om de ontvangen e-mails opnieuw leesbaar te maken.

Voor encryptie via PGP moet je zelf over een publieke en een privésleutel beschikken.

Vertrouwelijke modus in Gmail

Veel e-mailproviders doen wel hun best om je vertrouwelijke e-mails te laten versturen met het programma dat je gewend bent.

In Gmail bijvoorbeeld klik je op de knop Opstellen als je bent ingelogd om een nieuwe e-mail te beginnen. In de onderste balk van het bericht vind je de knop met het slotje. Als je daarop klikt, verschijnt er een pop-up van de Vertrouwelijke modus, waar je een vervaltijd en een toegangscode voor het bericht bepaalt. Standaard vervalt de vertrouwelijke e-mail na een week. Dat betekent dat de mail daarna automatisch wordt vernietigd, maar je kunt zelf een andere vervaltijd instellen. Bovendien kunnen ontvangers de e-mail niet doorsturen, afdrukken of kopiëren.

Om de e-mail extra te beveiligen, kun je een sms-toegangscode toepassen. Als je deze optie activeert, dan moet je het telefoonnummer van de ontvanger invoeren. Die kan het bericht pas lezen nadat hij de toegangscode heeft ingevuld die Google naar dit nummer heeft verzonden. Om toegang te krijgen, heeft de ontvanger wel een Google-account nodig.

Heb je het bericht naar een ander e-mailadres dan dat van Gmail gestuurd, dan krijgt de ontvanger een linkje waarna hij/zij toch moet inloggen met een Google-account. Nadeel van deze methode is dat je het voor iedere mail apart moet instellen en dat de provider nog steeds kan meekijken. Het voordeel is dat het eenvoudig is in te stellen.

De toegangscodes worden gegenereerd door Google. 

S/MIME in Outlook

S/MIME (Secure/Multipurpose Internet Mail Extension) is een tweede oplossing voor het beveiligen van berichtinhoud. Outlook gebruikt S/MIME in de desktop- en de mobiele versie om Microsoft 365-berichtgegevens te ondertekenen en te versleutelen. S/MIME vraagt wel een certificaat, en omdat een volwaardig certificaat niet gratis is, wordt dit vooral in bedrijfsomgevingen ingezet. Er zijn organisaties zoals CAcert waar je gratis certificaten kunt aanvragen, maar die zijn gebaseerd op je e-mailadres en dus minder veilig.

Bij veel Outlook-gebruikers staat de knop Versleutelen in het lichtgrijs en kun je die dus niet gebruiken. Eerst moet je een certificaat, een digitale ID, aan de beheerder van de organisatie vragen. Dat certificaat kan een bestand zijn dat je op je computer bewaart of het kan opgeslagen zijn op een smartcard. Die kaart moet je in een kaartlezer stoppen. Daarna open je Outlook en ga je naar Bestand / Opties en daar open je het Vertrouwenscentrum. Klik vervolgens op de knop Instellingen voor het Vertrouwenscentrum en kies in de linkerbalk E-mailbeveiliging. In de groep Versleutelde e-mail zorg je ervoor dat de vier aanvinkvakjes leeg zijn, daarna klik je op de knop Instellingen. Nu geef je de nieuwe beveiligingsinstellingen een naam en selecteer je S/MIME als cryptografische indeling. Via Nieuw selecteer je ten slotte het certificaat op de computer of op de smartcard.

In het Vertrouwenscentrum van Outlook moet je eerst het certificaat inladen.

Vanaf dat moment is de knop Versleutelen wél beschikbaar. Nadat je het bericht hebt opgemaakt, ga je naar het tabblad Opties waar je Versleutelen / Versleutelen met S/MIME kunt selecteren.

Daarna kun je de knop Versleutelen gebruiken om S/MIME aan te spreken.

Sleutelhangertoegang

Bij Apple Mail zijn de berichten versleuteld met TLS. Dat betekent dat alleen de overdrachtsroute die de berichten afleggen beveiligd is. Wil je meer veiligheid, dan kun je ook met de standaard Mail-app van Apple een certificaat gebruiken. Het certificaat van de geadresseerde moet wel in de sleutelhanger staan.

Open de app Sleutelhangertoegang en gebruik het menu Sleutelhangertoegang / Certificaatassistent. Om zelf e-mail te versleutelen heb je speciale software nodig, zoals GPG Suite waarmee je zelf twee sleutels maakt. GPG Suite voegt een plug-in toe aan Mail op de Mac, waarmee je de encryptie kunt toevoegen aan het e-mailbericht. Hierdoor kan Mail bij een zoekopdracht ook in de versleutelde berichten zoeken.

In Sleutelhangertoegang op de Mac kun je rechtstreeks een certificaat aanvragen.

Mailvelope

Een interessante web-oplossing is Mailvelope, een browser-extensie uit Duitsland die end-to-end-encryptie aanbiedt zonder dat je van e-mailprovider hoeft te veranderen. Er is een gratis versie en een zakelijke versie die 3 euro per maand kost en die je veertien dagen mag proberen. Wij gaan voor de ‘Free Forever’-editie.

De encryptie en decryptie gebeuren op de computers van de verzender en de ontvanger. Dat betekent dat de private data nooit de lokale toestellen verlaten. De extensie werkt samen met Google Chrome, Mozilla Firefox en Microsoft Edge. Hiermee is het mogelijk om end-to-end-versleutelde e-mail te versturen via de webmail van Gmail, Outlook en Yahoo.

Nadat je de extensie hebt geïnstalleerd, open je Mailvelope via de knop in de browser. In Gmail vraagt Google of je het goed vindt dat Mailvelope zich in de Gmail-interface nestelt. Om versleutelde berichten te kunnen versturen, moet je eerst een sleutelpaar maken. Het set-upscherm van deze plug-in helpt je om een nieuwe private en openbare sleutel te maken of om een bestaand sleutelpaar te importeren.

Je kunt sleutels importeren en zelf genereren met Mailvelope. 

Mailvelope, sleutels toevoegen

Nu je een eigen sleutelpaar hebt, is het tijd om de openbare sleutels van je contacten toe te voegen. Als ze ook Mailvelope gebruiken, hoef je niet veel doen. De keyserver van Mailvelope zal hun publieke sleutels zelf vinden.

Als dat niet het geval is, moet je hun publieke sleutel nog toevoegen. Dat kan op twee manieren. Je contactpersoon kan jou de publieke sleutel op een of andere manier bezorgen als .asc-bestand. In het tabblad Key Management gebruik je de optie Import en dan importeer je dit .asc-bestand. Daarnaast kun je in Mailvelope de zoekfunctie gebruiken om de sleutel in verschillende key-directories te vinden.

Je kunt de publieke sleutels van je contacten ook handmatig importeren. 

Mailvelope Editor

Wanneer Mailvelope geïnstalleerd is in de browser, zul je bijvoorbeeld in Gmail een rode knop met de letter M naast de knop Opstellen vinden. Klik daarop om de Mailvelope Editor te openen. De eerste keer dat je deze extensie in Gmail gebruikt, ontvang je een veiligheidsboodschap van Google met de naam Using the Gmail API. Je moet dit toestaan door opnieuw je Google-accountgegevens te typen. Daarna zul je merken dat je voor de versleutelde mail een apart venstertje opent met de gewone velden van ieder e-mailbericht.

Let op het vak waarin je het mailadres van de ontvanger typt. Als dat vak rood is, dan heeft Mailvelope nog geen publieke sleutel van de ontvanger gevonden. Wordt dat groen, dan is het adres wel bekend.

Belangrijk is dat je in het onderwerpvak geen vertrouwelijke informatie noteert, omdat Mailvelope uitsluitend de inhoud van het bericht en de eventuele bijlage versleutelt, maar niet de inhoud van het onderwerpvak. In de webversie van Outlook werkt Mailvelope overigens hetzelfde.

Het e-mailadres van de ontvanger wordt groen, dus Mailvelope kent diens publieke sleutel. 

Proton Mail

Om je niet in allerlei bochten te hoeven wringen, kun je speciaal voor gevoelige e-mails een extra beveiligde e-mailprovider gebruiken, zoals Proton Mail dat over enkele bijzondere opties beschikt om communicatie te beveiligen.

Er is een webversie, een mobiele editie en er is een (betaalde) optie om Proton Mail in je gewone e-mailprogramma te integreren. Het gaat om een provider waarvan de servers in Zwitserland staan, en daarom is deze dienst gebonden aan zeer strenge privacywetgeving. In het gratis basisaccount mag je 150 berichten per dag verzenden en je beschikt over 500 MB aan versleutelde opslagruimte.

Proton Mail gebruikt end-to-end-encryptie en biedt twee opties om je berichten te coderen: met wachtwoord beveiligde e-mails en PGP. Bovendien kun je e-mails versturen die zichzelf na een bepaalde tijd vernietigen.

In dit artikel gaan we dieper in op het gebruik van Proton Mail.

Proton Mail valt onder de Zwitserse privacywetgeving.

Watch on YouTube
▼ Volgende artikel
Bouw je eigen dashboard met Homepage: al je webapplicaties overzichtelijk op één plek
Huis

Bouw je eigen dashboard met Homepage: al je webapplicaties overzichtelijk op één plek

Heb je meer dan een handvol webapplicaties op een Linux-server draaien? Dan is een dashboard met links naar deze applicaties een uitkomst. Het project Homepage biedt precies dat, inclusief widgets die allerlei statistieken van je services weergeven. In dit artikel installeren we Homepage en laten we je zien hoe je het integreert met je bestaande services.

Dit gaan we doen

In deze masterclass richten we een persoonlijk dashboard in met Homepage. Je leert hoe je de tool installeert in Docker, services groepeert en uitbreidt met widgets voor statistieken zoals cpu- en geheugengebruik, uptime of weersinformatie. We laten zien hoe je containers automatisch herkent, monitoring toevoegt en ook bladwijzers of alternatieve dashboards gebruikt. Zo krijg je één centrale plek waar je al je webapplicaties en services snel terugvindt en beheert.

Lees ook: Windows gebruiken naast of binnen Linux? Zo krijg je het soepel aan de praat met Docker


⬇️ Code downloaden

In dit artikel staat voorbeelden met YAML-code. Omdat YAML erg gevoelig is voor foute spaties en inspringingen, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand homecode.txt, beschikbaar via deze link.


Homepage helpt je om diverse webapplicaties in één dashboard te organiseren. Dit is handig als je services in Docker-containers draait of eenvoudig toegang wilt tot de beheerpagina’s van apparaten zoals je modem, router en NAS.

Hoewel dit klinkt als een veredelde bookmark-manager, doet Homepage meer dan alleen links op een pagina verzamelen. Het project ondersteunt widgets voor meer dan honderd services en kan zo bijvoorbeeld het cpu- en geheugenverbruik van je hypervisor of het aantal ongelezen artikels in je RSS-lezer tonen. Je hoeft daardoor vaak zelfs niet op de links te klikken om even snel de status van je services te bekijken.

Docker Compose

We gaan ervan uit dat je een Linux-server hebt waarop je services met behulp van Docker Compose in Docker-containers draait. Homepage draai je dan gewoon in een Docker-container naast je bestaande services, al zijn er ook andere installatie-opties. In ons voorbeeld draaien we Docker op Debian 12. Maak om te beginnen een map waarin de container van Homepage zijn data en configuratie kan opslaan, met deze opdracht:

$ mkdir -p containers/homepage

Zet vervolgens in je bestand docker-compose.yml (het bestand waarin je al je containers definieert) een service voor Homepage:

services:

  homepage:

    image: ghcr.io/gethomepage/homepage:latest

    container_name: homepage

    ports:

      - 3000:3000

    volumes:

      - /home/koan/containers/homepage:/app/config

    environment:

      HOMEPAGE_ALLOWED_HOSTS: debian.home:3000

    restart: unless-stopped

Homepage kun je op diverse manieren installeren.

Homepage opstarten

Wijzig in het gedefinieerde volume de directory vóór de dubbele punt naar het volledige pad van de directory die je voor de container hebt aangemaakt. Stel de waarde van de omgevingsvariabele HOMEPAGE_ALLOWED_HOSTS gelijk aan het domein of het ip-adres van de host, gescheiden door een dubbele punt van het poortnummer. Als je met een reverse proxy werkt, zet je hier het domein waarop de applicatie via die proxy bereikbaar is.

Start de container met:

$ docker-compose up -d

Zodra het image gedownload is en de container draait, open je Homepage in je browser op de url die je in HOMEPAGE_ALLOWED_HOSTS hebt gedefinieerd. Je ziet dan een voorbeeldpagina met van boven naar onder een header, groepen met services en groepen met bladwijzers.

Het standaarddashboard van Homepage vlak na de installatie.

Informatiewidgets

In de header vind je enkele informatiewidgets. Hoewel deze niet de kern van de functionaliteit van Homepage uitmaken, bieden ze nuttige aanvullende informatie. Standaard zie je het cpu-verbruik, het beschikbare geheugen en de vrije schijfruimte van de host. Er is ook een tekstveld om te zoeken via DuckDuckGo. De definitie van deze twee widgets vind je in het bestand widgets.yaml in de directory van de Homepage-container.

In de online documentatie van de informatiewidgets lees je hoe je hun gedrag aanpast. Zo kunnen we de widget Resources ook de uptime van het systeem laten tonen (uptime: true) en met de optie expanded: true meer informatie over de cpu, het geheugen en de schijfruimte laten weergeven. De widget ziet er dan als volgt uit in widgets.yaml:

- resources:

    label: System

    expanded: true

    cpu: true

    memory: true

    uptime: true

    disk: /

Weersomstandigheden

Homepage biedt twee widgets om het weer in de header te tonen: één via Open-Meteo en één via OpenWeatherMap. De eerste vereist geen registratie, dus daarvoor hoef je alleen maar de gps-coördinaten van je locatie in te voeren. In widgets.yaml ziet dat er als volgt uit:

- openmeteo:

    label: Attenrode

    latitude: 50.8773405

    longitude: 4.9213237

    timezone: Europe/Brussels

    units: metric

    cache: 5

    format:

      maximumFractionDigits: 1

Met cache: 5 laten we de widget de weergegevens vijf minuten lang cachen om de servers van Open-Meteo te ontlasten. Verder biedt Homepage nog andere informatiewidgets aan, bijvoorbeeld voor beurskoersen of de datum en tijd.

In de header van Homepage plaats je allerlei informatiewidgets.

Services toevoegen

De kernfunctionaliteit van Homepage ligt uiteraard in het groeperen van services in één dashboard. De standaardconfiguratie voegt drie groepen toe met elk één service. De YAML-code hiervoor vind je in het bestand services.yaml. Vervang die door je eigen groepen. Je kunt bijvoorbeeld een groep Network aanmaken met links naar de beheerinterfaces van je modem/router en accesspoints:

- Network:

  - Proximus:

      href: http://192.168.1.1

      description: Modem

      icon: mdi-web

  - OpenWrt:

      href: http://gl-mt3000.home

      description: Accesspoint

      icon: openwrt

De eigenschap icon kan een absolute url zijn of een naam uit de lijst op de website Dashboard Icons. Begin de naam van een pictogram met mdi- voor een keuze uit Material Design Icons , met si- voor een keuze uit Simple, of met sh- voor een keuze uit Self-Hosted Dashboard Icons.

Ook groepen kunnen een pictogram krijgen. Dat definieer je dan in het bestand settings.yaml:

layout:

  Network:

    icon: mdi-lan-connect

  Infrastructure:

    icon: mdi-server-network

  Services:

    icon: mdi-apps

Services en groepen kun je pictogrammen geven, bijvoorbeeld van de website Self-Hosted Dashboard Icons.

Servicewidgets

Tot nu toe lijkt ons dashboard wat op een veredeld lijstje met bladwijzers. Maar Homepage ondersteunt ook servicewidgets voor meer dan honderd services. Controleer in de lijst of je services ondersteund zijn. Draai je bijvoorbeeld OPNsense op je router, dan krijg je met de volgende widget de processorbelasting, het gebruikte geheugen, en de upload- en downloadhoeveelheden van je WAN-interface te zien:

- OPNsense:

      href: https://opnsense.home

      description: Router

      icon: opnsense

      widget:

        type: opnsense

        url: https://opnsense.home

        username: KEY

        password: SECRET

Voor username en password vul je de API-sleutel en het ‘secret’ in die je in de webinterface van OPNsense aanmaakt via System / Access / Users. De documentatie van Homepage voor de OPNsense-widget legt dit gedetailleerd uit. Wil je slechts een deel van de statistieken zien, dan kan dat door de widget uit te breiden met een regel als:

fields: ["wanDownload", "wanUpload"]

Homepage ondersteunt widgets voor meer dan honderd services.

Meerdere widgets

Je kunt een service ook van meerdere widgets voorzien. Dat is bijvoorbeeld handig bij monitoringtools zoals Uptime Kuma. Voeg aan de OPNsense-service dan de OPNsense-widget toe voor servicespecifieke statistieken en de widget van Uptime Kuma voor beschikbaarheidsstatistieken. In plaats van één object widget bevat de service dan een object widgets met een lijst die beide widgets bevat:

  - OPNsense:

      href: https://opnsense.home

      description: Router

      icon: opnsense

      widgets:

        - type: opnsense

          url: https://opnsense.home

          username: KEY

          password: SECRET

        - type: uptimekuma

          url: https://uptime-kuma.rubus.home

          slug: router

          fields: ["uptime", "incident"]

De widget van Uptime Kuma gebruikt data van een statuspagina. Die moet je dus eerst in Uptime Kuma aanmaken, en de naam van de statuspagina vul je bij slug in de widget in. Als de statuspagina bijvoorbeeld toegankelijk is via https://uptime-kuma.rubus.home/status/router, dan is de slug router.

Homepage kan een statuspagina van Uptime Kuma in een service integreren.

Beschikbaarheid monitoren

Ook zonder speciale monitoringtools kun je met Homepage eenvoudig te zien krijgen of al je services momenteel online zijn. Dat kan met de eigenschap ping of siteMonitor in de service. Voeg bijvoorbeeld aan de service voor OPNsense ping: opnsense.home toe. Homepage stuurt dan regelmatig een ICMP-echopakket (ping) naar de host en toont de beschikbaarheid in de rechterbovenhoek van het kader van de service.

Met siteMonitor: https://opnsense.home daarentegen voert Homepage een HTTP HEAD-verzoek uit naar de url om te controleren of de webpagina beschikbaar is. Zo weet je niet alleen dat de host online is, maar ook dat de webserver tenminste draait en de pagina aanbiedt. Let op dat je hier de volledige url met https:// of http:// dient te gebruiken. De stijl van de getoonde status kun je overigens in settings.yaml aanpassen met bijvoorbeeld statusStyle: dot of statusStyle: basic.

Enkele services met pictogrammen, widgets en statusinformatie.

Docker-containers integreren

Als je services in Docker-containers draait, kan Homepage via de API van de Docker-engine statistieken over die containers opvragen en zelfs automatisch services herkennen. Configureer hiervoor een Docker-instance voor Homepage in docker.yaml. Als je Homepage met de Docker-socket laat verbinden, kan dat met de volgende configuratie:

local-docker:

  socket: /var/run/docker.sock

In je Docker Compose-bestand moet je deze socket als volume in de Homepage-container aankoppelen:

    volumes:

      - /home/koan/containers/homepage:/app/config

      - /var/run/docker.sock:/var/run/docker.sock

Docker Socket Proxy

Een veiliger alternatief om Homepage toegang tot Docker te geven, is via Docker Socket Proxy. Je laat die laatste dan rechtstreeks met de Docker-socket verbinden en de andere containers via een HTTP API beperkte bevoegdheden geven. Voeg daarvoor in je Docker Compose-bestand de volgende service voor Docker Socket Proxy toe:

  docker-socket-proxy:

    image: ghcr.io/tecnativa/docker-socket-proxy:0.3.0

    container_name: docker-socket-proxy

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock:ro

    environment:

      CONTAINERS: 1

    restart: unless-stopped

Standaard geeft Docker Socket Proxy sterk ingeperkte API-toegang tot de Docker-engine, en sowieso alleen-lezen. Met de omgevingsvariabele CONTAINERS: 1 geven we toegang tot informatie over containers, precies wat Homepage nodig heeft.

Wijzig nu in het bestand docker.yaml de definitie van local-docker naar:

local-docker:

  host: docker-socket-proxy

  port: 2375

Omdat de container van Docker Socket Proxy zich in hetzelfde netwerk als Homepage bevindt, is die onder de naam docker-socket-proxy bereikbaar, wat we hier als host invullen.

Maak dan de containers opnieuw aan met de opdrachten:

docker-compose down

docker-compose up -d

Containers monitoren

Containers die in hetzelfde Docker Compose-bestand als Homepage zijn gedefinieerd, kun je nu door die laatste laten monitoren. Je moet dan bij de service in services.yaml de Docker-server en de naam van de container opgeven, bijvoorbeeld:

- Services:

  - FreshRSS:

      href: http://debian.home:8081

      description: Feed aggregator

      icon: freshrss

      server: local-docker

      container: freshrss

De waarde van server is hier de naam van de Docker-instance in docker.yaml, namelijk local-docker. De waarde van container is hier de naam van de container, gedefinieerd in container_name in het Docker Compose-bestand.

Na het herladen van de webpagina van Homepage krijgt de FreshRSS-service de status RUNNING in de rechterbovenhoek of EXITED wanneer de container gestopt is. Klik op de status voor gedetailleerdere statistieken zoals de processorbelasting, het geheugengebruik en netwerkverkeer.

Services automatisch detecteren

Elke keer dat je nu een service toevoegt, moet je de container aan je Docker Compose-bestand toevoegen en een definitie van de service aan het bestand services.yaml van Homepage. Maar Homepage ondersteunt ook het automatisch detecteren van services voor containers met behulp van labels. Met deze aanpak hoef je services.yaml niet meer bij te werken en hoef je slechts één bestand te veranderen. Voor FreshRSS kan dat bijvoorbeeld als volgt:

  freshrss:

    image: docker.io/freshrss/freshrss:1.26.1-alpine

    container_name: freshrss

    ports:

      - 8081:80

    volumes:

      - /home/koan/containers/freshrss/data:/var/www/FreshRSS/data

      - /home/koan/containers/freshrss/extensions:/var/www/FreshRSS/extensions

    environment:

      CRON_MIN: "1,31"

      TZ: Europe/Brussels

    restart: unless-stopped

    labels:

      - homepage.group=Services

      - homepage.name=FreshRSS

      - homepage.href=http://debian.home:8081

      - homepage.description=Feed aggregator

      - homepage.icon=freshrss

In de labels van deze container geef je dus aan dat je in de groep Services een service met de naam FreshRSS toevoegen, met de gegeven link, beschrijving en pictogram. De opties server en container uit de vorige paragraaf zijn met deze aanpak overbodig, omdat Homepage deze automatisch via de API van de geconfigureerde Docker-instance verkrijgt. Na opnieuw het uitvoeren de volgende twee commando’s ontdekt Homepage automatisch de service en voegt deze aan de juiste groep toe:

docker-compose down

docker-compose up -d

Widgets

Op dezelfde manier kun je widgets toevoegen via labels. In het voorbeeld uit de vorige stap voeg je dan de volgende labels toe:

      - homepage.widget.type=freshrss

      - homepage.widget.url=http://freshrss

      - homepage.widget.username=USER

      - homepage.widget.password=PASSWORD

Wil je meerdere widgets aan een container toevoegen, geef dan elk widget een index:

      - homepage.widgets[0].type=freshrss

      - homepage.widgets[0].url=http://freshrss

      - homepage.widgets[0].username=USER

      - homepage.widgets[0].password=PASSWORD

      - homepage.widgets[1].type=uptimekuma

      - homepage.widgets[1].url=https://uptime-kuma.rubus.home

      - homepage.widgets[1].slug=freshrss

Wanneer je nu de container van FreshRSS opnieuw aanmaakt en opstart, detecteert Homepage de widgets en toont ze bij de service.

Alternatieven voor Homepage

Hoewel Homepage een krachtige tool is, zijn er talrijke alternatieven om een dashboard voor al je services te maken, elk met hun eigen benadering. Houd je niet van YAML-configuraties, dan biedt Homarr een gebruiksvriendelijk alternatief om met slepen en neerzetten allerlei services toe te voegen.

Ook populair is Heimdall. Het is minder naar eigen smaak aan te passen dan Homepage of Homarr, maar daardoor eenvoudig om mee aan de slag te gaan.

Bevalt de aanpak met YAML-bestanden je wel, maar ligt Homepage je niet helemaal, kijk dan eens naar Dashy.

Bookmarks

Tot slot kan Homepage ook gewone bladwijzers aan je dashboard toevoegen. Je kunt ze net op dezelfde manier als services groeperen, maar het zijn slechts links zonder extra functionaliteiten zoals widgets en monitoring. Bladwijzers definieer je in het bestand bookmarks.yaml van Homepage, dat er standaard als volgt uitziet:

- Developer:

  - GitHub:

    - abbr: GH

      href: https://github.com

- Social:

  - Reddit:

    - abbr: RE

      href: https://reddit.com

- Entertainment:

  - YouTube:

    - abbr: YT

      href: https://youtube.com

Vervang deze groepen met bladwijzers door jouw eigen keuzes. Dit is bijvoorbeeld handig om alle links naar portaalsites of accounts bij belangrijke diensten op één pagina te verzamelen. Homepage toont dan per groep een lijst met bladwijzers met hun afkorting (de waarde van abbr), naam en het domein van de link.

Wil je in plaats van een afkorting een pictogram bij een bladwijzer tonen, gebruik dan icon in plaats van abbr en geef daar net zoals bij services de naam van een pictogram op. En vul description bij een bladwijzer in om een beschrijving in de plaats van het domein te zien. Ook de groepen van bladwijzers kun je een pictogram geven. Net zoals voor de groepen van services definieer je die pictogrammen in settings.yaml.

Een volledig dashboard van Homepage met header, services en bladwijzers.

En verder

Homepage biedt nog veel meer mogelijkheden dan we hier kunnen behandelen. Vooral in het bestand settings.yaml zijn er nog allerlei aanpassingen mogelijk. Zo kun je een achtergrondafbeelding instellen en daarop allerlei filters toepassen. Ook het thema en het kleurenpalet, die je beide via pictogrammen onderaan de pagina kunt aanpassen, zijn vast in te stellen.

Ook de lay-out van het dashboard is configureerbaar. Zo neemt standaard elke groep een kolom in, waarbij de services onder elkaar komen te staan. Maar met style: row bij een groep laat je de services in die groep naast elkaar in een rij weergeven. Ook het aantal kolommen, de stijl van de header en nog meer zijn in te stellen.

Homepage is tot in de kleinste details aan te passen.

Speciaal voor de jongste Linux-fans

(dit vinden ze zeker leuk!)
▼ Volgende artikel
Waar voor je geld: 5 mini-pc's als desktop- of laptopvervanger
© ID.nl
Huis

Waar voor je geld: 5 mini-pc's als desktop- of laptopvervanger

In de rubriek Waar voor je geld gaan we op zoek naar producten voor een mooie prijs die je leven makkelijk(er) maken. Werk je vaak thuis, maar is je werkplek niet al te groot? Dan kun je overwegen om een klein formaat pc aan te schaffen. Een mini-pc voldoet aan die behoefte, het enige dat nodig is, is een aparte monitor.

Een mini-pc kan een goede oplossing zijn voor thuiswerkplekken die niet al te groot zijn, of waar je simpelweg gewoon een opgeruimder bureau wil hebben. Mini-pc's zijn compact, maar snel en veelzijdig genoeg om er je gewone werk op te doen of om op te gamen. Wij vonden vijf krachtige mini-pc's voor je.

Acer Revo Box RB102-01W Mini

De Acer Revo Box RB102-01W Mini is een compacte computer die zijn rekenkracht ontleent aan een Intel Core Ultra 5 125U processor. Deze processor is ontworpen om een balans te bieden tussen prestaties en energie-efficiëntie. Voor het uitvoeren van je dagelijkse taken en het wisselen tussen verschillende applicaties beschikt het systeem over 8 GB aan DDR5 werkgeheugen. De opslag van je bestanden, software en het besturingssysteem wordt verzorgd door een 512 GB SSD, wat bijdraagt aan snelle opstart- en laadtijden. Qua connectiviteit kun je gebruikmaken van een reeks poorten. Zo zijn er meerdere USB-aansluitingen beschikbaar voor je randapparatuur. Voor het aansluiten van beeldschermen is de mini-pc uitgerust met zowel een HDMI- als een DisplayPort-uitgang. Om verbinding te maken met een netwerk, is er een 2.5 Gigabit Ethernetpoort aanwezig. Het systeem wordt geleverd met Windows 11 voorgeïnstalleerd.

Specificaties

Formaat: 13,1 x 13,1 x 4,3 cm
Processor:
Intel Core Ultra 5 125U
Werkgeheugen:
8 GB DDR5
Harde schijf:
512 GB SSD
Netwerk:
Wifi 6E, Bluetooth, 2.5 Gigabit LAN

MSI Cubi 5 12M-002EU

De MSI Cubi 5 12M-002EU is een rappe mini-pc van slechts 12,4 × 12,4 × 5,4 centimeter. Via de bijgesloten VESA-beugel monteer je de behuizing optioneel achterop een pc-monitor. Ondanks het nogal kleine formaat betreft het een volwaardige pc waarop je één of twee schermen kunt aansluiten. Gebruik hiervoor de HDMI- en/of DisplayPort-aansluiting aan de achterzijde. Verder zien we hier twee netwerk- en usb-poorten. Via drie usb-ingangen aan de voorzijde sluit je makkelijk randapparaten aan. Voor draadloze communicatie heeft de binnenzijde een bluetooth- en wifi-adapter.

In het kleine 'doosje' zit een ssd van 512 GB. Hierop is Windows 11 Pro voorgeïnstalleerd. Om die reden leent de Cubi 5 12M-002EU zich goed voor zakelijke gebruikers, want deze Windows-editie beschikt over extra veiligheidsfuncties. De Intel Core i5-1235U-processor voldoet voor dagelijkse pc-taken prima. Deze processor heeft tien rekenkernen waarvan de snelste twee zijn afgeregeld op een maximale klokfrequentie van 4,4 GHz. Tot slot is er een geheugenmodule van 8 GB RAM ingebouwd. Blijkt dat op den duur onvoldoende, dan kun je eventueel upgraden naar maximaal 64 GB RAM. Deze mini-pc is als alternatief ook met meer rekenpower verkrijgbaar.

Specificaties

Formaat: 12,4 x 12,4 x 5,4 cm
Processor:
Intel Core i5-1235U
Werkgeheugen:
8 GB DDR4
Harde schijf:
512 GB SSD
Netwerk:
Wifi 6E, Bluetooth 5.3, 1x Gigabit LAN, 1x 2.5 Gigabit LAN

Lenovo ThinkCentre M70q Gen 5 Mini PC 

De Lenovo ThinkCentre M70q Gen 5 is een compacte computer die zijn prestaties haalt uit een Intel Core i5-14400T processor. Voor het uitvoeren van je taken en het draaien van software is het systeem voorzien van 16 GB aan DDR5 werkgeheugen. Dit type geheugen heeft een hogere snelheid dan zijn voorganger, DDR4. Als het gaat om de opslag van je bestanden en programma's, dan maak je gebruik van een 512 GB SSD. De aanwezigheid van een SSD is van invloed op de opstarttijd van de computer en de laadsnelheid van je applicaties. Verbindingen met het internet en je lokale netwerk leg je via de ingebouwde Wi-Fi 6 (802.11ax) module of de aanwezige ethernetpoort. Voor het koppelen van randapparatuur zoals een monitor, muis of extern opslagapparaat, beschikt de mini-pc over een variatie aan poorten, waaronder HDMI, DisplayPort en meerdere USB-aansluitingen. Het besturingssysteem dat vooraf geïnstalleerd is, is Windows 11 Pro.

Specificaties

Formaat: 17,9 x 18,3 x 3,7 cm
Processor:
Intel Core i5-14400T
Werkgeheugen:
16 GB DDR5
Harde schijf:
512 GB SSD
Netwerk:
Wifi 6E, Bluetooth 5.3, Gigabit LAN

DELL OptiPlex 3000 Thin Client - N6005

De DELL OptiPlex 3000 in deze Thin Client-uitvoering is een systeem dat is ontworpen voor specifieke computertaken. Het apparaat draait op een Intel Pentium Silver N6005 processor, een chip die de basis vormt voor de functionaliteit. Voor het werkgeheugen is er 16 GB RAM aanwezig, wat van invloed is op de prestaties bij het gebruiken van meerdere programma's. De opslag bestaat uit een SSD met een capaciteit van 256 GB, waarop het besturingssysteem en je applicaties worden geïnstalleerd. Dit model is uitgerust met Dell ThinOS, een specifiek besturingssysteem dat is gericht op het werken met virtuele desktopomgevingen. Voor het aansluiten van je apparatuur beschikt de computer over diverse poorten. Je vindt er onder andere USB 3.2-poorten, een netwerkaansluiting en twee DisplayPort-uitgangen voor het koppelen van beeldschermen. De compacte behuizing maakt het mogelijk om het systeem op verschillende manieren te plaatsen

Specificaties

Formaat: 18,2 x 17,8 x 3,6 cm
Processor:
Intel Pentium Silver N6005
Werkgeheugen:
16 GB DDR4
Harde schijf:
256 GB SSD
Netwerk:
Gigabit LAN

Blackview MP100 Mini PC

Binnen de compacte behuizing van de Blackview MP100 vind je een AMD Ryzen 7 5825U processor, een chip met 8 kernen die de taken van het systeem verwerkt met een maximale turbofrequentie van 4.5 GHz. Voor het gelijktijdig gebruiken van verschillende programma's is het systeem, afhankelijk van de uitvoering, voorzien van 16 GB of 32 GB DDR4 werkgeheugen. Mocht je in de toekomst meer geheugen nodig hebben, dan is dit uit te breiden tot een maximum van 64 GB. De opslag van je bestanden en software wordt verzorgd door een M.2 SSD, met een capaciteit van 512 GB of 1 TB. Qua verbindingen heb je de beschikking over Wi-Fi 6 en Bluetooth 5.2 voor draadloze connectiviteit. Fysieke aansluitingen zijn er ook volop: het apparaat heeft onder andere USB 3.2-poorten, twee Type-C poorten, een HDMI-aansluiting en een DisplayPort. Hiermee kun je tot drie 4K-beeldschermen tegelijk aansturen. Het vooraf geïnstalleerde besturingssysteem op dit model is Windows 11 Pro.

Specificaties

Formaat: 12,8 x 12,8 x 5,2 cm
Processor: AMD Ryzen 7 5825U
Werkgeheugen:
16 GB of 32 GB DDR4
Harde schijf:
512 GB of 1 TB SSD
Netwerk:
Wifi 6, Bluetooth 5.2, Gigabit LAN