ZeroTier ile LAN'a: UFW yol kuralları, port izni değil
Ağ geçidinde bir porta izin vermek, arkasındaki ana makineye iletmekle aynı şey değildir. Yönetilen yolu kurun, geçişi açın ve bir dönüş yolu seçin.
Ofis LAN'ındaki bir yazıcıya ZeroTier üyesi üzerinden ulaşmak tek bir kural gibi görünür, ama aslında üç farklı yerde üç karardır. Overlay, LAN'ın nerede olduğunu bilmeli; Linux ana makinesi paketleri iletmeye istekli olmalı ve LAN, yanıtı nasıl geri göndereceğini bilmelidir. Ağ geçidinde bir port açan gelen kuralı bunların hiçbirine dokunmaz. Doğru ana makinede kullanılan yanlış araçtır.
Üç iş, üç sahip
Yönetilen yol, ZeroTier ağ yapılandırmasına aittir. Üyelere bir önekin belirli bir üye adresi üzerinden erişilebilir olduğunu söyler.
İletme, Linux çekirdeğine ve güvenlik duvarı ilkesine sahip olana aittir. Overlay üzerinden gelen bir paketin fiziksel arayüzden yeniden çıkıp çıkmayacağına karar verir. İletmeyen bir ana makine, paketi kabul ettikten sonra sessizce atar. Gönderen bir zaman aşımı görür ve hizmet günlüğünde hiçbir şey görünmez.
Dönüş yolu LAN'a aittir. Ana makineleri ve yönlendiricisi, overlay önekinin ağ geçidinizin LAN adresi üzerinden erişilebilir olduğunu bilmelidir; aksi hâlde bu soru hiç doğmasın diye bir şeyin trafiği çevirmesi gerekir.
Bunların her biri doğru olabilirken diğerleri başarısız olabilir; bu yüzden yalnızca ağ geçidine ping atan bir test, arkasındaki hizmet hakkında hiçbir şey kanıtlamaz.
Yönetilen yolu üyeye yönlendirin
İstenen LAN öneki için yolu ağ geçidinin LAN adresi üzerinden değil, overlay adresi üzerinden ekleyin. Overlay adresi diğer üyelerin erişebildiği adrestir; LAN adresi yalnızca kabloda anlam taşır.
Tasarımın çalışması için üyeler yönetilen yolları kabul etmelidir ve kendi yerel ağları duyurduğunuz öneki zaten kullanmamalıdır. Evde 192.168.60.0/24 üzerinde bulunan uzak bir dizüstü bilgisayar da 192.168.60.0/24'ü overlay üzerinden yönlendiremez.
Duyurulan öneki işin izin verdiği kadar dar tutun. Tercihi etkilemek için daha büyük bir toplu blok duyurmak, size ait olmayan adres alanını da talep edebilir ve ortaya çıkan çakışma her iki ağa bağlı cihazlarda görünür. Ayrıca bir üyeyi hiçbir yere çıkmayan bir yolu tercih etmeye itebilir. Yolu dürüst tutun ve gerisini ilkeye bırakın.
Öneki ve üye adresini güvenlik duvarı kurallarıyla aynı nota yazın, çünkü en sık görülen arıza yanlış üyeyi gösteren bir yoldur.
Çekirdekte geçişi açın
Herhangi bir şeyi değiştirmeden önce çalışan iletme değerini okuyun, sonra ayarı yeniden başlatmada kaybolan tek seferlik bir komutla değil, sisteminizin zaten kullandığı mekanizmayla kalıcı hâle getirin.
İlke UFW'ye aitse, yol kuralları bir kaynak, hedef ve arayüz çifti için iletmeyi ifade eder. Bunlar, hizmeti ağ geçidinin kendisinde açan gelen kurallardan ayrıdır:
sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose
Arayüz adı, o ana makinedeki gerçek overlay aygıtıdır ve ip link ile okunabilir; tüm kurulumlarda sabit bir dize değildir. Ana makine varsayılan olarak iletiyorsa ve UFW yolda değilse, yol kuralı yok sayılır ve önemli olan çekirdek ayarlarıdır.
Yanıtların nasıl döndüğünü seçin
Kaynak korunduğunda LAN'daki hizmet gerçek overlay adresini görür ve ona yanıt verir. Bu, LAN ana makinesinde veya yönlendiricisinde overlay önekini ağ geçidinize yönlendiren bir yol gerektirir ve bu, Linux kutusunun dışında bir değişikliktir.
Bu yol eklenemediğinde, kapsamı daraltılmış kaynak çevirisi isteği sanki LAN'daki ağ geçidinden gelmiş gibi gösterir. Yanıtlar o zaman yerel olarak döner ve LAN yönlendirmesinde bir değişiklik gerekmez; bunun bedeli hizmet günlüklerinde özgün kaynağın kaybolmasıdır.
Çeviriyi overlay kaynağı ve belirli LAN hedefiyle sınırlayın. LAN arayüzünden çıkan her şeyi çevirmek, sonradan kuralları okuyan herkesi şaşırtan geniş sürümdür ve engellenmesi gereken trafiği de gizler.
İki seçenekten hiçbiri LAN'dan istenmeyen biçimde rastgele overlay üyelerine erişim vermez. Bu isteniyorsa, kendi incelemesi olan ayrı bir kuraldır.
Gerçek bir üyeden test edin
Ağ geçidinden değil, başka bir üyeden bağlanın ve izin verilen tek bir hizmet isteyin. Ardından kapalı kalması gereken bir hizmeti deneyin ve iki testi de yeniden bağlandıktan sonra ve ağ geçidi yeniden başlatıldıktan sonra yineleyin.
ONLINE bildiren bir üye veya ağ geçidinin overlay adresine başarılı bir ping, yolu, iletme kuralını ya da dönüş yolunu doğrulamaz:
zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered
İkinci komut, paketin LAN ana makinesine hangi arayüzü kullanacağını; üçüncüsü ise yol kuralının amaçladığınız biçimde var olup olmadığını gösterir. İkisi de doğru görünüyorsa ve hizmet hâlâ zaman aşımına uğruyorsa, kalan şüpheli dönüş yoludur.