VPN-postuurtoets blokkeer nie? Volg eers die verslag
Jou eindpuntagent rapporteer gesond, tog open die interne app steeds. Stap deur die versamelaar, die uitspraak en die blok, en bewys dan die weiering met een versoek.
As 'n skootrekenaar waarvan die antivirus-handtekeninge weke gelede opgehou opdateer het, steeds jou interne app kan oopmaak, is die beleidsdokument selde die ding wat verkeerd is. Drie afsonderlike stelsels moet saamstem voordat toegang geweier word: iets meet die eindpunt, iets omskep daardie meting in 'n toestaan- of weier-uitspraak, en iets laat die verkeer werklik val. Wanneer 'n nie-voldoenende toestel tog inkom, ontbreek presies een van daardie skakels of vertrou dit bewyse wat dit nie moet nie. Die kontroles hieronder loop in daardie volgorde, en elkeen het 'n stoppunt.
Die blok is die laaste stap, nie die eerste nie
Verifikasie en postuur beantwoord verskillende vrae. 'n Suksesvolle aanmelding bewys dat 'n geloofsbrief aangebied is; dit sê niks oor die sagteware wat op die masjien loop wat dit aangebied het nie. Daardie gaping is hoekom 'n gekopieerde kliëntprofiel 'n gesonde-voorkoms sessie na 'n ongesonde gasheer kan dra.
Werk aan eindpunt-nakoming het reeds 'n woordeskat vir die ketting. Die informatiewe NEA-verwysingsmodel in RFC 5209 verdeel die werk in 'n versamelaar, 'n assesseringstap en 'n handhawingspunt, en dit sê duidelik dat 'n kliënt wat lieg oor sy eie toestand buite die model val. Daardie voorbehoud is belangriker as die diagram: 'n vertroude platformmodule maak nie 'n selfgerapporteerde meting in 'n feit nie.
Hou die versamelaar eerlik oor omvang. Dit moet die eienskappe rapporteer wat jou beleid noem, op die toestel wat toegang vra, en min anders. 'n Inventarisagent wat elke geïnstalleerde pakket lys, is 'n ander instrument as 'n postuurversamelaar, en die verskil is beide 'n bewaringsprobleem en 'n akkuraatheidsprobleem. As die verslag nie aan een toestelidentiteit gekoppel kan word nie, raai die assesseerder oor watter masjien hy pas goedgekeur het.
'n Paneelbord wat 'n rooi status wys, is nie 'n beheer nie. Vra wat 'n geweierde gebruiker steeds kan bereik: die wiki, die lêerdeling, die databasispoort? Herstel benodig een smal oppervlak, en alles anders hoort agter die blok.
Lees die verslag voordat jy die reël lees
Begin by die bron eerder as by die kliënt se groen regmerkie. Op Windows kom die plaaslike meting van Defender of van watter produk ook al by die Security Center geregistreer het, en beide is leesbaar sonder 'n verskafferkonsole:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Die tweede opdrag gee 'n heelgetal terug genaamd productState. Die bisse daarvan is losweg gedokumenteer en verskaffers pak die aktiverings- en opgedateerde vlae anders in, so bevestig dit eerder as om dit te ontleed. Derdeparty-pakkette laat ook die Security Center-inskrywing agter ná deïnstallering, wat oor sagteware rapporteer wat nie meer op skyf is nie.
Ouderdom is die veld wat mense oorslaan. 'n Handtekening-tydstempel beteken net iets teen die klok van die masjien wat die assessering doen, so skakel dit om na 'n interval eerder as om dit met die oog te skat:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Nou het die beleid een nommer om te lees. As jou reël 72 uur sê, is dit die nommer wat dit gebruik, en 'n skootrekenaar wat 'n week lank slaap, faal sonder dat iemand 'n etiket interpreteer. Teken die drempel langs die opdrag aan, want die twee dryf weg wanneer die eindpuntinstrument vervang word.
Verander elke eindpunttoestand in 'n geskrewe uitspraak
Die meeste geskille oor postuur is eintlik geskille oor die onbekende ry. Besluit dit voor die eerste voorval, in 'n tabel wat die bewyse, die uitspraak en die eienaar noem, sodat niemand by die poortkonsole improviseer nie.
| Evidence the assessor has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents that fail open under load |
Die onderste ry is waar produkte verskil. Sommige poorte weier die verbinding en verduidelik waarom; ander laat die tonnel op en pas 'n beperkte beleid toe; 'n paar val terug op die laas bekende goeie verslag. Net die eerste twee is verdedigbaar, en dit is die moeite werd om te toets watter een joune doen.
Hou identiteit en toestemming ook in hul eie bane. 'n Skootrekenaar wat elke postuurtoets slaag, het steeds die regte menslike magtiging vir die toepassing nodig, en 'n toestelsertifikaat bewys besit van 'n sleutel eerder as die toestand van die lêerstelsel. Om die drie in een booleaanse waarde saam te pers, is hoe 'n helpdesk-rekening blywende toegang tot produksie kry.
Toets die handhawingspad met 'n versoek, nie 'n paneelbord nie
Handhawing is 'n eienskap van 'n versoek, so meet dit met een. Sit 'n nie-voldoenende masjien op die tonnel en maak die oproep wat 'n regte gebruiker sou maak:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
'n 200 van 'n toestel wat geblokkeer moet word, beteken die besluit het nooit die datapad bereik nie. Twee gewone oorsake: die beleid is aan 'n groep gekoppel waarby die toetsrekening nooit aangesluit het nie, of die toepassing is bereikbaar oor 'n roete wat die VPN nie besit nie.
Toets eers die roeteveronderstelling. As die interne naam na 'n adres oplos wat die kliënt reeds oor die plaaslike LAN bereik, is die tonnel irrelevant en sal geen beleid geld nie. Vergelyk daardie adres met die roete wat die poort stoot. Op OpenVPN woon per-kliënt-beleid in lêers wat op algemene naam gesleutel is, so dit is maklik om te inspekteer:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
'n Lêer wat disable bevat, ontkoppel daardie kliënt heeltemal, terwyl 'n push "route ..."-reël vernou wat dit kan bereik. Beide is handhawing, en beide is sigbaar vir elkeen wat die verslag ontfout.
Toets die vier gevalle op een skoonmaakrekening
Die finale toets is 'n klein matriks, nie 'n gelukkige pad nie. Dryf een toetsrekening deur vier toestande: huidig, vervalde handtekening, beskerming gedeaktiveer, agent nie geïnstalleer nie. Teken vir elkeen die uitspraak in die assesseringslog aan, die HTTP-status wat die app teruggee, en of die herstelbladsy gelaai het.
foreach ($case in 'current', 'stale', 'disabled', 'absent') {
Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}
Twee besonderhede is maklik om te mis. Eerste herhaling: 'n verslag wat vasgelê is terwyl die masjien gesond was, moet nie vir 'n latere sessie op dieselfde toestel aanvaar word nie, so soek na 'n tydstempel wat aan die huidige verbinding gebind is. Dan verwydering: die deïnstallering van die agent moet dieselfde weiering lewer as 'n verouderde verslag, nie 'n skoon slaag nie, en dit is die geval wat die meeste nooit getoets word nie.
Wanneer die matriks by die tabel pas, gee drie items aan wieookal die poort volgende bestuur: die opdragte, die drempel en die vier verwagte uitkomste. Daardie oorhandiging is die werklike lewering, want 'n postuurontwerp wat net in 'n beleidsdokument leef, dryf weg die eerste keer dat die eindpuntinstrument sy rapporteringsveld verander.