OpenVPN seier tilkopla og ingen trafikk rører seg, ei setning som dekkjer minst fem urelaterte feil. Å redigere brannmurreglar før du veit kva lag som sviktar multipliserer det ukjende og lèt neste ingeniør sitje att med eit rot. Arbeid i staden utover frå prosessen, fordi kvart steg nedanfor anten ryddar eitt stadium eller snevrar inn kvar pakken døyr. Rekkjefølgja betyr noko her: eit opptak teke før du veit kva adresse som er bunden vil prova noko, berre ikkje det du treng.

Sokkelen er anten bunden eller ikkje

Ein teneste som rapporterer aktiv kan framleis vere bunden til ei adresse eller ein transport du aldri meinte. Spør sokkelen sjølv: ss -lunp listar UDP-lyttarar og ss -ltnp listar TCP, og kolonnen som er verdt å lese er den lokale adressa, ikkje tilstanden.

Eit tomt svar tyder vanlegvis ein av tre ting: prosessen avslutta etter start, han lasta ei anna konfigurasjonsfil, eller han lyttar på ei anna adresse enn den som blir ringt.

ss -lunp | grep 1194
ss -ltnp | grep 1194

Eit local-direktiv festar lyttaren til éi adresse, så ein klient som siktar ein annan stad på same verten blir avvist medan tenesta utanfrå framleis ser sunn ut. Eit instansnamn kan også peike på ei fil du aldri har redigert, noko som skjer på vertar som køyrer to profilar side om side.

Fang den ytre pakken, ikkje tunnelen

Filtrer på det fysiske grensesnittet og den verkelege porten, med ditt eige grensesnitt sett inn: tcpdump -ni eth0 udp port 1194. Utgåande pakkar utan noko som kjem tilbake peikar på det som sit ovanfor: leverandørfiltrering, ein NAT-eining eller ei ekstern adresse som ikkje er den du trur. Stillheit i begge retningar peikar på klientrutting eller ein lokal brannmur. Svar som kjem utan tunnel-framdrift peikar på kontrollkanalen, altså eit nøkkel- eller chifferavvik, ikkje på filtrering.

Fang begge retningar og hald fila kort. Eit langt opptak grev ned dei interessante tre sekunda, og svaret ligg nesten alltid i den første utvekslinga.

Teljarar først, spor berre når dei lyg

Byrja med teljarane, fordi dei ikkje kostar noko. Anten nft list ruleset eller iptables -L -n -v svarar på det einaste spørsmålet som betyr noko her: trefte regelen? Rekkjefølgja avgjer resultatet, fordi det første treffet vinn, difor lèt eit breitt DROP før ein seinare ACCEPT den ACCEPT-en vere daud, og difor reparerer det sjeldan noko å leggje til ein regel.

Eigarskap snublar folk også. Kjernen tilskriv lokalt genererte pakkar prosessen som opna sokkelen, og OpenVPN køyrer vanlegvis som root, så ein regel bunden til ein vanleg brukar-ID ser aldri trafikken til tunnelen sjølv. Sjekk den eigde UID-en før du bestemmer at regelen er feil.

Berre når teljarane blir tvitydige er ein logg verdt støyen, og då berre for ei smal skive: ein iptables-regel som hastigheitsavgrensar og set prefiks på logglinjene sine, eller ein nftables-regel med meta nftrace set 1 medan nft monitor trace køyrer. Eit spor namngir kjeda og regelen som godtok eller slapp pakken. Fjern begge etterpå og hald nyttelastlogging utanfor.

Sjekk transporten også. Ei brannmurteneste som er avgrensa til TCP seier ingenting om ein UDP-lyttar på det nummeret, så ein regel som blir lesen rett kan framleis sleppe kvar pakke.

Rutting og vegen tilbake

Ein godteken pakke som likevel forsvinn treng at destinasjonsvegen blir undersøkt. ip route get rapporterer ruta som er vald for éi adresse, og omvendt veg-filtrering kan sleppe eit svar som kjem over eit grensesnitt som hovudtabellen aldri ville velje. Symtomet ser nøyaktig ut som ein brannmur-slepp, difor kjem denne sjekken før ein annan NAT-regel.

På ein gateway, undersøk videresending og forward-kjeda i staden for input-kjeda. Stadfest deretter at den fjerne sida veit korleis ho når kjeldeadressa, fordi ein fungerande utgåande veg utan noko som kjem tilbake er stillheit i begge tilfelle.

Kva notatet må seie

For kvar endring, noter stadiet du testa, beviset du las og teljarverdien på begge sider av det. Det notatet er det som gjer "det virkar no" overlevingsdyktig ved neste gjennomgang.

To snøgge vegar held notatet ærleg. Ein pakke som aldri forlét verten kan ikkje ha blitt sleppt av ein regel ein annan stad, uansett kor overtydande konfigurasjonen på den fjerne sida ser ut. Ein pakke som gjekk ut og kom tilbake flyttar spørsmålet over nettverkslaget, der teljarane til brannmuren ikkje har meir å fortelje deg.

Relaterte artiklar