OpenVPN kaže povezano, a saobraćaj se ne kreće, rečenica koja pokriva najmanje pet nepovezanih kvarova. Uređivanje firewall pravila prije nego što znate koji sloj pada umnožava nepoznanice i ostavlja sljedećem inženjeru nered. Radite umjesto toga od procesa prema van, jer svaki korak ispod ili čisti jednu fazu ili sužava mjesto gdje paket umire. Redoslijed je ovdje važan: snimak uzet prije nego što znate koja je adresa vezana dokazat će nešto, samo ne ono što vam treba.

Soket je ili vezan ili nije

Usluga koja prijavljuje da je aktivna i dalje može biti vezana na adresu ili transport koji niste namjeravali. Ispitajte sam soket: ss -lunp navodi UDP slušaoce, a ss -ltnp navodi TCP, a kolona koju vrijedi čitati jest lokalna adresa, ne stanje.

Prazan odgovor obično znači jedno od tri: proces je izašao nakon pokretanja, učitao je drugu konfiguracijsku datoteku ili sluša na adresi različitoj od one na koju se poziva.

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

Direktiva local prikiva slušalicu na jednu adresu, pa klijent usmjeren drugdje na istom hostu biva odbijen dok usluga izvana i dalje izgleda zdravo. Ime instance također može pokazivati na datoteku koju nikada niste uredili, što se događa na hostovima koji pokreću dva profila uporedo.

Uhvatite vanjski paket, a ne tunel

Filtrirajte na fizičkom interfejsu i stvarnom portu, uz svoj interfejs: tcpdump -ni eth0 udp port 1194. Odlazni paketi bez ičega što se vraća upućuju na ono što je uzvodno: filtriranje provajdera, NAT uređaj ili udaljenu adresu koja nije ona koju mislite. Tišina u oba smjera upućuje na klijentsko rutiranje ili lokalni firewall. Odgovori koji stižu bez napretka tunela upućuju na kontrolni kanal, odnosno nesklad ključa ili šifre, a ne na filtriranje.

Uhvatite oba smjera i držite datoteku kratkom. Duga snimka zakopava zanimljive tri sekunde, a odgovor gotovo uvijek leži u prvoj razmjeni.

Prvo brojači, trag samo kada lažu

Počnite s brojačima, jer ne koštaju ništa. Ili nft list ruleset ili iptables -L -n -v odgovara na jedino pitanje koje je ovdje važno: da li se pravilo poklopilo? Redoslijed odlučuje ishod, jer prvo poklapanje pobjeduje, zato široki DROP prije kasnijeg ACCEPT ostavlja taj ACCEPT mrtvim i zato dodavanje pravila tako rijetko išta popravlja.

Vlasništvo također zbunjuje ljude. Kernel pripisuje lokalno generisane pakete procesu koji je otvorio soket, a OpenVPN obično radi kao root, pa pravilo vezano za običan korisnički ID nikada ne vidi saobraćaj samog tunela. Provjerite UID vlasnika prije nego zaključite da je pravilo pogrešno.

Samo kada brojači ostanu dvosmisleni, zapis je vrijedan buke, i to samo za uzak dio: iptables pravilo koje ograničava brzinu i dodaje prefiks svojim linijama zapisa, ili nftables pravilo s meta nftrace set 1 dok nft monitor trace radi. Trag imenuje lanac i pravilo koje je prihvatilo ili odbacilo paket. Uklonite oboje nakon toga i držite zapis korisnog tereta izvan toga.

Provjerite i transport. Firewall usluga ograničena na TCP ne govori ništa o UDP slušaocu na tom broju, pa pravilo koje izgleda ispravno i dalje može odbaciti svaki paket.

Rutiranje i put natrag

Prihvaćen paket koji ipak nestaje treba pregledati putanju do odredišta. ip route get prijavljuje rutu odabranu za jednu adresu, a filtriranje obrnutog puta može odbaciti odgovor koji stiže preko interfejsa koji glavna tabela nikada ne bi odabrala. Simptom izgleda točno kao odbacivanje firewalla, zato ova provjera dolazi prije još jednog NAT pravila.

Na gejtu provjerite prosljeđivanje i forward lanac, a ne input lanac. Zatim potvrdite da udaljena strana zna kako doći do izvorne adrese, jer radni odlazni put bez ičega što se vraća je tišina u oba slučaja.

Šta zapis mora reći

Za svaku promjenu zabilježite fazu koju ste testirali, dokaz koji ste pročitali i vrijednost brojača s obje strane. Taj zapis čini "sada radi" preživljivim na sljedećem pregledu.

Dvije prečice čuvaju zapis iskrenim. Paket koji nikada nije napustio host nije mogao biti odbačen pravilom negdje drugdje, koliko god uvjerljiva bila konfiguracija udaljene strane. Paket koji je otišao i vratio se pomjera pitanje iznad mrežnog sloja, gdje firewall brojači više nemaju šta reći.

Povezani članci