OpenVPN spune conectat și niciun trafic nu se mișcă, o propoziție care acoperă cel puțin cinci defecțiuni fără legătură. Editarea regulilor de firewall înainte de a ști care strat eșuează înmulțește necunoscutele și lasă următorului inginer o mizerie. Lucrați în schimb de la proces spre exterior, pentru că fiecare pas de mai jos fie curăță o etapă, fie îngustează locul unde moare pachetul. Ordinea contează aici: o captură făcută înainte de a ști care adresă este legată va dovedi ceva, doar nu ce aveți nevoie.

Socketul este fie legat, fie nu

Un serviciu care raportează activ poate fi încă legat de o adresă sau un transport pe care nu l-ați intenționat niciodată. Întrebați socketul însuși: ss -lunp listează ascultătorii UDP, iar ss -ltnp îi listează pe cei TCP, iar coloana care merită citită este adresa locală, nu starea.

Un răspuns gol înseamnă de obicei unul din trei lucruri: procesul a ieșit după pornire, a încărcat alt fișier de configurare sau ascultă pe o adresă diferită de cea apelată.

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

O directivă local fixează ascultătorul pe o singură adresă, așa că un client îndreptat în altă parte pe același gazdă este refuzat în timp ce serviciul din exterior încă pare sănătos. Un nume de instanță poate și să indice un fișier pe care nu l-ați editat niciodată, ceea ce se întâmplă pe gazde care rulează două profiluri alături.

Capturați pachetul exterior, nu tunelul

Filtrați pe interfața fizică și portul real, cu interfața dumneavoastră substituită: tcpdump -ni eth0 udp port 1194. Pachetele de ieșire fără nimic care să revină indică ceea ce stă deasupra: filtrarea furnizorului, un dispozitiv NAT sau o adresă îndepărtată care nu este cea la care vă gândiți. Liniștea în ambele direcții indică rutarea clientului sau un firewall local. Răspunsurile care sosesc fără progres al tunelului indică canalul de control, adică o nepotrivire de cheie sau cifru, nu filtrarea.

Capturați ambele direcții și păstrați fișierul scurt. O captură lungă îngroapă cele trei secunde interesante, iar răspunsul se află aproape întotdeauna în primul schimb.

Mai întâi contoarele, urmărirea doar când mint

Începeți cu contoarele, pentru că nu costă nimic. Fie nft list ruleset, fie iptables -L -n -v răspunde la singura întrebare care contează aici: regula s-a potrivit? Ordinea decide rezultatul, pentru că prima potrivire câștigă, de aceea un DROP larg înaintea unui ACCEPT ulterior lasă acel ACCEPT mort și de aceea adăugarea unei reguli atât de rar repară ceva.

Proprietatea îi împiedică și ea pe oameni. Kernelul atribuie pachetele generate local procesului care a deschis socketul, iar OpenVPN rulează de obicei ca root, așa că o regulă legată de un ID de utilizator obișnuit nu vede niciodată traficul tunelului însuși. Verificați UID-ul proprietarului înainte de a decide că regula este greșită.

Doar când contoarele rămân ambigue merită un log zgomotul, și chiar atunci doar pentru o felie îngustă: o regulă iptables care limitează rata și prefixează liniile de log, sau o regulă nftables cu meta nftrace set 1 în timp ce nft monitor trace rulează. O urmărire numește lanțul și regula care a acceptat sau a eliminat pachetul. Eliminați ambele după aceea și țineți înregistrarea sarcinii utile în afara.

Verificați și transportul. Un serviciu de firewall limitat la TCP nu spune nimic despre un ascultător UDP pe acel număr, așa că o regulă citită corect poate încă elimina fiecare pachet.

Rutare și drumul înapoi

Un pachet acceptat care totuși dispare are nevoie de examinarea căii sale de destinație. ip route get raportează ruta aleasă pentru o adresă, iar filtrarea căii inverse poate elimina un răspuns care sosește printr-o interfață pe care tabela principală nu ar alege-o niciodată. Simptomul arată exact ca o eliminare de firewall, de aceea această verificare vine înaintea altei reguli NAT.

Pe un gateway, inspectați redirecționarea și lanțul forward în locul lanțului input. Apoi confirmați că partea îndepărtată știe cum să atingă adresa sursă, pentru că o cale de ieșire funcțională fără nimic care să revină este liniște în ambele cazuri.

Ce trebuie să spună însemnarea

Pentru fiecare modificare, notați etapa testată, dovada citită și valoarea contorului de ambele părți ale ei. Acea notă este ce face "acum funcționează" supraviețuitor la următoarea revizuire.

Două scurtături țin nota onestă. Un pachet care nu a părăsit niciodată gazda nu putea fi eliminat de o regulă în altă parte, oricât de convingătoare ar părea configurația părții îndepărtate. Un pachet care a ieșit și s-a întors mută întrebarea deasupra stratului de rețea, unde contoarele firewallului nu mai au nimic să vă spună.

Articole similare