Linux IPsec shlyuzida TCP MSS sozlash: u nimani tuzatadi
Kichik so'rovlar ishlaydi, katta javoblar esa osilib qoladi. Ichki TCP yo'lidagi MSS qoidasi to'g'ri yechimmi va u qayerda bo'lishi kerakligini tekshiring.
Ping ishlaydi, SSH ishlaydi, kichik sahifa yuklanadi, keyin har bir katta javob vaqt tugaguncha osilib qoladi. Klassik naqsh erishish qobiliyatiga emas, paket hajmiga ishora qiladi: yo'l qo'l berib ko'rishishni va dastlabki bir necha kilobaytni tashiydi, keyin to'liq hajmdagi segment yo'qoladi. Linux IPsec shlyuzida TCP MSS qoidasi ko'pincha yechim bo'ladi, lekin u nimani o'zgartirishini va u tegadigan paket aslida qayerda ekanini tushunsangizgina. Quyidagi tartib paketni alomatdan qoidaning joylashuvigacha kuzatib boradi, shuning uchun tushuntirish mos kelmay qolishi bilan to'xtashingiz mumkin.
MSS ga ishora qiluvchi alomat
TCP qo'l berib ko'rishishda maksimal segment hajmini kelishadi. Agar bu qiymat inkapsulyatsiyadan keyin yo'l ko'tara oladiganidan katta bo'lsa, jo'natuvchi hech qachon yetib bormaydigan segmentlarni ishlab chiqarishda davom etadi va ulanish birinchi aylanishdan keyin osilib qoladi. Kichik javoblar sig'adi; kattalari yo'q.
ICMP fikr-mulohazasi ulanishni yo'lning MTU sini aniqlash orqali qutqarishi mumkin, bu xabarlarni tashlab yuboradigan xavfsizlik devori esa osilib qolishni jim qora tuynukka aylantiradi. Shuning uchun bir xil tunnel bir ilova uchun ishlaydi, boshqasi uchun esa konfiguratsiyada ko'rinadigan farqsiz muvaffaqiyatsiz bo'ladi.
TCPMSS qoidasi nima qiladi va nima qilmaydi
Qoida o'tib ketayotgan TCP qo'l berib ko'rishish paketlaridagi MSS parametrini qayta yozadi. U tunnel interfeysining MTU sini belgilamaydi, IPsec siyosatini o'zgartirmaydi va hozirgi yadrolarda faqat e'lon qilingan qiymatni pasaytiradi, allaqachon kichikroq qiymatni ko'tarmaydi. U ham faqat TCP ga tegadi; UDP yuklamalari, DNS xatti-harakati va kelishilgan trafik selektorlari uning qamrovidan tashqarida.
O'zgarish qo'l berib ko'rishish vaqtida sodir bo'lgani uchun, qoidadan oldin o'rnatilgan mavjud ulanish eski qiymatini saqlab qoladi. Yangi ulanish bilan sinab ko'ring va o'zgarishdan keyingi birinchi urinish sizga biror narsa aytadigan urinish bo'lishini kuting. Qoidada hech narsa allaqachon ochiq ulanishga yetib bormaydi. Shuning uchun hodisaning o'rtasida qo'llanilgan tuzatish hech narsa qilmagandek ko'rinishi mumkin.
Qoidani ichki TCP yo'liga qo'ying
Siyosatga asoslangan Linux shlyuzida xavfsizlik devori ko'rganda uzatilgan paket hali ham oddiy TCP kabi ko'rinadi. IPsec siyosati paket himoyalanishini hal qiladi; xavfsizlik devori ichki oqim uchun ESP sarlavhasini ko'rmaydi, shuning uchun bu yerda ESP bilan moslashtirish butunlay boshqa paketni tavsiflaydi. Aynan shu nomuvofiqlik ba'zi qoidalar to'g'ri ko'rinib, hech qachon mos kelmasligining sababidir.
iptables atamalarida qoida uzatish yo'lidagi mangle jadvaliga tegishli, qo'l berib ko'rishish paketlari bilan cheklangan: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Raqam misol, universal konstanta emas; uni inkapsulyatsiya xarajati va yo'lning haqiqiy MTU sidan chiqaring. nftables ekvivalenti maksimal segment hajmini forward yoki postrouting zanjirida belgilaydi.
IKE va ESP uchun tashqi tinglash qoidalarini ichki uzatish qoidalaridan alohida saqlang. Ilova oqimini ham, tashqi protokolni ham ruxsat etishga urinadigan bitta qoida oxir-oqibat ikkalasiga ham ishonchli mos kelmaydi.
Xavfsizlik devori egasini va NAT tartibini hurmat qiling
Agar UFW xost xavfsizlik devoriga egalik qilsa, mangle va uzatish o'zgarishlarini keyingi qayta yuklashda yo'qoladigan buyruq yozish o'rniga uning qo'llab-quvvatlanadigan doimiy konfiguratsiyasi orqali qo'shing. Noto'g'ri jadvalga yoki yakuniy qoidadan keyin kiritilgan qoida hech qanday ta'sirga ega emas, jonli jadval buni sizdan yashiradi.
Manba tarjimasi bu bilan tez-tez o'zaro ta'sir qiladigan alohida qaror. Umumiy masquerade qoidasidan oldin qo'yilgan istisno himoyalangan trafik o'z siyosati talab qiladigan manbani yo'qotishining oldini oladi; u hajm muammosini tuzatmaydi, hajm qoidasi esa tarjima muammosini tuzatmaydi.
Tor doirada tekshiring, keyin to'xtang
Muvaffaqiyatsiz xizmatga yangi ulanish oching va ilovani ham, qoida hisoblagichlarini ham kuzating. Agar osilib qolish yo'qolsa, o'sha inkapsulyatsiya bilan o'sha TCP yo'li haqida dalilingiz bor. Sizda har bir VPN protokoli mos keladi, har bir UDP ilovasi tuzatildi yoki ma'lum bir yuqori oqim xizmati asl sabab bo'lgan degan dalil yo'q.
Siyosat ruxsat bergan joyda ICMP hajm fikr-mulohazasi ishlashiga ruxsat bering va tashqi IPsec yo'li ichki marshrut bilan ifodalanmagan bo'lsa, marshrut MTU siga asoslangan avtomatik cheklashga ehtiyotkorlik bilan munosabatda bo'ling. Xulosa qanchalik tor bo'lsa, keyingi hodisani tashxislash shunchalik oson.