TCP MSS regulēšana Linux IPsec vārtejā: ko tā labo
Mazi pieprasījumi strādā, bet lielas atbildes iestrēgst. Pārbaudiet, vai MSS noteikums iekšējā TCP ceļā ir pareizais risinājums un kur tam jāatrodas.
Ping strādā, SSH strādā, maza lapa ielādējas, un tad katra liela atbilde iestrēgst, līdz beidzas laiks. Klasiskais modelis norāda uz paketes izmēru, nevis sasniedzamību: ceļš nes rokasspiedienu un pirmos dažus kilobaitus, pēc tam pazūd pilna izmēra segments. Linux IPsec vārtejā TCP MSS noteikums bieži ir risinājums, bet tikai tad, ja saprotat, ko tas maina un kur patiesībā atrodas pakete, kurai tas pieskaras. Tālāk dotā secība seko paketei no simptoma līdz noteikuma izvietojumam, tāpēc varat apstāties, tiklīdz skaidrojums vairs neatbilst.
Simptoms, kas norāda uz MSS
TCP rokasspiedienā vienojas par maksimālo segmenta izmēru. Ja šī vērtība ir lielāka par to, ko ceļš spēj pārnest pēc iekapsulēšanas, sūtītājs turpina veidot segmentus, kas nekad nenonāk, un savienojums iestrēgst pēc pirmā apļa. Mazas atbildes ietilpst; lielas ne.
ICMP atgriezeniskā saite var glābt savienojumu, atklājot ceļa MTU, un ugunsmūris, kas šos ziņojumus izmet, pārvērš iestrēgšanu klusā melnajā caurumā. Tāpēc tas pats tunelis strādā vienai lietojumprogrammai un neizdodas citai bez redzamas atšķirības konfigurācijā.
Ko TCPMSS noteikums dara un ko nedara
Noteikums pārraksta MSS opciju TCP rokasspiediena paketēs, tām ejot garām. Tas neiestata tuneļa saskarnes MTU, nemaina IPsec politiku, un pašreizējos kodolos tikai pazemina paziņoto vērtību, nevis paaugstina jau mazāko. Tas arī pieskaras tikai TCP; UDP kravas, DNS uzvedība un saskaņotie trafika selektori ir ārpus tā tvēruma.
Tā kā izmaiņas notiek rokasspiediena laikā, esošais savienojums, kas izveidots pirms noteikuma, saglabā savu veco vērtību. Pārbaudiet ar jaunu savienojumu un gaidiet, ka pirmais mēģinājums pēc izmaiņām būs tas, kas jums kaut ko pateiks. Nekas noteikumā nesasniedz jau atvērtu savienojumu. Tāpēc labojums, kas piemērots incidenta vidū, var izskatīties tā, it kā tas nebūtu izdarījis pilnīgi neko.
Novietojiet noteikumu iekšējā TCP ceļā
Uz politikas balstītā Linux vārtejā pārsūtītā pakete ugunsmūrim joprojām izskatās kā parasts TCP. IPsec politika izlemj, ka pakete tiks aizsargāta; ugunsmūris neredz ESP galveni iekšējai plūsmai, tāpēc saskaņošana ar ESP šeit apraksta pavisam citu paketi. Tieši šī neatbilstība ir iemesls, kāpēc daži noteikumi izskatās pareizi un nekad nesakrīt.
iptables izteiksmē noteikums pieder mangle tabulai pārsūtīšanas ceļā, ierobežots ar rokasspiediena paketēm: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Skaitlis ir piemērs, nevis universāla konstante; atvasiniet to no iekapsulēšanas izmaksām un ceļa reālā MTU. nftables ekvivalents iestata maksimālo segmenta izmēru forward vai postrouting ķēdē.
Turiet ārējos IKE un ESP klausīšanās noteikumus atsevišķi no iekšējiem pārsūtīšanas noteikumiem. Viens noteikums, kas mēģina autorizēt gan lietojumprogrammas plūsmu, gan ārējo protokolu, galu galā uzticami nesakrīt ne ar vienu no tiem.
Cieniet ugunsmūra īpašnieku un NAT secību
Ja UFW pārvalda resursdatora ugunsmūri, pievienojiet mangle un pārsūtīšanas izmaiņas, izmantojot tā atbalstīto pastāvīgo konfigurāciju, nevis ierakstot komandu, kas pazūd nākamajā pārielādē. Noteikumam, kas ievietots nepareizajā tabulā vai pēc termināla noteikuma, nav nekādas ietekmes, un aktīvā tabula to slēpj no jums.
Avota tulkošana ir atsevišķs lēmums, kas bieži mijiedarbojas ar šo. Izņēmums, kas novietots pirms vispārīgā masquerade noteikuma, neļauj aizsargātajam trafikam zaudēt avotu, kuru prasa tā politika; tas nelabo izmēra problēmu, un izmēra noteikums nelabo tulkošanas problēmu.
Pārbaudiet šauri un pēc tam apstājieties
Atveriet jaunu savienojumu ar neveiksmīgo pakalpojumu un vērojiet gan lietojumprogrammu, gan noteikuma skaitītājus. Ja iestrēgšana pazūd, jums ir pierādījumi par šo TCP ceļu ar šo iekapsulēšanu. Jums nav pierādījumu, ka der katrs VPN protokols, ka ir izlabota katra UDP lietojumprogramma vai ka konkrēts augšupējs pakalpojums bija sākotnējais cēlonis.
Ļaujiet ICMP izmēra atgriezeniskajai saitei darboties tur, kur politika atļauj, un piesardzīgi izturieties pret automātisku ierobežošanu, kas balstīta uz maršruta MTU, ja ārējo IPsec ceļu neatspoguļo iekšējais maršruts. Jo šaurāks secinājums, jo vieglāk diagnosticēt nākamo incidentu.