Otel şəbəkələri və konfrans firewall-ları çox vaxt xüsusi icazə qutusu göstərir və kimsə PPTP-nin işləyəcəyinə ümid edərək ora 47 yazır. Qayda yaradılır, tunel yenə də alınmır və növbəti cəhd başqa nömrədən istifadə edir. Səhv paketin özündədir: IPv4-də IP başlığından sonra gələni adlandıran protokol sahəsi var, TCP və UDP-də isə yalnız həmin başlıqlardan birinin içində mövcud olan port sahələri var. Bunlar eyni icazənin iki yazılışı deyil.

IPv4 başlığı növbəti protokolu adlandırır

Protokol sahəsi IPv4 başlığında bir baytdır və yükü təsvir edən ədəd saxlayır: TCP üçün 6, UDP üçün 17, GRE üçün 47, ESP üçün 50. Paketləri süzən hər şey daha dərinə baxmazdan əvvəl bu dəyəri oxuyur, çünki daha dərin başlıq yalnız tip bilinəndən sonra məna kəsb edir. Söhbətin sonunda portu dəyişin, bu sahə yerindən tərpənməyib.

Beləliklə, protokol 47-yə görə yazılmış qayda IP qatını təsvir edir. Qərarda heç bir port iştirak etmir.

Portlar TCP və UDP-nin içində var, başqa yerdə yox

Portlar TCP və UDP başlıqlarında on altı bitlik identifikatorlardır və vəzifələri bir ünvanı paylaşan söhbətləri ayırmaqdır. GRE başlığı protokol tipi dəyəri, çox vaxt EtherType, üstəgəl multipleksləmə üçün istəyə bağlı açarlar daşıyır. Ona görə də port 47 ifadəsi GRE paketinin uyğunlaşa biləcəyi heç nə adlandırmır.

Firewall interfeysləri bunun nə qədərini göstərdiyinə görə fərqlənir. Bəziləri protokol nömrəsini qəbul edir, bəziləri adlı siyahı təqdim edir, bir neçəsi isə yalnız portlarla TCP və ya UDP qəbul edir.

PPTP hər iki qatı eyni anda işlədir

PPTP ən aydın nümunədir, çünki işini qəsdən iki qat arasında bölür. Nəzarət bağlantısı 1723 portuna TCP sessiyasıdır, məlumat yolu isə GRE, protokol 47-dir və heç yerdə port iştirak etmir. 1723-ə icazə verib başqa heç nəyə icazə verməyən firewall danışıqların başlamasına imkan verir, sonra yükü atır. Tunel qoşulmağın əvəzinə autentifikasiyadan sonra asılı qalmış kimi görünür və buna görə simptom çox vaxt şifrə problemi kimi bildirilir.

PathOuter protocolPort
Control channelTCP, protocol 61723
Data channelGRE, protocol 47None

Qaydanı yazarkən iki sətri ayrıca oxu və hər birini satıcının sintaksisi ilə yoxla. Bir sətrə port lazımdır, digərinə protokol nömrəsi lazımdır və heç bir tək giriş ikisini əhatə etmir.

Niyə port yönləndirmə səhifəsi GRE-ni ifadə edə bilmir

Yalnız TCP və UDP qəbul edən yönləndirmə forması GRE-ni təsvir edə bilməz, forma necə adlanırsa da. Ünvan çevrilməsi ikinci çətinlik əlavə edir, çünki GRE-nin portu yoxdur və çevirici bunun əvəzinə çağırış identifikatorunu izləməlidir. Bəzi ev router-ləri bunu həll edən köməkçi ilə gəlir; çoxu gəlmir və heç bir əlavə TCP icazə girişi bu davranışı yaratmaz.

Əgər əsl tələb müasir tuneldirsə, çeviricinin düzgün təxmin etməsinə ümid etmək əvəzinə TCP və ya UDP-ni qəsdən istifadə edən dizayn seç.

Enkapsulyasiya filtrin nə gördüyünü müəyyən edir

Enkapsulyasiya xarici paketi dəyişir və qayda məhz xarici paketlə uyğunlaşır. Doğma ESP protokol 50-dir, NAT trafiki isə ESP-ni UDP 4500-ün içində bükür ki, ünvan çevrilməsindən sağ çıxsın. UDP 4500-ə icazə verən filtr protokol 50-ni heç vaxt görmür, protokol 50 üçün yazılmış filtr isə bükülmüş forma ilə heç vaxt uyğunlaşmır.

Müştəri ilə şlüzün hansı enkapsulyasiyada razılaşdığını soruş, sonra qaydayı yalnız həmin xarici forma üçün yaz.

Qaydayı elə yaz ki, kimsə onu yoxlaya bilsin

Hər qaydanı ünvan ailəsi, xarici protokol, varsa nəqliyyat portları, istiqamət və hər iki son nöqtə kimi ifadə et. Rəyçi bu cümləni paket tutumu ilə müqayisə edib hökm verə bilər. 47-ni açmaq barədə göstərişi heç kim yoxlaya bilməz və buna görə o, illərlə runbook-larda qalır.

Bunu sübut edən testi əlavə et: xarici interfeysdə tutma apararkən qoşul və izdə həqiqətən görünən xarici protokolu və portu təsdiqlə.

Əlaqəli məqalələr