Rregullimi i MSS për TCP në një portë Linux IPsec: çfarë rregullon
Kërkesat e vogla funksionojnë dhe përgjigjet e mëdha bllokohen. Kontrolloni nëse një rregull MSS në rrugën e brendshme TCP është zgjidhja e duhur dhe ku duhet të jetë.
Ping funksionon, SSH funksionon, një faqe e vogël ngarkohet, dhe më pas çdo përgjigje e madhe bllokohet derisa të skadojë koha. Modeli klasik tregon madhësinë e paketës dhe jo arritshmërinë: rruga mban shtrëngimin e duarve dhe kilobyte-t e parë, pastaj një segment me madhësi të plotë zhduket. Në një portë Linux IPsec, një rregull TCP MSS është shpesh zgjidhja, por vetëm nëse kuptoni çfarë ndryshon dhe ku është në të vërtetë paketa që prek. Rendi më poshtë ndjek paketën nga simptoma deri te vendosja e rregullit, kështu që mund të ndaleni sapo shpjegimi të mos përshtatet më.
Simptoma që sugjeron MSS
TCP negocion një madhësi maksimale segmenti në shtrëngimin e duarve. Nëse kjo vlerë është më e madhe se ajo që rruga mund të mbajë pas inkapsulimit, dërguesi vazhdon të prodhojë segmente që nuk arrijnë kurrë, dhe lidhja bllokohet pas raundit të parë. Përgjigjet e vogla përshtaten; të mëdhatë jo.
Reagimi ICMP mund ta shpëtojë lidhjen përmes zbulimit të MTU-së së rrugës, dhe një firewall që i hedh poshtë këto mesazhe e kthen bllokimin në një vrimë të zezë të heshtur. Kjo është arsyeja pse i njëjti tunel funksionon për një aplikacion dhe dështon për një tjetër pa asnjë ndryshim të dukshëm në konfigurim.
Çfarë bën një rregull TCPMSS dhe çfarë nuk bën
Rregulli rishkruan opsionin MSS në paketat e shtrëngimit të duarve TCP ndërsa ato kalojnë. Nuk vendos MTU-në e ndërfaqes së tunelit, nuk ndryshon politikën IPsec dhe në bërthamat aktuale vetëm ul një vlerë të shpallur në vend që të ngrejë një më të vogël. Gjithashtu prek vetëm TCP; ngarkesat UDP, sjellja e DNS-së dhe përzgjedhësit e trafikut të negociuar janë jashtë shtrirjes së tij.
Meqenëse ndryshimi ndodh gjatë shtrëngimit të duarve, një lidhje ekzistuese e krijuar para rregullit mban vlerën e saj të vjetër. Provoni me një lidhje të re dhe prisni që përpjekja e parë pas ndryshimit të jetë ajo që ju thotë diçka. Asgjë në rregull nuk arrin në një lidhje që është tashmë e hapur. Kjo është arsyeja pse një rregullim i aplikuar në mes të një incidenti mund të duket sikur nuk bëri absolutisht asgjë.
Vendosni rregullin në rrugën e brendshme TCP
Në një portë Linux të bazuar në politika, paketa e përcjellë duket ende si TCP e zakonshme kur firewall-i e sheh. Politika IPsec vendos që paketa do të mbrohet; firewall-i nuk sheh një kokë ESP për rrjedhën e brendshme, kështu që përputhja me ESP këtu përshkruan një paketë krejt tjetër. Pikërisht kjo mospërputhje është arsyeja pse disa rregulla duken të sakta dhe nuk përputhen kurrë.
Në termat e iptables, rregulli i përket tabelës mangle në rrugën e përcjelljes, i kufizuar në paketat e shtrëngimit të duarve: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Numri është një shembull, jo një konstante universale; nxirreni nga kostoja e inkapsulimit dhe MTU-ja reale e rrugës. Një ekuivalent nftables vendos madhësinë maksimale të segmentit në një zinxhir forward ose postrouting.
Mbani rregullat e dëgjimit të jashtëm për IKE dhe ESP të ndara nga rregullat e përcjelljes së brendshme. Një rregull i vetëm që përpiqet të autorizojë si rrjedhën e aplikacionit ashtu edhe protokollin e jashtëm përfundon duke mos u përputhur në mënyrë të besueshme me asnjërën.
Respektoni pronarin e firewall-it dhe rendin e NAT
Nëse UFW zotëron firewall-in e hostit, shtoni ndryshimet e mangle dhe të përcjelljes përmes konfigurimit të tij të përhershëm të mbështetur, në vend që të shkruani një komandë që zhduket në ringarkimin tjetër. Një rregull i futur në tabelën e gabuar ose pas një rregulli terminal nuk ka asnjë efekt, dhe tabela aktive e fsheh këtë nga ju.
Përkthimi i burimit është një vendim i veçantë që shpesh ndërlidhet me këtë. Një përjashtim i vendosur para një rregulli të përgjithshëm masquerade pengon trafikun e mbrojtur të humbasë burimin që kërkon politika e tij; nuk rregullon një problem madhësie, dhe një rregull madhësie nuk rregullon një problem përkthimi.
Verifikoni në mënyrë të ngushtë, pastaj ndaloni
Hapni një lidhje të re me shërbimin që dështon dhe vëzhgoni si aplikacionin ashtu edhe numëruesit e rregullit. Nëse bllokimi zhduket, keni dëshmi për atë rrugë TCP me atë inkapsulim. Nuk keni dëshmi se çdo protokoll VPN përshtatet, se çdo aplikacion UDP është rregulluar ose se një shërbim i caktuar në rrjedhën e sipërme ishte shkaku origjinal.
Lëreni reagimin e madhësisë ICMP të funksionojë aty ku politika e lejon, dhe trajtoni me kujdes rregullimin automatik të bazuar në MTU-në e rrugës kur rruga e jashtme IPsec nuk përfaqësohet nga rruga e brendshme. Sa më i ngushtë përfundimi, aq më e lehtë është të diagnostikohet incidenti i radhës.