Beheer instrumenten uitgebreid (2/2)

Van Serverslagveld tot Serene Zekerheid: Mijn Route naar Vakantie met Volledige Controle

Eerlijk is eerlijk: het pad van digitale veiligheid en beheer is zelden een rechte lijn. Na mijn vorige blog over de overstap van de sloopkogel naar het scalpel met Cockpit en firewalld voor PCPal en Zutphen Online, dacht ik dat ik de wind in de zeilen had. En ja, de basis was gelegd. Maar zoals vaak in mijn wereld, dienden de volgende uitdagingen zich alweer aan, vooral toen ik de oplossing wilde repliceren. En laten we zeggen, de tweede keer is niet altijd de charme. Soms is het gewoon… meer charme nodig. Of in dit geval, meer geduld en diepgang in de diagnostiek.

Mijn missie was duidelijk: Cockpit moest niet alleen op onze main webproxy (die ik eerder behandelde) draaien, maar ook op de dedicated machine voor Alledin Support en de virtual host machine die onze shared website ruimtes huisvest. Dit alles met het oog op mijn aankomende vakantie, waar ik met een gerust hart weg wilde kunnen, wetende dat ik op afstand volledige controle had, maar dan wel zó dichtgetimmerd dat niemand anders erbij kon. Zelfcompassie betekent ook zorgen dat je hoofd leeg is als je rust nodig hebt, en daar hoort piekeren over serverbeveiliging niet bij.

De replicatie-uitdaging: “Authenticatie mislukt” en de Tijd-Duivel

Op de tweede server, de Alledin Support-machine, liep ik tegen een muur: “Authenticatie mislukt.” Keer op keer. Mijn plan was om met 2FA in te loggen, gevolgd door mijn reguliere wachtwoord. En, eerlijk gezegd, ik zette me schrap voor weer een diepe duik in PAM-configuraties en SSH-sleutels, want daar ligt de duivel vaak in de details.

Wat bleek? Een klassieke valkuil van 2FA: tijdverschuiving. De servers hadden een minimaal, maar significant tijdverschil. Twee servers, zogenaamd “hetzelfde geconfigureerd”, maar met een paar seconden afwijking die fataal bleken voor de Time-based One-Time Passwords (TOTP). Na het synchroniseren van de serverklokken met NTP en een kleine correctie in mijn authenticator-app, was de magie daar. De authenticatie vloog erdoorheen. Het leert me keer op keer: de meest complexe problemen hebben soms de simpelste (maar diep verborgen) oorzaken. Mijn referentiekader verschoof weer een stukje; soms is het niet de geavanceerde configuratie, maar de fundamentele synchronisatie die roet in het eten gooit.

De derde server: De systemd-networkd-wait-online Anker

De echte hoofdpijn begon pas bij de derde server, de virtual host machine. Alles leek goed geconfigureerd, Netplan stond op renderer: NetworkManager – precies zoals ik op de eerste server had gedaan om de “onbeheerde interfaces” op te lossen. Maar bij elke herstart bleef de server hangen op systemd-networkd-wait-online.service. Een minuut, twee minuten… geen beweging. Alsof het netwerk de boot vastketende.

De boosdoener was duidelijk: Hoewel ik NetworkManager als de “renderer” had ingesteld, bleef systemd-networkd-wait-online.service hardnekkig wachten op bevestiging van systemd-networkd zelf. Het was een klassieke patstelling: de ene wacht op de ander, die echter de controle al had overgedragen. De oplossing was brutaal doch effectief: simpelweg systemd-networkd-wait-online.service permanent uitschakelen. Een commando via de console – wat gelukkig mogelijk was op een VM – en de server bootte weer door als een zonnetje. NetworkManager kon nu ongestoord zijn werk doen, zonder een spook van een service die op een non-existent signaal wachtte.

Het Resultaat: Gerust op Vakantie

Nu, na deze kleine odyssee, is de situatie precies zoals ik het wilde:

  • PCPal’s webproxy, de dedicated machine voor Alledin Support, en de virtual host machine voor onze shared websites draaien allemaal met Cockpit.
  • Ik heb volledige console-achtige toegang op afstand via de webinterface, overal ter wereld.
  • En het allerbelangrijkste: alles is dichtgetimmerd met 2FA. Geen enkel wachtwoord alleen is nog voldoende. Zelfs als iemand (theoretisch) mijn wachtwoord zou achterhalen, is de eenmalige, tijdgebaseerde token van mijn authenticator-app een onneembare barrière.
  • De noodzaak om hele continenten te blokkeren via de IGD (een rigide, grove methode) is nu verleden tijd. Ik kan nu specifieke IP-adressen of subnetten blokkeren via firewalld’s Rich Rules, direct vanuit Cockpit of via de terminal, mocht dat nodig zijn. Fijnmazig, efficiënt en precies.

De eerlijkheid gebiedt me te zeggen dat dit soort projecten je soms tot wanhoop drijven. Maar de voldoening als alles dan eindelijk werkt, en je het systeem hebt getemd, is onbetaalbaar. Ik kan nu met een gerust hart op vakantie, wetende dat mijn digitale fort staat als een huis, beveiligd met meerdere lagen, en toch volledig onder mijn controle, zelfs op afstand. Dat is pas vrijheid en sereniteit. En dat is, uiteindelijk, waar het allemaal om draait.


Categories: AI, Blogs, Tech

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *