Ping працуе, SSH працуе, невялікая старонка загружаецца, а потым кожны вялікі адказ завісае да заканчэння часу чакання. Класічная карціна паказвае на памер пакета, а не на даступнасць: шлях нясе рукапоцісканне і першыя некалькі кілабайт, потым поўнапамерны сегмент знікае. На шлюзе Linux IPsec правіла TCP MSS часта бывае рашэннем, але толькі калі вы разумееце, што яно змяняе і дзе насамрэч знаходзіцца пакет, якога яно датыкаецца. Парадак ніжэй ідзе за пакетам ад сімптому да размяшчэння правіла, каб вы маглі спыніцца, як толькі тлумачэнне перастане адпавядаць.

Сімптом, які паказвае на MSS

TCP узгадняе максімальны памер сегмента падчас рукапоціскання. Калі гэта значэнне большае за тое, што шлях можа перанесці пасля інкапсуляцыі, адпраўнік працягвае ствараць сегменты, якія ніколі не даходзяць, і злучэнне завісае пасля першага круга. Дробныя адказы праходзяць; вялікія — не.

Зваротная сувязь ICMP можа выратаваць злучэнне праз выяўленне MTU шляху, а міжсеткавы экран, які скідае гэтыя паведамленні, ператварае завісанне ў ціхую чорную дзірку. Таму адзін і той жа тунэль працуе для адной праграмы і не працуе для другой без якой-небудзь відавочнай розніцы ў наладах.

Што робіць правіла TCPMSS і чаго не робіць

Правіла перапісвае опцыю MSS у пакетах рукапоціскання TCP, калі яны праходзяць. Яно не задае MTU інтэрфейса тунэля, не змяняе палітыку IPsec, а на сучасных ядрах толькі паніжае аб'яўленае значэнне замест таго, каб павышаць ужо меншае. Яно таксама датыкаецца толькі TCP; нагрузкі UDP, паводзіны DNS і ўзгодненыя селектары трафіку знаходзяцца па-за ягоным уплывам.

Паколькі змена адбываецца падчас рукапоціскання, існуючае злучэнне, усталяванае да правіла, захоўвае старое значэнне. Праверце на новым злучэнні і чакайце, што менавіта першая спроба пасля змены скажа вам нешта. Нішто ў правіле не дасягае злучэння, якое ўжо адкрыта. Таму выпраўленне, ужытае ў разгар інцыдэнту, можа выглядаць так, быццам яно не зрабіла нічога.

Размясціце правіла на ўнутраным шляху TCP

На шлюзе Linux з палітыкай перададзены пакет усё яшчэ выглядае як звычайны TCP, калі яго бачыць міжсеткавы экран. Палітыка IPsec вырашае, што пакет будзе абаронены; экран не бачыць загалоўка ESP для ўнутранага патоку, таму супадзенне з ESP тут апісвае зусім іншы пакет. Менавіта праз гэтую неадпаведнасць некаторыя правілы выглядаюць правільнымі і ніколі не спрацоўваюць.

У тэрмінах iptables правіла належыць табліцы mangle на шляху перасылкі і абмяжоўваецца пакетамі рукапоціскання: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Лік — гэта прыклад, а не ўніверсальная канстанта; выведзіце яго з накладных выдаткаў інкапсуляцыі і рэальнага MTU шляху. Эквівалент nftables задае максімальны памер сегмента ў ланцужку forward або postrouting.

Трымайце знешнія правілы слухача для IKE і ESP асобна ад унутраных правіл перасылкі. Адзінае правіла, якое спрабуе аўтарызаваць і паток праграмы, і знешні пратакол, у выніку не супадае надзейна ні з адным.

Паважайце ўладальніка міжсеткавага экрана і парадак NAT

Калі UFW валодае экранам хоста, дадавайце змены mangle і перасылкі праз яго падтрыманую пастаянную канфігурацыю, а не праз каманду, якая знікне пры наступнай перазагрузцы. Правіла, устаўленае ў няправільную табліцу або пасля тэрмінальнага правіла, не мае эфекту, і жывая табліца хавае гэта ад вас.

Пераклад крыніцы — асобнае рашэнне, якое часта ўзаемадзейнічае з гэтым. Выключэнне, змешчанае перад агульным правілам masquerade, не дае абароненаму трафіку страціць крыніцу, якую патрабуе яго палітыка; яно не выпраўляе праблему памеру, а правіла памеру не выпраўляе праблему перакладу.

Правярайце вузка, потым спыніцеся

Адкрыйце свежае злучэнне да збойнай службы і назірайце як за праграмай, так і за лічыльнікамі правіла. Калі завісанне знікне, у вас ёсць доказ пра гэты шлях TCP з гэтай інкапсуляцыяй. У вас няма доказаў, што падыходзіць кожны пратакол VPN, што выпраўлена кожная праграма UDP або што пэўная вышэйстаячая служба была першапачатковай прычынай.

Пакіньце зваротную сувязь ICMP па памеры працаваць там, дзе дазваляе палітыка, і асцярожна стаўцеся да аўтаматычнага абмежавання на аснове MTU маршруту, калі знешні шлях IPsec не прадстаўлены ўнутраным маршрутам. Чым вузнейшая выснова, тым лягчэй дыягнаставаць наступны інцыдэнт.

Падобныя артыкулы