TUN ne yapar ve VPN protokolü hâlâ ne yapmak zorunda
TUN, IP paketlerini çekirdek ile bir program arasında taşır. Taşıma, kimlik doğrulama ve şifreleme, o programın konuştuğu protokole aittir.
tun0 ile bir VPN protokolünü tek bir şey olarak ele almak insanları yanlış günlüğe gönderir. Arayüz, kullanıcı alanındaki bir programın çekirdekle IP paketleri alışverişi yaptığı yerel bir sınırdır. Protokol, o programın paketleri aldıktan sonra onlarla yaptığı şeydir: taşıma, kimlik doğrulama, şifreleme ve bir eş. Aygıtı oluşturmak bunlardan hiçbirini seçmez.
İki bileşen, tek bir paket yolu
Çekirdek aygıta bir IP paketi yazar ve program onu bir dosya tanımlayıcısından okur. Diğer yönde program bir paketi geri yazar ve çekirdek onu gerçek bir arayüze gelmiş gibi yönlendirir. TUN IP taşır, TAP ise Ethernet çerçevelerini taşır. O sınırda bir paketi okumak çerçevelemeyi gösterir ve aygıt tam olarak bunun içindir.
O sınırın ötesindeki her şey programın işidir. İki program aynı arayüz kavramını kullanıp paketlerle tamamen farklı şeyler yapabilir. Aygıtın kendisinin bundan sonra ne olacağına dair bir görüşü yoktur. Dosya tanımlayıcısı, programın çekirdek tarafında sahip olduğu tek tutamaçtır.
Aygıtı oluşturun, sonra sınırı izleyin
Sınırı test ederken aygıtı bilerek oluşturun. Kalıcı bir aygıt, onu oluşturan süreç bittikten sonra da kalır; bu deneyler için yararlıdır ve sonrasında yaygın bir karışıklık kaynağıdır. VPN'i suçlamadan önce bayrakları ve sahibi kontrol edin.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Bağlantı ayrıntıları aygıt türünü ve ona bağlı sahibi gösterir. Hiçbir süreç onu açık tutmuyorsa, içine yazılan paketler hiçbir yere gitmez. Bağlı süreci olmayan bir aygıt bağlantı listesinde sağlıklı görünebilir ama hiçbir şeyi geçirmez.
Arayüz adının vaat edemeyeceği şey
Arayüz adı şifreleme veya kimlik doğrulama hakkında hiçbir şey söylemez. Bir program paketleri TLS'e, kendi protokolüne, IPsec'e ya da hiçbir şeye sarmalayabilir. TAP yerine TUN seçmek sınırdaki çerçevelemeyi değiştirir, güvenlik tasarımını değil. Çerçeveleme seçimi gerçektir ve güvenlik sorusundan çok daha küçüktür.
Algılama aynı şekilde çalışır: bir gözlemci kablodaki dış protokolü görür, hangi yerel aygıtın onu ürettiğini söyleyen bir etiketi değil. Başka bir şey gibi görünen bir tünel bunu arayüz adı yüzünden değil, dış protokolü yüzünden yapar. Gözlemci paketi hangi yerel aygıtın ürettiğini göremez, yalnızca paketin nasıl göründüğünü görür. Ürünleri karşılaştırırken bu iki soruyu ayrı tutun, çünkü bir yanıt hiçbir zaman diğerini gerektirmez.
Düzeltmeyi başarısız olan aşamaya eşleştirin
Bir şey bozulduğunda başarısızlık aşamalarını ayırın. Eksik bir aygıt, bir izin hatası ve reddedilen bir oturum açma farklı kanıtlar ve farklı düzeltmeler üretir. Önce yerel durumu, sonra programın kendi günlüğünü, sonra eşin bakışını okuyun. Bir şeyi değiştirmeden önce üçünü de okuyun.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Aygıt varsa ve bir süreç onu tutuyorsa, yerel sınır çalışır ve sorun daha uzaktadır. Aygıt yoksa, hiçbir kimlik bilgisi denetimi yardımcı olmaz. Adlandırabildiğiniz bir aşama, test edebildiğiniz bir aşamadır. TUN/TAP belgeleri sınırı ve aygıt modelini açıklar.