SSD Nodes Learn 🎉 VPS vanaf $5.50/mnd
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-13

Hoe voer ik beveiligingsupdates uit op FreeBSD?

FreeBSD gebruikt freebsd-update voor het basissysteem en pkg audit voor pakketten. Leer hoe u beide tools combineert om uw server volledig te beveiligen tegen kwetsbaarheden.

Hoe FreeBSD beveiligingsupdates afhandelt

FreeBSD beheert beveiligingsupdates met twee afzonderlijke tools, omdat een FreeBSD-server uit twee verschillende onderdelen bestaat. Het basissysteem, oftewel de kernel en de userland die bij de release werden meegeleverd, wordt gepatcht met freebsd-update. Alles wat u daarbovenop heeft geïnstalleerd, is een pakket, en pakketten worden gepatcht met pkg. Als u de ene tool uitvoert en de andere overslaat, blijft de helft van de machine ongepatcht, en het systeem zal u hier niet over waarschuwen.

SSD Nodes biedt geen FreeBSD-images aan. Onze abonnementen draaien op Linux. Dit bericht staat hier toch omdat de doelgroepen volledig overlappen: de mensen die onze Ubuntu- en Debian-servers beheren, draaien ook FreeBSD op een firewall of op die ene machine die zij hebben overgenomen. Het gesplitste patchmodel is het onderdeel waar een Linux-beheerder vaak over struikelt, dus is het de moeite waard om dit te documenteren. Elk commando, elk adviesformaat en elke ondersteuningsdatum hieronder is in augustus 2026 gecontroleerd aan de hand van de FreeBSD security-pagina en de man-pages van het project.

Eén opmerking voorafgaand aan de commando's. FreeBSD installeert sudo niet standaard in het basissysteem. Voor alles wat hieronder staat, is root-toegang vereist. Gebruik su -, of installeer eerst sudo of doas via de pakketbeheerder.

Het basissysteem en pakketten zijn gescheiden werelden

Op Ubuntu beheert apt de gehele machine. De kernel, openssl, nginx en uw eigen tools worden allemaal geleverd als .deb-bestanden via één tool, en apt upgrade verplaatst deze allemaal tegelijk.

FreeBSD splitst dit in tweeën. Het basissysteem wordt als één eenheid gebouwd en als één eenheid van een versie voorzien: 15.1-RELEASE-p3 is een enkel nummer dat de kernel, de C-library, sshd en de OpenSSL-kopie in /usr/lib omvat. Niets hiervan is afkomstig van pkg. Al het overige bevindt zich onder /usr/local, wordt geleverd als een binair pakket dat is gebouwd vanuit de ports-tree, en heeft een eigen versie.

Eén machine kan dus twee kopieën van OpenSSL bevatten: de basiskopie in /usr/lib, die alleen door freebsd-update wordt gepatcht, en de pakketkopie in /usr/local/lib, die alleen door pkg wordt gepatcht. Welke versie een programma gebruikt, hangt af van waartegen het is gelinkt; software die via pakketten is geïnstalleerd, linkt doorgaans aan de pakketkopie. Het patchen van de een heeft geen effect op de ander.

Drie commando's geven aan wat de status is:

freebsd-version -u
freebsd-version -k
uname -r

freebsd-version -u toont het patchniveau van de geïnstalleerde userland. freebsd-version -k toont het patchniveau van de geïnstalleerde kernel, en freebsd-version(1) is expliciet over waarom dit niet hetzelfde is als uname: "als een nieuwe kernel is geïnstalleerd maar het systeem nog niet opnieuw is opgestart, zal freebsd-version de versie en het patchniveau van de nieuwe kernel tonen". uname -r toont de kernel die op dit moment draait. Er is ook freebsd-version -r, die de draaiende kernel toont maar "niet wordt beïnvloed door omgevingsvariabelen", wat van belang is binnen een jail waar UNAME_r vaak op iets anders is ingesteld.

Beveiligingsadviezen en errata-berichten

Het FreeBSD Security Team publiceert twee soorten berichten, die elk een andere betekenis hebben.

Een Security Advisory (beveiligingsadvies) heeft betrekking op een beveiligingslek in het basissysteem. De identificatie ziet eruit als FreeBSD-SA-26:55.elf: de letters SA, het jaartal van twee cijfers, een volgnummer voor dat jaar, en vervolgens de betreffende component. FreeBSD-SA-26:52.if_wg en FreeBSD-SA-26:50.kqueue werden beide gepubliceerd op 2026-07-29. De volledige lijst staat op de FreeBSD-adviespagina.

Een Errata Notice (errata-bericht) heeft betrekking op een probleem met de correctheid of stabiliteit dat relevant is voor een release-branch, zonder beveiligingsimpact. De opmaak is hetzelfde, maar met EN in plaats van SA: FreeBSD-EN-26:19.zfs, FreeBSD-EN-26:18.tzdata. Een update van tijdzonegegevens is hiervan het klassieke voorbeeld. Niemand kan u aanvallen met verouderde tijdzonegegevens, maar uw tijdstempels zijn onjuist totdat u de correctie doorvoert. Errata staan vermeld op de FreeBSD-erratapagina.

Beide typen berichten zijn ondertekend met de PGP-sleutel (Pretty Good Privacy) van de Security Officer en worden gearchiveerd op security.FreeBSD.org. Beide worden naar uw machine verzonden via freebsd-update.

Dit is het punt waar Linux-beheerders vaak de mist in gaan. Geen van beide typen dekt pakketten. De beveiligingspagina stelt dit duidelijk: problemen in de FreeBSD Ports Collection "worden afzonderlijk behandeld in het FreeBSD VuXML-document". Een beveiligingslek op afstand in het pakket nginx zal nooit een SA-nummer krijgen. Als u alleen de feed met beveiligingsadviezen in de gaten houdt, zult u hier nooit over vernemen.

Hoe word ik op de hoogte gehouden van een FreeBSD-beveiligingsupdate?

De mailinglijst waar u zich voor kunt aanmelden is freebsd-security-notifications. Deze lijst is gemodereerd, heeft een laag volume en bevat de beveiligingsadviezen en errata-berichten zelf. U kunt zich abonneren via lists.freebsd.org.

freebsd-announce is eveneens gemodereerd en bevat naast aankondigingen van releases ook beveiligingsadviezen; dit is een geschikte keuze als u één lijst wilt voor alle informatie. freebsd-security is de discussielijst. Deze is nuttig om te lezen, maar dit is niet de plek waar u verneemt dat u een patch moet installeren.

Al deze lijsten bevatten uitsluitend nieuws over het basissysteem. Kwetsbaarheden in pakketten worden nooit per e-mail verstuurd. U vindt deze door een commando uit te voeren.

pkg audit en de onderliggende database

VuXML, de Vulnerabilities and Exposures Markup Language, is het register van het FreeBSD-project voor beveiligingsproblemen in ports en pakketten. Elk item benoemt het getroffen pakket, de kwetsbare versiereeksen, de CVE-identificatoren (Common Vulnerabilities and Exposures) en een korte beschrijving. De volledige set is doorzoekbaar via de VuXML-index, gesorteerd op pakket, op CVE of op datum.

pkg audit is de tool die dit leest:

pkg audit -F

-F haalt een verse kopie van de database op voordat de controle wordt uitgevoerd. Gebruik dit elke keer. Zonder -F vergelijkt u met de kopie die al op de machine staat; deze kan maanden oud zijn, waardoor een schoon resultaat niets betekent. Het commando vergelijkt elke geïnstalleerde pakketversie met elk VuXML-item, print elke overeenkomst met de bijbehorende CVE-nummers en een link naar de VuXML-pagina, en eindigt met een teller die aangeeft hoeveel problemen er zijn gevonden in hoeveel geïnstalleerde pakketten.

Twee andere vlaggen uit pkg-audit(8) zijn het vermelden waard. pkg audit -r "print ook pakketten die afhankelijk zijn van kwetsbare pakketten en daardoor mogelijk ook kwetsbaar zijn"; zo leert u dat een kwetsbare bibliotheek relevant is omdat zes geïnstalleerde zaken eraan gekoppeld zijn. pkg audit -R print hetzelfde resultaat als JSON of een ander machineformaat, wat u kunt invoeren in een monitoring-check.

Het pakket pkg installeert een periodiek script op /usr/local/etc/periodic/security/410.pkg-audit. Dit draait als onderdeel van de dagelijkse beveiligingscontrole en mailt het resultaat naar root. Bevestig dat dit is ingeschakeld met een regel in /etc/periodic.conf:

daily_status_security_pkgaudit_enable="YES"

Die dagelijkse mail is het dichtst dat FreeBSD bij de gewoonte van unattended-upgrades op Ubuntu komt, en het verschil is precies het punt: unattended-upgrades installeert de fix terwijl u slaapt, en pkg audit vertelt u alleen dat een fix nodig is. pkg audit rapporteert. Het voert nooit patches uit. Niets op een standaard FreeBSD-systeem installeert een beveiligingsupdate zonder uw tussenkomst.

Een kwetsbaar pakket herstellen

pkg update
pkg upgrade

Er bestaat geen repository-sectie in FreeBSD die uitsluitend voor beveiligingsupdates dient. Ubuntu kan pakketten uitsluitend uit noble-security ophalen en alle overige pakketten ongewijzigd laten. FreeBSD heeft geen equivalent hiervan; het herstellen van één kwetsbaar pakket betekent daarom dat u de versie installeert die de repository op dat moment aanbiedt, inclusief alle bijbehorende afhankelijkheden die daarmee zijn bijgewerkt. Plan het patchen van pakketten als een gerichte wijziging en niet als een achtergrondtaak.

De repository-branch die u gebruikt, bepaalt hoe snel een fix beschikbaar is. De standaardinstelling is de quarterly-branch, die volgens het handboek een "voorspelbaardere en stabielere ervaring" biedt door enkel updates toe te staan die geen nieuwe functies bevatten. De latest-branch bevat de nieuwste versie van alle software. Wanneer pkg audit -F een pakket als kwetsbaar markeert en pkg upgrade aangeeft dat er geen actie vereist is, betekent dit dat de fix nog niet in uw branch is opgenomen. Dit is de oorzaak van de verwarring.

Om een machine naar de latest-branch te verplaatsen, kopieert u het repository-bestand dat bij het systeem wordt geleverd en bewerkt u de kopie:

mkdir -p /usr/local/etc/pkg/repos
cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf

Wijzig quarterly naar latest in de url-regel van de kopie en voer vervolgens pkg update -f uit om de nieuwe catalogus op te halen. Kopieer het bestand in plaats van de repositorynaam uit het hoofd te typen: de naam in /etc/pkg/FreeBSD.conf is de naam die uw systeem daadwerkelijk gebruikt, en een bestand onder /usr/local/etc/pkg/repos overschrijft alleen een repository waarvan de naam exact overeenkomt.

Basissysteempatches toepassen

freebsd-update fetch
freebsd-update install

fetch downloadt patches voor uw huidige release en toont de lijst met bestanden die worden gewijzigd. Als er geen actie vereist is, wordt No updates needed to update system to 15.1-RELEASE-p3. getoond en wordt het programma afgesloten. Als er wel wijzigingen zijn, krijgt u de instructie om het installatiecommando uit te voeren. Er wordt niets toegepast totdat u freebsd-update install uitvoert, dus fetch is op elk moment veilig te gebruiken.

freebsd-update(8) biedt binaire updates voor ALPHA-, BETA-, RC- en RELEASE-versies, maar niet voor PRERELEASE, STABLE of CURRENT. Als u stable/15 volgt, bouwt u vanuit de broncode en is dit hulpmiddel niet voor u van toepassing.

Automatiseer het downloaden en houd de installatie handmatig. De regel uit het handboek voor /etc/crontab:

@daily                                  root    freebsd-update cron

freebsd-update cron wacht een willekeurige tijd tussen 1 en 3600 seconden, downloadt vervolgens updates op exact dezelfde wijze als fetch en stuurt een e-mail naar root wanneer er updates klaarstaan. De willekeurige wachttijd is bedoeld om te voorkomen dat alle FreeBSD-machines op het internet de update-mirrors op exact hetzelfde moment belasten.

Twee zaken in de uitvoer zorgen vaak voor verwarring. src component not installed, skipped is normaal op een server zonder source tree en is geen foutmelding. De set componenten wordt beheerd door een Components-regel in /etc/freebsd-update.conf, waarbij de keuzes src, world en kernel zijn.

Als een installatie mislukt, verwijdert freebsd-update rollback de laatst geïnstalleerde updates. Bij een ZFS-root kunt u beter eerst een boot environment aanmaken:

bectl create pre-patch
freebsd-update fetch install

Als het gepatchte systeem niet opstart, selecteert u de oude boot environment in het loader-menu en bent u terug bij de oude situatie. Deze uitwijkmogelijkheid is een van de praktische redenen voor het gebruik van ZFS als root-bestandssysteem, en het kost vrijwel geen schijfruimte totdat de twee omgevingen van elkaar gaan verschillen.

Wordt mijn FreeBSD-release nog ondersteund?

Elke release wordt ondersteund gedurende een vastgesteld tijdsbestek, gepubliceerd als een branch-tabel op de beveiligingspagina. Per augustus 2026 ziet die tabel er als volgt uit:

  • releng/15.1, oftewel 15.1-RELEASE, tot 31 maart 2027
  • releng/15.0, oftewel 15.0-RELEASE, tot 30 september 2026
  • releng/14.4, oftewel 14.4-RELEASE, tot 31 december 2026
  • stable/15 tot 31 december 2029
  • stable/14 tot 30 november 2028

Point-releases krijgen korte ondersteuningsperiodes. 15.0-RELEASE verloopt ongeveer zeven weken nadat dit bericht is geschreven, omdat 15.1 is uitgebracht en daarmee de klok is gaan tikken. De stable-branches gaan jaren mee; dit zijn broncode-branches die freebsd-update niet aanbiedt.

Controleer uw eigen versie met freebsd-version -u en vergelijk deze met de tabel. freebsd-update waarschuwt u eveneens. Naarmate de datum nadert, geeft fetch het volgende weer:

WARNING: FreeBSD 15.0-RELEASE is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.

Zodra de datum is verstreken, verandert de waarschuwing in WARNING: FreeBSD 15.0-RELEASE HAS PASSED ITS END-OF-LIFE DATE. Een niet-ondersteunde release blijft werken. U ontvangt echter geen beveiligingsadviezen meer, wat betekent dat de volgende kwetsbaarheid in de basisinstallatie voor uw eigen rekening komt.

Upgraden naar een volgende release verloopt via freebsd-update -r 15.1-RELEASE upgrade, gevolgd door freebsd-update install, een herstart, nogmaals freebsd-update install, daarna pkg-static upgrade -f om alle pakketten opnieuw te installeren tegen de nieuwe bibliotheken, en tot slot een freebsd-update install. Het handboek vermeldt dat er mogelijk slechts twee installatiefasen zijn in plaats van drie, afhankelijk van of er versienummers van bibliotheken zijn gewijzigd. Plan een onderhoudsvenster in en lees de FreeBSD 15 server setup guide voordat u begint.

Herstarten, of volstaat een herstart van de service?

FreeBSD beantwoordt dit met één vergelijking:

freebsd-version -k
uname -r

freebsd-version -k is de kernel op de schijf. uname -r is de kernel in het geheugen. Verschillende strings betekenen dat er een nieuwe kernel is geïnstalleerd en dat u deze niet gebruikt; herstart daarom het systeem. Overeenkomende strings betekenen dat de patch de kernel niet heeft gewijzigd en een herstart geen nut heeft.

Voor een patch in de userland, herstart alles wat de gepatchte code gebruikt. Een correctie in de base OpenSSL in /usr/lib heeft geen effect op een sshd die drie weken geleden is gestart en nog steeds de oude bibliotheek in zijn adresruimte heeft geladen. Het bestand op de schijf is nieuw. Het draaiende proces niet.

service sshd restart

Dezelfde regel geldt voor pakketten. pkg upgrade vervangt het binaire bestand op de schijf terwijl het draaiende proces het oude bestand openhoudt, dus service nginx restart is de stap die de correctie effectief maakt.

Het basissysteem heeft geen equivalent van needrestart van Debian, dus niets geeft u een melding en er wordt geen lijst bijgehouden. Houd zelf bij welke services welke gepatchte bibliotheek koppelen, of herstart na elke patch die basisbibliotheken wijzigt. Op een server waarvan de configuratie in versiebeheer staat, is een herstart een routinehandeling, en dit is aanzienlijk goedkoper dan in de veronderstelling verkeren dat u gepatcht bent terwijl dat niet zo is.

Het patchen van een machine die jails draait

Een jail deelt de kernel van de host. Een kernel-advisory is daarom een probleem van de host en elke jail op de machine erft dit. Patch de host en voer een reboot uit; de kernel-kant is dan voor alle jails afgehandeld. De userland binnen elke jail is een afzonderlijke installatie met een eigen patchniveau, en freebsd-version -j <jail> rapporteert dit vanaf de host. Pakketten binnen een jail zijn eveneens gescheiden, en pkg -j <jail> audit -F voert een audit op deze pakketten uit zonder dat u de jail hoeft te betreden. Dit onderscheid tussen een gedeelde kernel en een gescheiden userland is hetzelfde structurele verschil dat bepaalt hoe jails zich verhouden tot Docker containers.

De Ubuntu-vertaling

Elke FreeBSD-gewoonte heeft een tegenhanger, waardoor u de routine in beide richtingen kunt toepassen.

  • Patches voor het basissysteem: freebsd-update fetch en vervolgens freebsd-update install. Op Ubuntu gebruikt u apt update && apt upgrade, dat het basissysteem en alle overige onderdelen in één keer bijwerkt.
  • Software van derden: pkg update && pkg upgrade op FreeBSD. Op Ubuntu gebruikt u wederom apt.
  • Controle op bekende kwetsbaarheden: pkg audit -F op FreeBSD. Op Ubuntu 24.04 is het meest vergelijkbare commando pro security-status, dat beveiligingsupdates toont voor geïnstalleerde pakketten, inclusief inhoud van Expanded Security Maintenance.
  • Automatische installatie: unattended-upgrades op Ubuntu past beveiligingsupdates automatisch voor u toe. FreeBSD biedt geen equivalente functie; freebsd-update cron downloadt en mailt updates, terwijl u de installatie handmatig uitvoert.
  • Adviesfeed: freebsd-security-notifications bevat FreeBSD-SA en FreeBSD-EN items. ubuntu-security-announce bevat Ubuntu Security Notices.
  • Kwetsbaarhedendatabase: VuXML voor FreeBSD-ports en -pakketten. De Ubuntu CVE tracker voor Ubuntu-pakketten.
  • Herstartcontrole: freebsd-version -k tegenover uname -r op FreeBSD. De aanwezigheid van /var/run/reboot-required op Ubuntu.
  • Ondersteuningsperiode: de branch-tabel op de FreeBSD-beveiligingspagina. Het releaseschema en pro security-status op Ubuntu.

De onderliggende routine is op beide systemen identiek: abonneer u op de feed, voer de audit volgens een schema uit en bepaal vervolgens wat u installeert en wanneer u herstart. FreeBSD dwingt u enkel om de tweede helft expliciet uit te voeren, omdat het systeem dit niet voor u doet. De bredere vergelijking tussen Linux en FreeBSD als serverplatform behandelt wat er nog meer verandert wanneer u een workload tussen deze systemen verplaatst.

FAQ

Patcht freebsd-update ook mijn pakketten?

Nee. freebsd-update heeft alleen betrekking op het basissysteem, oftewel de kernel en de userland die bij de release werden geleverd. Software die via /usr/local is geïnstalleerd, is afkomstig uit pakketten en wordt bijgewerkt met pkg upgrade. Voer pkg audit -F uit om te achterhalen welke geïnstalleerde pakketten bekende kwetsbaarheden bevatten, aangezien beveiligingsadviezen voor het basissysteem deze nooit vermelden en de beveiligingsmailinglijsten ze niet aankondigen.

Hoe weet ik of een FreeBSD-update een herstart vereist?

Vergelijk freebsd-version -k met uname -r. Het eerste commando toont de kernel die op de schijf staat, inclusief een exemplaar dat zojuist is geschreven maar nog niet is opgestart. Het tweede commando toont de kernel die momenteel actief is. Verschillende strings betekenen dat u het systeem moet herstarten. Overeenkomende strings betekenen dat de patch alleen de userland betrof; herstart in dat geval de betreffende services, bijvoorbeeld met service sshd restart, omdat een draaiend proces de oude bibliotheek in het geheugen houdt totdat het opnieuw wordt opgestart.

Wat is het verschil tussen een Security Advisory en een Errata Notice?

Een Security Advisory, zoals FreeBSD-SA-26:55.elf, verhelpt een beveiligingslek in het basissysteem. Een Errata Notice, zoals FreeBSD-EN-26:18.tzdata, lost een correctie- of stabiliteitsprobleem op dat geen beveiligingsimpact heeft, zoals verouderde tijdzonegegevens. Beide gebruiken het patroon jaar, dubbele punt, volgnummer, component. Beide worden ondertekend door de Security Officer en gedistribueerd via freebsd-update, en geen van beide heeft betrekking op software die via ports of pakketten is geïnstalleerd.

Is er een equivalent van unattended-upgrades voor FreeBSD?

Niet in het basissysteem. freebsd-update cron downloadt openstaande patches voor het basissysteem en mailt deze naar root, maar installeert ze nooit. Het periodieke script dat pkg installeert, voert dagelijks pkg audit uit en mailt het resultaat, maar voert zelf geen upgrades uit. Onbeheerde installatie is iets wat u zelf moet inrichten met een cron-job. Omdat een pakket-upgrade in FreeBSD de nieuwste versie ophaalt in plaats van alleen een backport voor beveiliging, lezen de meeste beheerders de mail en voeren ze de installatie handmatig uit.

Hoe controleer ik of mijn FreeBSD-release nog wordt ondersteund?

Voer freebsd-version -u uit voor uw userland-versie en vergelijk deze met de tabel met ondersteunde branches op de FreeBSD-beveiligingspagina. Point-releases hebben een korte levensduur: per augustus 2026 eindigt de ondersteuning voor 15.0-RELEASE op 30 september 2026, terwijl 15.1-RELEASE loopt tot 31 maart 2027. freebsd-update fetch waarschuwt u naarmate de datum nadert, en zodra de datum is verstreken, verschijnt er een melding dat de release de END-OF-LIFE DATE heeft bereikt. Vanaf dat moment zijn er geen verdere adviezen meer op uw systeem van toepassing.

#freebsd#security#patching#advisories#pkg