Ping radi, SSH radi, mala se stranica učita, a zatim svaki veliki odgovor visi dok ne istekne vrijeme. Klasičan obrazac upućuje na veličinu paketa, a ne na dostupnost: put nosi rukovanje i prvih nekoliko kilobajta, a zatim segment pune veličine nestane. Na Linux IPsec pristupniku TCP MSS pravilo često je rješenje, ali samo ako razumijete što mijenja i gdje se paket koji dotiče zapravo nalazi. Redoslijed ispod prati paket od simptoma do postavljanja pravila, tako da možete stati čim objašnjenje prestane odgovarati.

Simptom koji upućuje na MSS

TCP se pri rukovanju dogovara o najvećoj veličini segmenta. Ako je ta vrijednost veća od onoga što put može prenijeti nakon enkapsulacije, pošiljatelj nastavlja stvarati segmente koji nikada ne stignu, a veza se zaglavi nakon prvog kruga. Mali odgovori prolaze; veliki ne.

ICMP povratna informacija može spasiti vezu kroz otkrivanje MTU-a puta, a vatrozid koji odbacuje te poruke pretvara zastoj u tihu crnu rupu. Zato isti tunel radi za jednu aplikaciju, a ne uspijeva za drugu bez ikakve očite razlike u konfiguraciji.

Što TCPMSS pravilo radi, a što ne radi

Pravilo prepisuje MSS opciju u TCP paketima rukovanja dok prolaze. Ono ne postavlja MTU tunelskog sučelja, ne mijenja IPsec politiku, a na suvremenim jezgrama samo snižava objavljenu vrijednost umjesto da podigne onu koja je već manja. Također dira samo TCP; UDP tereti, ponašanje DNS-a i dogovoreni selektori prometa izvan su njegova dosega.

Budući da se promjena događa tijekom rukovanja, postojeća veza uspostavljena prije pravila zadržava staru vrijednost. Testirajte novom vezom i očekujte da će prvi pokušaj nakon promjene biti onaj koji vam nešto kaže. Ništa u pravilu ne dopire do veze koja je već otvorena. Zato ispravak primijenjen usred incidenta može izgledati kao da nije učinio baš ništa.

Stavite pravilo na unutarnju TCP stazu

Na Linux pristupniku zasnovanom na politici, proslijeđeni paket i dalje izgleda kao običan TCP kada ga vatrozid vidi. IPsec politika odlučuje da će paket biti zaštićen; vatrozid ne vidi ESP zaglavlje za unutarnji tok, pa usporedba s ESP-om ovdje opisuje potpuno drugi paket. Taj nesklad razlog je zašto neka pravila izgledaju ispravno i nikada se ne podudaraju.

U terminima iptablesa pravilo pripada mangle tablici na putu prosljeđivanja, ograničeno na pakete rukovanja: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Broj je primjer, a ne univerzalna konstanta; izvedite ga iz troška enkapsulacije i stvarnog MTU-a puta. nftables ekvivalent postavlja najveću veličinu segmenta u forward ili postrouting lancu.

Držite vanjska pravila osluškivanja za IKE i ESP odvojeno od unutarnjih pravila prosljeđivanja. Jedno pravilo koje pokušava autorizirati i tok aplikacije i vanjski protokol na kraju se pouzdano ne podudara ni s jednim.

Poštujte vlasnika vatrozida i red NAT-a

Ako UFW upravlja vatrozidom hosta, dodajte mangle i promjene prosljeđivanja kroz njegovu podržanu trajnu konfiguraciju, umjesto upisivanja naredbe koja nestaje pri sljedećem ponovnom učitavanju. Pravilo umetnuto u pogrešnu tablicu ili nakon završnog pravila nema učinka, a aktivna tablica to skriva od vas.

Prevođenje izvora zasebna je odluka koja se često isprepliće s ovom. Izuzeće postavljeno prije općeg masquerade pravila sprječava da zaštićeni promet izgubi izvor koji njegova politika zahtijeva; ono ne popravlja problem veličine, a pravilo veličine ne popravlja problem prevođenja.

Provjerite usko, pa stanite

Otvorite novu vezu prema servisu koji ne uspijeva i promatrajte i aplikaciju i brojače pravila. Ako zastoj nestane, imate dokaz o toj TCP stazi s tom enkapsulacijom. Nemate dokaz da se svaki VPN protokol uklapa, da je svaka UDP aplikacija popravljena ili da je određeni uzvodni servis bio prvotni uzrok.

Ostavite ICMP povratnu informaciju o veličini da radi gdje politika dopušta, i pažljivo tretirajte automatsko ograničavanje zasnovano na MTU-u rute kada vanjska IPsec staza nije predstavljena unutarnjom rutom. Što je zaključak uži, sljedeći je incident lakše dijagnosticirati.

Povezani članci