Monitor ’n IPsec-tonnelkoppelvlak: wat om te lees
’n XFRM-koppelvlak gee tellers en ’n roetegrens, maar gesondheid vereis die SA-toestand, die gekose roete en ’n toepassingstoets saam gelees.
’n Roetegebaseerde IPsec-ontwerp installeer ’n virtuele koppelvlak, en daardie koppelvlak gee monitering ’n konkrete objek: iets met ’n naam, tellers en ’n roete wat daaraan gekoppel is. Dit is nie op sigself ’n gesondheidsein nie. Die koppelvlak kan bestaan terwyl geen bruikbare assosiasie geïnstalleer is nie, en ’n assosiasie kan gesond wees terwyl geen roete die interessante verkeer daarheen stuur nie. Dit is om vier toestande saam te lees wat ’n pakketteller in ’n diagnose verander.
Werk dit in volgorde deur en stop by die eerste een wat misluk.
Wat die koppelvlak by die prentjie voeg
Met ’n beleidsgebaseerde ontwerp woon die seleksie in die IPsec-beleidstabel en die kern besluit wat beskerm word op grond van verkeersselekteerders. ’n Roetegebaseerde ontwerp voeg ’n koppelvlak en ’n roete by, sodat tcpdump en koppelvlaktellers een grens sien in plaas van ’n stel selekteerders. Dit is ’n werklike wins vir diagnose en vir roeteringsprotokolle wat ’n koppelvlak nodig het om oor te peer.
Die wins is administratief, nie kriptografies nie. Die koppelvlak rapporteer die verkeer wat dit dra en sê niks oor of die eweknie se beskerming tans bruikbaar is nie.
Lees die vier toestande voordat jy die tonnel blameer
Begin met die koppelvlak en die roete, dan die assosiasie, dan die toepassing. Elkeen het sy eie opdrag en sy eie foutkenmerk. ’n Skoon resultaat op een laag is nie ’n skoon resultaat op die volgende nie. Voer al vier uit voordat jy ’n gevolgtrekking maak. Een groen lyn beslis selde iets.
ip -s link show xfrm0 ip route get 10.20.30.40 ip xfrm state ip xfrm policy swanctl --list-sas tcpdump -ni xfrm0 -c 20 host 10.20.30.40
’n Koppelvlak met ’n stygende teller maar sonder ’n ooreenstemmende toestandinskrywing beskryf verkeer wat ’n pad binnegaan waar niks dit beskerm nie, wat erger is as ’n tonnel wat bloot af is. ’n Toestandinskrywing sonder ’n roete wat die koppelvlak kies, beteken die kriptografie is gereed en ongebruik.
Die toepassingstoets kom laaste en doelbewus: ’n suksesvolle ping na die oorkant van die tonnel bewys nie dat die diens daarager verbindings aanvaar nie.
Vergelyk binnetellers met buitetellers
Tellers op die tonnelkoppelvlak meet binneverkere; tellers en opnames op die fisieke koppelvlak wys die ingekapselde uitruiling. Die twee sal nie een-tot-een ooreenstem nie, want inkapseling voeg koptekste by, herversendings dupliseer sommige pakkette en die implementering se boekhouding volg sy eie reëls. Verwag ’n verhouding, nie gelykheid nie.
Die plasing van die opname bepaal ook watter private data jy versamel, dus gebruik smal filters en ’n onskadelike toetsadres eerder as ’n volledige opname van produksieverkeer.
As die binnegetalle styg en die buites nie, is die ontbrekende stap gewoonlik die roete of die beleid wat pakkette in die tonnel instuur, nie die tonnel self nie.
Volg dit deur hernuwing van sleutels en oorskakeling
Let op ’n hernuwing van sleutels, ’n dooie-eweknie-opsporing en ’n skakel-oorskakeling terwyl jy dieselfde vier toestande dophou. ’n Koppelvlak kan aanwesig bly deur ’n hernuwing wat nooit voltooi nie, en ’n oorskakeling kan ’n toestandinskrywing laat wat na ’n eweknie-adres wys wat nie meer bereikbaar is nie.
Alarmeer op die dienspad waarvan jy werklik afhanklik is, met die assosiasietoestand as konteks, eerder as op ’n enkele op- of af-vlag. Hou die koppelvlaknaam, die eweknie-adres en die roete in die alarmvrag, sodat die reageerder dit nie hoef te herkonstrueer nie.
strongSwan dokumenteer sy eie XFRM-koppelvlakmodel, en ander platforms noem en implementeer die ekwivalente objek anders. Lees die roetegebaseerde vergelyking vir die toestel voor jou voordat jy aannames van ’n ander implementering oordra. ’n Moniteringsjabloon wat by een verskaffer se tellers pas, sal by ’n ander stilweg mislei.