Ev marşrutlaşdırıcısı arxasında PPTP iki əlaqəsiz səbəbdən uğursuz olur və onları qarışdırmaq bir axşamı boşa verir. Uğursuzluqlardan biri yönləndirmə boşluğudur: marşrutlaşdırıcı TCP 1723-ü keçirir, IP protokolu 47-ni isə atır, buna görə müştəri 619 xətasında donur. Digəri ölçü problemidir: tunel qurulur, autentifikasiyadan keçir, sonra tam ölçülü paket keçməli olanda donur. Hansının sizdə olduğunu müəyyən etmək ilk real addımdır; qalanı marşrutlaşdırıcınızın nə ifadə edə bildiyini müqayisə edir, hansı brendin daha yaxşı olduğunu yox.

İki daşıyıcı, və yalnız birinin portu var

PPTP iki daşıyıcıya bölünür: TCP 1723 üzərində idarəetmə bağlantısı və gücləndirilmiş GRE içində bükülmüş PPP kadrları, yəni IP protokolu 47. GRE-nin port nömrəsi yoxdur, buna görə 1723 portunu yönləndirmə kimi yazılmış qayda onu heç cür əhatə edə bilməz, veb interfeys həmin sahəni necə adlandırmasından asılı olmayaraq. İstehlakçı marşrutlaşdırıcısı adətən protokol qaydası əvəzinə PPTP keçidi adlı qeyd qutusu təklif edir və həmin qutu iki iş görür: protokol 47-nin firewall-dan keçməsinə icazə verir və NAT-a GRE axınını izləməyi öyrədir. Linux marşrutlaşdırıcısında bu işlər ayrı modullar və ayrı qaydalardır, buna görə yarımkonfiqurasiya edilmiş keçid yenə də işlək idarəetmə kanalı verir. Nəyisə dəyişməzdən əvvəl hansı yarısının mövcud olduğunu öyrənin.

Serverin öz firewall-u da marşrutlaşdırıcı ünvanından protokol 47-yə icazə verməlidir. Yalnız 1723/tcp qəbul edən host firewall-u LAN daxilində 619 xətasını təkrar yaradır, bu da pozulmuş yönləndirmə ilə pozulmuş host qaydasını eyni göstərir.

sudo iptables -S FORWARD | grep -i gre
sudo nft list ruleset | grep -i gre
lsmod | grep -E 'nf_conntrack_proto_gre|nf_nat_proto_gre'

Modullar yoxdursa, onları sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre ilə yükləyin və yükləməni davamlı edin, çünki köməkçini unudan yenidən başlatma işlək tuneli yenidən 619 xətasına çevirir. Yönləndirmə qaydası protokol 47-ni yalnız server ünvanına qəbul etməlidir, bütün LAN-a deyil. RFC 2637 tərifi idarəetmə və data yollarını ayırır, buna görə heç bir port yönləndirmə ekranı PPTP-ni tam təsvir etmir.

Keçid qutusu, yoxsa açıq protokol qaydası

Yalnız firewall-u açan keçid qutusu, çağırış identifikatorlarını yenidən yazan ALG-dən həqiqətə daha yaxındır. Firewall yarısı proqnozlaşdırıla biləndir, çünki ya protokol 47 qəbul olunur, ya da atılır və sayğaclar hansının olduğunu deyir. Yenidən yazma yarısı satıcıların fərqləndiyi yerdir, çünki PPTP çağırış identifikatorları hər tunel üçün ayrıdır və onları dəyişən NAT toxunduğu hər çağırışı izləməlidir. Bir müştəri qoşulub ikisi qoşulmadıqda ilk şübhəli ALG-dir.

1723 üçün təyinat NAT qaydası da sahiblik problemi daşıyır. Köhnə qayda hələ də 1723-ü serveri dayandırmış host-a göndərirsə, paketlər bağlı porta düşür və marşrutlaşdırıcının öz PPTP xidməti cavab verməyi dayandırır, bu da firewall nasazlığı kimi oxunur, əslində isə köhnəlmiş hədəfdir. İkincisini əlavə etməzdən əvvəl qaydanı və təyinatını oxuyun. PPTP-ni özləri sonlandıran marşrutlaşdırıcılarda WAN qaydası daxili xidmətlə rəqabət aparır, buna görə 1723 və protokol 47 üçün bir sahib seçin.

Eyni NAT arxasında iki müştəri sadə yönləndirməni ağıllısından ayıran haldır. Protokol 47-ni çağırış identifikatorlarını yenidən yazmadan yönləndirmək adətən onları düzəltməyə çalışan köməkçidən daha yaxşı davranır.

Marşrutlaşdırıcını günahlandırmadan tuneli ölçün

PPTP istifadə oluna bilən yükü kiçildir və bu kiçilmə sirr deyil, hesabdır. Hər tunel paketi xarici IP başlığı, gücləndirilmiş GRE başlığı, PPP başlığı və şifrələmə ilə MPPE başlığı daşıyır. Yol yaranan kadrı daşıya bilmədikdə kiçik paketlər keçir, giriş tamamlanır və sessiya fayl köçürməsi və ya TLS əl sıxışması tam ölçülü paket göndərən ilk anda dayanır.

Rəqəmi təxmin etmək əvəzinə hesablayın. Gücləndirilmiş GRE 8 bayt, PPP 4 bayt, MPPE 4 bayt, xarici IP başlığı 20 bayt tutur, buna görə tunel hər hansı yükdən əvvəl 36 bayt yeyir. 1492 ilə bitən PPPoE WAN-da sığan ən böyük PPP MTU 1492 çıx 36, yəni 1456-dır. PPP seçimlərində mtu və mru dəyərlərini həmin rəqəmə qoyun və fraqmentləşməyən ping ilə yenidən sınayın.

ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd

Ping tuneli deyil, yolu ölçür: 1464 bayt yük üstəgəl 28 bayt IP və ICMP başlığı 1492 baytlıq kadrı tam doldurur. Bu ping uğursuz olarsa, keçənə qədər rəqəmi aşağı salın və nəticədən 36 çıxın. Yol həddindən yuxarı qoyulmuş tunel MTU ölçüdən bəhs edən heç bir log sətri olmadan donmanı yaradır.

Eyni marşrutlaşdırıcıda PPTP, L2TP/IPsec və ya OpenVPN

Eyni marşrutlaşdırıcı üç ümumi tuneldən hər hansı birini daşıya bilər və fərq onun nə ifadə etməli olduğundadır. PPTP iki fərqli qatda iki qayda tələb edir. IPsec üzərində L2TP açar mübadiləsi üçün UDP 500 və 4500, NAT-T onu daşımırsa yük üçün protokol 50 tələb edir. OpenVPN bir UDP portu tələb edir və heç bir köməkçi istəmir.

TunnelWhat the router must allowPractical note
PPTPTCP 1723 and IP protocol 47Two transports, two rules
L2TP/IPsecUDP 500, UDP 4500, protocol 50 without NAT-TESP has no port either
OpenVPNUDP 1194 or a chosen TCP portSingle rule, no helper

L2TP sütunu avtomatik olaraq GRE-dən dostyana deyil. ESP IP protokolu 50-dir və onun da portu yoxdur, buna görə protokol 47 ilə çətinlik çəkən marşrutlaşdırıcı eyni səbəbdən protokol 50 ilə də çətinlik çəkə bilər. NAT-T ESP-ni UDP 4500 içində bükmək üçün mövcuddur və hər iki tərəf onu dəstəklədikdə protokol 50 qaydası artıq olur. Bu, marşrutlaşdırıcının PPTP qutusunun deyil, son nöqtələrin xassəsidir. Hər ikisi üçün qayda yazmadan əvvəl müştərinin həqiqətən hansı kapsullaşdırmanı razılaşdırdığını təsdiqləyin.

OpenVPN marşrutlaşdırıcı tərəfində ən az hərəkətli hissəyə malik seçimdir. Bir UDP portu, bir yönləndirmə, əlaqə izləmə köməkçisi yoxdur və çağırış identifikatorlarının yenidən yazılması yoxdur. Müqabilində quraşdırılmalı müştəri lazımdır, daxili yığıcı deyil, və PPTP-nin söhbətdə qalmasının yeganə səbəbi çox vaxt budur.

Nəyi təmir etmək, nəyi dəyişmək

Yönləndirməni və MTU-nu düzəltmək sizə işləyən tunel verir, saxlamalı olduğunuz tunel deyil. PPTP-nin MSCHAPv2 autentifikasiyası illərdir hücuma açıqdır və işlək tunel oflayn bərpa oluna bilən etimadnamələri daşıyır. Uzaq cihaz L2TP/IPsec və ya OpenVPN işlədə bilirsə, təmiri üzərinə tarix qoyulmuş müvəqqəti tədbir kimi qəbul edin.

Qərar uzaq tərəfin nəyi dəstəklədiyinə və razılaşmanın nə qədər davam etməli olduğuna bağlıdır. Yalnız PPTP danışan köhnə cihaz təmir alır; müştəri quraşdıra bilən hər şey miqrasiya olunur.

Bileti bağlamazdan əvvəl müştərinin girişi deyil, böyük köçürməni atlatdığını və marşrutlaşdırıcının yenidən başlatmadan sonra protokol 47 qaydasını saxladığını təsdiqləyin. Bir fayl kopyasını keçib növbəti proqram yeniləməsindən sonra ölən tunel heç vaxt bitməmişdi.

Əlaqəli məqalələr