Lês jo VPN-loch foar’t jo it stjoere: fjild foar fjild
Stipe-lochs befetsje brûkersnammen, sertifikaatnammen, ynterne adressen en soms in kaai. Gean de fjilden by lâns, sykje nei geheimen, en stjoer dan in bewurke útlêzing.
Jo iepenje in stipe-ticket, heakje de diagnostyske eksport ta dy’t de klant makke hat, en wachtsje. It bestân befettet wierskynlik hielendal gjin blêdskiengeskiedenis, en dat is krekt wat it feilich lykje lit. It befettet wol wa’t jo binne, hokker masine jo brûkten, hokker ynterne adressen jo berikten en wannear, en soms in partikuliere kaai dy’t kopiearre is troch in klant dy’t syn konfiguraasje lochdet. It bestân trochrinne foar’t jo it stjoere duorret sa’n fiif minuten en foarkomt in permaninte iepenbaring.
Iepenje it en lês de earste fjirtich rigels
Begjin boppe-oan, dêr’t klanten meastentiids ferzje, platfoarm en konfiguraasje útstoarte. De earste rigels fertelle hoe wiidweidich it bestân is, en dat bepaalt hoefolle fan ’e rest jo dêrfan ôfwitte moatte. In standertloch en in debugloch binne ferskate artefakten mei ferskate bleatstelling.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Kontrolearje ek de grutte en foarm fan it bestân foar’t jo der eat fan lêze. In tekstbestân fan twa megabyte mei ien evenemint dat werhelle wurdt, is maklik yn te koartsjen. In binêre opname yn deselde map is hielendal in oar probleem, en it freget in oar petear mei wa’t de eksport frege hat.
Op Windows binne de ekwivalinten ien cmdlet elk, en de earste is de muoite wurdich om te draaien op elk bestân dat jo net sels makke hawwe:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
De fjilden dy’t in persoan identifisearje
Brûkersnammen ferskine op plakken dêr’t minsken se net ferwachtsje: it akkount dat brûkt wurdt foar autentikaasje, it sertifikaatûnderwerp, it profylpaad ûnder in thúsmap, en de masinenamme dy’t faak in echte namme kodearret. In loch dat it akkountfjild bewurket en it thúspaad yntakt lit, hat neat bewurke.
| Field | What it identifies | Practical treatment |
|---|---|---|
| Account or username | A person, and often an employer | Replace consistently, keep the mapping |
| Certificate subject and CN | Device or user identity | Keep the structure, replace the value |
| Home directory path | A login name, sometimes a full name | Replace the segment, not the whole path |
| Machine or hostname | A person or a physical location | Replace with a stable pseudonym |
Konsekwinsje is wichtiger as folsleinens as in stipe-ynsjenyeur ien sesje troch it bestân folgje moat. Ferfange wearden troch stabile labels ynstee fan se te wiskjen, sadat elk foarkommen fan deselde brûker noch altyd as deselde brûker lêzen wurdt. It fjild hielendal wiskje brekt de tried dy’t de ynsjenyeur nedich hat en makket it bestân net feiliger.
In tiidstimpel is ek persoanlike gegevens yn ’t gehiel. De tiden dat in akkount ferbûn wie, oer in moanne nommen, beskriuwe wurktiden en reizen. As de fraach net it folsleine berik nedich hat, koartsje it bestân dan ta it finster om it evenemint.
De fjilden dy’t in netwurk identifisearje
Einpuntadressen, ynterne rûtes en trochstjoerde opsjes beskriuwe de foarm fan in partikulier netwurk. Dat is krekt de ynformaasje dy’t in oanfaller hawwe wol, en it is meastentiids folle detaljearre oanwêzich as it ticket nedich hat.
Sykje nei de adresfamylje dy’t brûkt wurdt, net allinnich dy’t jo ferwachte hiene. In dual-stack-klant kin in IPv6-einpunt en in set IPv6-rûtes lochje dêr’t nimmen oan tocht om te bewurkjen, om’t de kontrôle allinnich nei puntearre fjouwerlingen seach.
grep -nEo '([0-9]{1,3}\.){3}[0-9]{1,3}' vpn-support.log | sort -u | head -n 40
grep -nEo '([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}' vpn-support.log | sort -u | head -n 20
De unike list is it punt. It fertelt jo hoefolle ferskillende adressen it bestân neamt, en dat is meastentiids folle minder as it fielt by it skowen. It jout jo ek in kontrôlelijst om tsjin te bewurkjen en in manier om te bewizen dat jo se allegear omfette hawwe. Tsien adressen binne in wurk fan fiif minuten, en hûndert fertelle jo dat de eksport breder is as de fraach.
Hâld de topology as de ynsjenyeur it nedich hat. It ferfangen fan it twadde en tredde okteet wylst de subnetrelaasjes bewarre bliuwe, beantwurdet de fraach sûnder it berik te publisearjen. Deselde trúk wurket foar IPv6-prefiksen. Wat de ynsjenyeur nedich hat is de foarm fan ’e flater, en de foarm oerlibbet in konsekwinte ferfanging.
Geheimen ferskûlje har yn foarmen, net yn labels
In partikuliere kaai hat it wurd “password” net by him nedich. Hy ferskynt as in blok tusken markerrigels, as in lange base64-string of as in ynline konfiguraasje-dump. Tokens ferskine as query-parameters, en legitimearrings ferskine yn URL’s dy’t in klant ferbatum lochde.
grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log
It twadde patroan is dat minsken ferjitte. In URL fan ’e foarm skema, brûker, wachtwurd, host is in folsleine legitimearring, en klanten lochje sokke URL’s as in proxy of in feed mei ynline autentikaasje konfigurearre is.
Stjoer nea it orizjinele bestân as bewiis dat jo it net bewurke hawwe. As in operator oanstiet op in ûnferoare eksport, freegje dan wêr’t er it foar nedich hat, stjoer it troch har ferifiearre stipekanaal, en wiskje dêrnei jo lokale kopy. Dat fersyk is legitime; in iepenbiere plak is dat net.
Bou de bewurke kopy en stjoer de útlêzing
Wurkje op in kopy, hâld it orizjineel op in beskerme plak, en bewurkje mei in werhelbere opdracht ynstee fan mei de hân. Ien pass oer de adrespatroanen fangt it measte dêrfan:
cp vpn-support.log vpn-support.original.log
sed -E 's/([0-9]{1,3}\.){3}[0-9]{1,3}/ADDR/g; s/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/USER@DOMAIN/g' \
vpn-support.original.log > vpn-support.redacted.log
grep -cE 'PRIVATE KEY|password|token' vpn-support.redacted.log
It definitive oantal moat nul wêze. Is it dat net, dan hat de bewurkingspass in foarm mist en moatte jo nei dy rigels sjen foar’t jo eat stjoere. Lês it bewurke bestân ek ien kear mei jo eigen eagen; in skript fangt patroanen, gjin kontekst.
Stjoer de lytste útlêzing dy’t de flater noch sjen lit. Tsien rigels om ’e flater binne meastentiids genôch, en se binne folle makliker te kontrolearjen as in bestân fan twa megabyte. Hâld dan de koppeling tusken jo labels en de echte wearden op in plak dat jo kontrolearje, want de ferfolchfraach sil it nedich hawwe.
De OpenVPN-dokumintaasje oer lochjen beskriuwt hoe’t wiidweidichheidsnivo’s feroarje wat fêstlein wurdt, wat nuttige kontekst is om te besluten hoefolle fan it bestân it probleem echt fereasket.