Hopp til innhold

Herdet SSH til 24 kontrollerte direktiver med validering i tre trinn — kandidatfilen, den sammensatte konfigurasjonen og så daemonens egen tilbakelesing — etter at tilbakelesingen avslørte at den kjørende serveren i det stille overstyrte to av de tjuefire.

24 SSH‑direktiver kontrollert, så lest tilbake fra daemonen

Situasjon. SSH er den eneste interaktive veien inn til selskapets vert, og konfigurasjonen skrives av en automatiseringsrolle som i månedsvis hadde kjørt uten feil. En tilgangsrapport i september 2026 leste daemonens egne effektive innstillinger og fant at to av dem ikke stemte med det rollen hadde skrevet ved hver eneste kjøring.

Oppgave. Herdingen måtte bli noe daemonen bekrefter, ikke noe repoet påstår, fordi avviket mellom de to allerede hadde stått åpent i månedsvis uten at noen la merke til det.

Handling. Årsaken var rekkefølgen i konfigurasjonen. Operativsystemet leverer sine egne standardverdier ukommentert, over stedet der en drop‑in‑fil havner, og for de to innstillingene det gjaldt, er det den første forekomsten som vinner. Løsningen var et filnavnprefiks som sorteres foran leverandørens, en endring på ett eneste tegn og nøyaktig den typen feil som blir stående fordi ingen kommer på å se etter den. Det som ble bygget rundt den, betyr mer: validering i tre trinn ved hver kjøring. Kandidatfilen syntakssjekkes før den installeres, slik at en ugyldig konfigurasjon aldri når verten. Den sammensatte konfigurasjonen sjekkes etter installasjonen. Deretter leses daemonens egne effektive verdier tilbake, og 24 direktiver kontrolleres mot dem, slik at en innstilling som er skrevet, men overstyrt, får kjøringen til å feile. To direktiver ble bevisst utelatt, begge fordi daemonen ikke lenger implementerer dem, og å skrive dem ville bare sett grundig ut.

Resultat. Sikkerheten i SSH‑oppsettet er nå daemonens svar og ikke repoets påstand, og forskjellen er ikke teoretisk — den var allerede to innstillinger bred da sjekken ble skrevet. En kjøring som ikke kan se om et sikkerhetstiltak faktisk trådte i kraft, har ikke verifisert det, og et søk med grep etter et direktiv beviser bare at det ble skrevet.

Ett stykke av en lengre oversikt — og den ligger i sin helhet her.

Hver oppføring er skrevet på samme måte: situasjonen, oppgaven, hva vi gjorde, og hva som endret seg.

Se hele oversikten