Updates installeren op al je computers is belangrijk om te voorkomen dat er misbruik wordt gemaakt van kwetsbaarheden in je systemen. Automatisch updates installeren kan problemen veroorzaken als dat net op een moment gebeurt dat het je niet goed uitkomt. Een systeem dat je helpt de beschikbare updates te monitoren en door te voeren, is dan ook heel welkom.

PatchMon installeren

Met PatchMon voorkom je problemen door onverwachte updates. Je installeert het op je eigen server, waarop het vervolgens een dashboard aanbiedt. Het kan updates op zowel Linux-, FreeBSD- als Windows-computers beheren. De Windows-ondersteuning is nog recent en daarom nog niet zo uitgebreid als die voor de andere besturingssystemen. In dit artikel focussen we ons op het patchbeheer van Linux-systemen.

De aanbevolen manier om PatchMon te installeren is met Docker op een Linux-server. Het project heeft een installatiescript dat je zo kunt uitvoeren om een Docker Compose-bestand te downloaden, secrets te genereren en een bestand met omgevingsvariabelen aan te maken:

$ mkdir patchmon
$ cd patchmon
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/PatchMon/PatchMon/refs/heads/main/docker/setup-env.sh)"
PatchMon beheert updates van je Linux-systemen.

Configuratie PatchMon

De belangrijkste configuratie bevindt zich in het verborgen bestand .env, dat door het installatiescript al grotendeels is ingevuld. Open dit bestand bijvoorbeeld met nano. Je hoeft maar één variabele in te stellen: achter CORS_ORIGIN vul je de url in waaronder PatchMon bereikbaar is. Standaard luistert de webinterface op poort 3000, dus hier kun je http://IP:3000 zetten, met ip het ip-adres van de server waarop je PatchMon draait. Werk je met een reverse proxy om PatchMon via https aan te bieden, vul hier dan de url van de reverse proxy in, en verander TRUST_PROXY naar true.

Start daarna de containers met docker compose up -d. Als alles goed gaat, kun je nu de webinterface van PatchMon op poort 3000 benaderen. Indien niet, kijk dan met docker compose logs -f naar eventuele foutmeldingen. In de webinterface creëer je een beheerdersaccount, voeg je optioneel multifactorauthenticatie toe en bevestig je de url van de PatchMon-server. Klik tot slot op Access Dashboard.

Creëer een beheerdersaccount voor PatchMon.
Creëer een beheerdersaccount voor PatchMon.

Computer toevoegen

Je ziet nu het dashboard van PatchMon, maar de grafieken zijn nog leeg. Klik in de linkerzijbalk bij Hosts op het plusteken om je eerste computer toe te voegen. Kies in de eerste stap het besturingssysteem: Linux, FreeBSD of Windows. In de volgende stap kies je de naam waaronder je de computer in PatchMon wilt zien. Eronder schakel je indien gewenst integraties in, zoals het monitoren van Docker-containers en het testen op compliance volgens beveiligingsstandaarden. Die kun je later ook nog inschakelen. Nadat je op Next klikt, toont PatchMon een opdracht die je op de computer dient in te typen om de agent te installeren.

Zodra je die opdracht kopieert, gaat PatchMon voort naar de vierde stap en wacht hij op een verbinding van de agent. Voer de opdracht op de computer uit en binnen een minuut zouden de installatie voltooid en de agent verbonden moeten zijn. PatchMon toont dan Connected. Nadat de agent de eerste keer een rapport over de aanwezige software heeft doorgestuurd, krijg je de host in het dashboard te zien.

We hebben onze eerste computer aan PatchMon toegevoegd.
We hebben onze eerste computer aan PatchMon toegevoegd.

Informatie over de computer

Als je de agent op deze manier op enkele van je computers hebt geïnstalleerd, verschijnen ze in de lijst met computers die je met een klik op Hosts in de linkerzijbalk opvraagt. Klik dan op een computer om de details hierover te bekijken. De detailpagina is onderverdeeld in meerdere tabbladen, maar erboven krijg je de belangrijkste gegevens te zien: hoeveel pakketten er zijn geïnstalleerd, hoeveel daarvan een update vereisen en hoeveel daarvan beveiligingsupdates zijn.

Klik je op het totaal aantal pakketten, dan open je de lijst met op deze computer geïnstalleerde pakketten en kun je daarin zoeken. Ook met de verouderde pakketten en beveiligingsupdates kun je dit doen. Op elk pakket kun je weer doorklikken voor meer informatie over de huidige en beschikbare versie en een beschrijving van het pakket. Met een klik op Patch update je het pakket.

Bekijk de details van dit pakket voordat je het updatet.
PatchMon-server bereiken

PatchMon is zo opgezet dat de agents de PatchMon-server moeten kunnen bereiken. Dat is belangrijk om rekening mee te houden als je de PatchMon-server op een Linux-server in je lokale netwerk draait. Thuis kunnen je computers deze server gewoon bereiken, maar als je computers ook buitenshuis wilt updaten kan dat niet. Een mogelijke oplossing hiervoor is om een VPN met bijvoorbeeld WireGuard op te zetten tussen de server op internet en je lokale netwerk.

Pakket updaten

Wanneer je een pakket updatet, vraagt PatchMon je eerst om een dry-run uit te voeren om te bekijken welke pakketten precies worden geüpdatet. Als daar niets onverwachts te zien is, klik je op Next, kies je de timing (standaard onmiddellijk) en bevestig je dit. Dit vergt enkele stappen, omdat PatchMon je toelaat om een heel proces hierachter in te stellen waarbij je bijvoorbeeld toestemming moet vragen aan een andere gebruiker. Uiteindelijk zie je in een shellvenster live de opdrachten die PatchMon uitvoert om de update toe te passen.

Alles wat er zojuist is gebeurd, wordt ook door PatchMon geregistreerd en kun je later onder Patching / Runs & History in detail bekijken. Wie de actie heeft gestart en goedgekeurd, welke pakketten er precies op welke computer een update kregen en zelfs de volledige uitvoer van de dry-run en de effectieve installatie: je kunt het hier allemaal bekijken.

Bekijk wat een update precies in gang zet.
Bekijk wat een update precies in gang zet.

Overzicht van je pakketten

PatchMon komt natuurlijk het meest tot zijn recht wanneer je op meerdere computers en/of meerdere pakketten tegelijk gaat updaten. In het detailoverzicht van een computer update je met een klik op Patch all alle pakketten op die computer. Dat slaat overigens de dry-run over. Wil je toch specifieker op die computer kiezen wat je updatet, klik dan op Outdated Packages, selecteer wat je wilt updaten en klik dan bovenaan op Patch selected.

Als je links op Packages klikt, geeft PatchMon je een overzicht van alle pakketten op al je computers. Hier kun je pakketten aanvinken en vervolgens bovenaan op Patch selected klikken om de updates op de verschillende computers uit te voeren. In de eerste stap kun je nog selecteren op welke computers je dat wilt. Na de dry-run kun je per computer kiezen wanneer de updates worden doorgevoerd.

Kies wanneer de updates op welke computer worden geïnstalleerd.
Kies wanneer de updates op welke computer worden geïnstalleerd.

Patchbeleid

Onder Patching toont PatchMon je een overzicht van alle keren dat je patches hebt geïnstalleerd. Eerder verwezen we al naar het onderdeel Runs & History om in detail terug te zien wat je hebt gedaan. Overview geeft je een handig overzicht. Als er bijvoorbeeld nog updates aan de gang zijn, zie je dit hier en kun je erop doorklikken. En als een update op bevestiging wacht, word je hiervan op de hoogte gebracht en kun je onmiddellijk doorklikken om deze te bevestigen of te verwijderen.

Onder Policies creëer je met een klik op Create policy een eigen patchbeleid. Geef het beleid een naam, optioneel een beschrijving en kies dan of de updates onmiddellijk, met een vertraging van een aantal minuten of op een vast tijdstip moeten gebeuren. Daarna kun je computers of groepen (die we dadelijk bespreken) aan dit beleid toekennen. Bij het starten van een update wordt dan het aan de computer toegekende patchbeleid automatisch geselecteerd, maar dit kun je nog handmatig aanpassen.

PatchMon geeft je een duidelijk overzicht van de patches die je hebt geïnstalleerd of nog moet goedkeuren.

Groepen

Als je verschillende typen computers hebt, kun je die groeperen, bijvoorbeeld een groep voor alle servers en een voor alle laptops. Daarvoor ga je naar Settings / Host Groups en klik je op Create Group. Daarna ga je naar de individuele computers onder Host in het linkermenu, open je de detailinformatie van een computer onder Host Info en klik je onder Host Groups op het potlood naast Ungrouped. Er verschijnt dan een lijst met je groepen en je vinkt aan tot welke groepen de computer hoort. Bevestig met een klik op het groene vinkje.

De groepen kun je nu, zoals in de vorige stap uitgelegd, gebruiken om een specifiek patchbeleid in te stellen voor enkele computers. Op de pagina Hosts kun je ook bij Filters instellen dat je alleen computers van een specifieke groep wilt zien. En op dezelfde pagina klik je op No Grouping en dan op By Group om de computers per groep in het overzicht te zien.

Ken je computers aan groepen toe voor een overzichtelijker beheer.

Compliance controleren

Per computer kun je ook de module Compliance inschakelen. Dat doe je op de detailpagina van een computer onder Integrations. Als je Compliance Scanning op On-Demand zet, kun je de scanner handmatig starten. Zet je dit daarentegen op Enabled, dan zal PatchMon standaard elke 24 uur een compliance scan uitvoeren. Dit interval is aan te passen onder Compliance / Settings. Klik vervolgens in het tabblad Compliance op Install scanner.

Na het inschakelen van de module op een computer wacht je op de periodieke scan of ga je naar Compliance / Hosts en klik je op het Run-pictogram bij de computer om de scan te starten. Op de achtergrond start nu een scan door het opensource-programma OpenSCAP, dat de configuratie van je systeem vergelijkt met een benchmarkprofiel voor de Linux-distributie op de computer. Die benchmark past een heleboel best practices toe voor veilige systemen. De scan kan volgens de documentatie wel tientallen minuten duren, maar op onze Debian- en Ubuntu-systemen was het telkens in enkele minuten klaar. Het resultaat vind je na voltooiing onder Compliance / Scan Results.

PatchMon kan ook controleren of je computers aan best practices voor beveiliging voldoen.

Complianceresultaten

In het tabblad Overview van het onderdeel Compliance zie je in één oogopslag hoe het met de beveiliging van je systemen gaat. Bijvoorbeeld hoeveel tests er slagen en wat de ernst is van de tests die niet slagen. In het tabblad Hosts zie je ook welk percentage van de tests per computer slaagt en welk percentage niet slaagt. Op basis van al deze informatie kun je beslissen welke computers prioriteit moeten krijgen bij extra beveiliging.

Onder Scan Results zie je nu voor elke uitgevoerde test een regel. Deze zijn te filteren op prioriteit, of ze geslaagd zijn of niet, en op de computers waarop ze van toepassing zijn. Begin bijvoorbeeld met te filteren op prioriteit Critical of High om te kijken wat je zeker als eerste moet aanpakken. Klik je op een specifieke regel, dan krijg je een beschrijving van de test, waarom dit belangrijk is en op welke computers dit van toepassing is. Vaak vind je ook een opdracht die je op de computer kunt uitvoeren voor het geval iets niet goed werkt.

PatchMon toont wat je kunt doen om je computer extra te beveiligen.

Waarschuwingen

PatchMon kan ook waarschuwingen uitsturen voor allerlei gebeurtenissen. In het tabblad Event Rules definieer je welke waarschuwingen naar welke bestemming gaan. Standaard zijn er drie regels gedefinieerd die je waarschuwen wanneer een computer offline is, wanneer er een nieuwe update voor de PatchMon-server beschikbaar is en wanneer er een nieuwe update voor de PatchMon-agent beschikbaar is. Als je het gedrag hiervan wilt veranderen, klik je naast de regel op Edit. Zo kun je instellen dat je alleen waarschuwingen voor een offline computer wilt ontvangen als het om een server gaat.

Als bestemming staat er bij elke regel Internal Alerts. Dat is een bestemming die PatchMon standaard definieert onder Reporting / Destinations. Die zorgt ervoor dat je waarschuwingen in de webinterface te zien krijgt onder Reporting / Alerts. Je kunt deze standaardbestemming alleen uitschakelen of een andere naam geven.

Kies voor welke groepen je welke waarschuwingen wilt ontvangen.
Kies voor welke groepen je welke waarschuwingen wilt ontvangen.

Extra bestemming

Onder Reporting / Destinations kun je ook extra bestemmingen voor de waarschuwingen van PatchMon toevoegen. Klik daarvoor op Add destination. Je hebt de keuze uit webhooks, e-mail of ntfy. Hier tonen we hoe je waarschuwingen met ntfy instelt. Klik daarvoor op ntfy en dan op Next.

Geef je bestemming een naam en vul dan de server-url en het topic in. Draait de ntfy-server op dezelfde Docker-host als PatchMon in hetzelfde netwerk, bijvoorbeeld als beide containers in hetzelfde Docker Compose-bestand zijn gedefinieerd, dan kun je als server-url http://naamvancontainer invullen, met de naam van de container van ntfy. Als je ntfy-server authenticatie vereist, vul je ofwel een toegangstoken ofwel een gebruikersnaam en wachtwoord in.

Klik op Create. Klik daarna op Test naast de bestemming in de lijst. Schrijf je in de ntfy-app op het ingestelde topic in om de testnotificatie te bekijken. Zie je niets, controleer dan in Reporting / Delivery Log op eventuele foutmeldingen. Als het werkt, kun je nu regels met deze bestemming toevoegen.

PatchMon stuurt waarschuwingen via ntfy.

Nog veel meer

PatchMon biedt nog veel meer mogelijkheden. Als je de Docker-module inschakelt, ontdekt PatchMon containers op de computers met de agent en herkent het wanneer er updates beschikbaar zijn. En als je ook de compliancemodule inschakelt, kun je Docker Bench als extra scanner laten uitvoeren om te controleren of je containers de best practices voor beveiliging volgen.

Op elke computer waarop de PatchMon-agent draait, kun je ook vanuit de detailpagina via SSH inloggen over een WebSocket-verbinding. En voor Windows-computers kun je een grafische sessie via RDP (Remote Desktop Protocol) openen. Dan moet je wel een extra container voor guacd installeren. Verder is er ook uitgebreid gebruikersbeheer, waarbij meerdere personen elk specifieke rollen toegewezen krijgen. Alle mogelijkheden worden beschreven in de online documentatie, onderverdeeld in documenten voor de installatie, het dagelijks gebruik en de integraties.

PatchMon biedt uitgebreide documentatie aan.
In het kort

PatchMon centraliseert updatebeheer voor Linux-, FreeBSD- en Windows-computers via een dashboard op je eigen server. De webinterface draait standaard op poort 3000 en beheert hosts via een agent die per computer wordt geïnstalleerd. PatchMon kan updates eerst met een dry-run controleren, daarna plannen of direct uitvoeren en alle patchacties bewaren in Runs & History. De compliancemodule kan standaard elke 24 uur een scan uitvoeren en gebruikt OpenSCAP om Linux-systemen langs beveiligingsprofielen te leggen.

Veelgestelde vragen

Wat kost PatchMon voor zelfhosting of cloudgebruik?

PatchMon Community Edition is gratis te gebruiken als zelfgehoste AGPLv3-versie. Voor wie het beheer van de PatchMon-server niet zelf wil doen, is er PatchMon Cloud. De officiële cloudprijzen beginnen bij 1 dollar per host per maand voor monitoring, met hogere tiers voor patching, compliance en remote access. De cloudversie heeft een proefperiode van 14 dagen.

Welke systemen en pakketbeheerders ondersteunt PatchMon?

PatchMon richt zich vooral op Linux- en FreeBSD-systemen, maar ondersteunt ook Windows-hosts. Bij Linux gaat het om gangbare pakketbeheerders zoals APT, DNF, YUM, APK en Pacman. FreeBSD gebruikt pkg en Windows werkt via Windows Update. De precieze mogelijkheden verschillen per platform: compliance scanning en Docker-integratie zijn bijvoorbeeld niet op elk besturingssysteem beschikbaar.

Hoe veilig is centraal patchbeheer met een agent?

Centraal patchbeheer is veilig te gebruiken als je de server goed afschermt, sterke accounts gebruikt en alleen vertrouwde hosts toevoegt. PatchMon werkt met agents die contact maken met de server, waardoor je niet op elke beheerde computer aparte beheerpoorten hoeft open te zetten. Extra beveiliging zit in multifactorauthenticatie, rollenbeheer, auditlogs en het vooraf controleren van patchruns.

Waarom zou je dry-run en goedkeuring gebruiken bij updates?

Een dry-run verlaagt het risico dat een update onverwacht diensten verstoort. Je ziet vooraf welke pakketten worden bijgewerkt en kunt afwijkingen controleren voordat de echte installatie start. Goedkeuring is vooral nuttig bij servers, productieomgevingen en systemen met meerdere beheerders. Zo voorkom je dat updates automatisch op een ongelukkig moment draaien en houd je tegelijk een controleerbaar spoor bij.

Hoe verschilt PatchMon van gewone automatische updates?

Gewone automatische updates werken meestal per computer en voeren updates uit volgens lokale instellingen. PatchMon voegt daar centraal overzicht, planning, dry-runs, goedkeuringen, geschiedenis en waarschuwingen aan toe. Dat is vooral handig zodra je meerdere servers, laptops of containers beheert. Je ziet dan niet alleen dát updates beschikbaar zijn, maar ook waar ze draaien en wie ze heeft gestart.