TUN nə edir və VPN protokolu hələ nə etməlidir
TUN IP paketlərini nüvə ilə proqram arasında daşıyır. Nəql, autentifikasiya və şifrələmə həmin proqramın danışdığı protokolun işidir.
tun0 ilə VPN protokolunu bir şey kimi qəbul etmək insanları yanlış jurnala göndərir. İnterfeys istifadəçi sahəsindəki proqramın nüvə ilə IP paketlərini mübadilə etdiyi yerli sərhəddir. Protokol həmin proqramın paketləri aldıqdan sonra onlarla etdiyi işdir: nəql, autentifikasiya, şifrələmə və həmkar. Cihazın yaradılması bunlardan heç birini seçmir.
İki komponent, bir paket yolu
Nüvə cihaza IP paketi yazır, proqram isə onu fayl deskriptorundan oxuyur. Əks istiqamətdə proqram paketi geri yazır və nüvə onu real interfeysə gəlib çıxmış kimi marşrutlaşdırır. TUN IP daşıyır, TAP isə Ethernet çərçivələrini. Həmin sərhəddə paketi oxumaq çərçivələməni göstərir və cihaz məhz bunun üçündür.
Bu sərhəddən sonrakı hər şey proqramın işidir. İki proqram eyni interfeys konsepsiyasından istifadə edib paketlərlə tamamilə fərqli şeylər edə bilər. Cihazın özünün sonra nə baş verdiyi barədə fikri yoxdur. Fayl deskriptoru proqramın nüvə tərəfində tutduğu yeganə dəstəkləyicidir.
Cihazı yaradın, sonra sərhəddi izləyin
Sərhədi sınaqdan keçirərkən cihazı qəsdən yaradın. Davamlı cihaz onu yaradan prosesdən sonra da qalır ki, bu da təcrübələr üçün faydalıdır və sonradan tez-tez çaşqınlıq mənbəyi olur. VPN-i günahlandırmazdan əvvəl bayraqları və sahibi yoxlayın.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Link detalları cihazın növünü və ona bağlanmış sahibi göstərir. Onu açan proses yoxdursa, içinə yazılan paketlər heç yerə getmir. Proses bağlanmamış cihaz link siyahısında sağlam görünə bilər, halbuki heç nə ötürmür.
İnterfeys adının vəd edə bilmədiyi şey
İnterfeys adı şifrələmə və ya autentifikasiya barədə heç nə demir. Proqram paketləri TLS-ə, xüsusi protokola, IPsec-ə və ya heç nəyə bükməyə bilər. TAP yerinə TUN seçmək sərhəddəki çərçivələməni dəyişir, təhlükəsizlik dizaynını yox. Çərçivələmə seçimi realdır və təhlükəsizlik sualından qat-qat kiçikdir.
Aşkarlama eyni şəkildə işləyir: müşahidəçi naqildə xarici protokolu görür, hansı yerli cihazın onu yaratdığını bildirən etiketi yox. Başqa bir şey kimi görünən tunel bunu interfeys adına görə deyil, xarici protokoluna görə edir. Müşahidəçi paketi hansı yerli cihazın yaratdığını görə bilməz, yalnız paketin necə göründüyünü görür. Məhsulları müqayisə edərkən bu iki sualı ayrı saxlayın, çünki bir cavab heç vaxt digərini nəzərdə tutmur.
Düzəlişi sıradan çıxan mərhələyə uyğunlaşdırın
Bir şey pozulanda uğursuzluq mərhələlərini ayırın. Çatışmayan cihaz, icazə xətası və rədd edilmiş giriş fərqli sübutlar və fərqli düzəlişlər verir. Əvvəlcə yerli vəziyyəti, sonra proqramın öz jurnalını, sonra həmkarın baxışını oxuyun. Nəyisə dəyişməzdən əvvəl hər üçünü oxuyun.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Cihaz varsa və onu bir proses saxlayırsa, yerli sərhəd işləyir və problem daha uzaqdadır. Cihaz yoxdursa, heç bir etimad məlumatı yoxlaması kömək etməyəcək. Adını çəkə bildiyiniz mərhələ sınaqdan keçirə bildiyiniz mərhələdir. TUN/TAP sənədləri sərhədi və cihaz modelini təsvir edir.