Köprülü OpenVPN istemcileri internete çıkamıyor mu? NAT kuralını kontrol edin
Köprülü OpenVPN istemcileri tap aygıtından çıkar, bu yüzden fiziksel ağ kartını adlandıran masquerade kuralı asla eşleşmez ve sayaç sıfırda kalır.
Köprülü sunucu çalışıyor, masquerade kuralı duruyor, ama istemcideki tarayıcı hâlâ dönüyor. Her şey çalışması gerekiyormuş gibi görünüyor, bu yüzden ilk saat tüneli ve kimlik bilgilerini denetlemekle geçiyor. Sonra NAT kuralındaki sayacı okuyorsunuz ve yerinden kımıldamayan bir sıfır buluyorsunuz. Tek bir paket bile saymamış bir kural hiçbir zaman bir paketle eşleşmemiştir ve köprülü bir sunucuda neden yapısaldır: istemci trafiği sanal tap aygıtından çıkar, oysa kural eski bir kılavuzdan kopyaladığınız fiziksel kartı adlandırır.
Kanıt sayaçtır, tablodaki kayıt değil
Var olan kurallar ve eşleşen kurallar farklı şeylerdir ve ikisini ayıran sayaçtır. NAT tablosunu ayrıntılı sayaçlarla listeleyin ve bir şeyi değiştirmeden önce her kuralın yanındaki sayıları okuyun. Trafik akarken sıfırda duran bir sayaç, kuralın atlandığı anlamına gelir, adresleri ne kadar mantıklı görünürse görünsün. Bağlantı hâlâ başarısızken tırmanan bir sayaç sizi başka bir yere gönderir: yönlendirmeye, dönüş yoluna veya uzak uca.
iptables -t nat -L POSTROUTING -v -nÖnce arayüz eşleşmesinin yanındaki sayacı okuyun. Kaynak aralık doğru ve çıkış tarafı yanlışsa düzeltme yepyeni bir kural değil, kuraldaki tek bir sözcüktür.
Çekirdeğin gerçekte kaydettiği adı bulun
Kuralı yazmadan önce tünel aygıtının adını bellekten değil arayüz listesinden yararlanarak belirleyin. Köprülü bir OpenVPN kurulumunda aygıt genellikle sunucunun oluşturduğu tap arayüzüdür ve adı yerel yapılandırmanızın parçasıdır, evrensel bir sabit değildir. Tünel açıkken var olduğunu doğrulayın, çünkü ancak bir istemci bağlandıktan sonra ortaya çıkan bir aygıt daha önceki bir testi kural sorunu gibi gösterecektir.
ip -brief linkAdı yazın. Bu tanıdaki sonraki her komut ona başvurur ve buradaki bir yazım hatası tam olarak ilk hatanın ürettiği sıfır sayacı üretir.
Kuralı tünel aygıtına göre yeniden yazın
Kuralı tünel aygıtına yöneltin ve istemci aralığını eşleşme koşulu olarak bırakın, böylece tünel trafiğini kapsar ve ana makinenin kendi bağlantılarına dokunmaz. Kendi aralığınızı ve aygıt adınızı koyun, çünkü aşağıdakilerin ikisi de örnektir ve hiçbiri kurulumlar arasında taşınamaz.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADEArdından aynı belirtinin sakladığı diğer iki koşulu denetleyin. Yönlendirmenin açık olup olmadığına bakın; değilse yeniden başlatmada kaybolan bir echo ile değil, dağıtımın kendi yapılandırmasında açın. forward zincirinin sayaçlarını da okuyun ve tünel trafiğini düşürüyorsa o arayüze özellikle izin verin, zincir politikasına dokunmayın.
forward zincirini sayaçlarla okumak tek bir komut alır ve başka bir kurala dokunmadan önce kalan olasılıkların yarısını eler.
Fiziksel kart neden hiçbir zaman eşleşmez
Köprü, tap aygıtından ve tek bir fiziksel arayüzden oluşturulan bir yazılım anahtarıdır. İstemci çerçevesi o anahtara girer ve fiziksel ağa kart üzerindeki bir paket olarak değil, köprünün üyesi olarak çıkar. Bu yüzden çekirdek paketi köprüye ve onun bağlantı noktasına atfeder, bu yüzden düşündüğünüz kart eşleşmede asla görünmez. Fiziksel arayüzde bozuk bir şey yok; yalnızca çekirdeğin o paketi atfettiği aygıt o değil.
İnsanların sonra karşılaştığı sorun aynı yapıdan gelir: köprüde çerçeve filtreleme, IP filtrelemeden ayrı bir olanaktır. Gereksinim çerçeve düzeyinde bir kısıtlamaysa, bu köprü filtrelemesine aittir, IP tablosundaki bir kurala değil.
Bunu baştan sona kanıtlayın, sonra kalıcı hale getirin
Tek bir istemci kaldırın ve sunucunun LAN'ında bir şeye ping atın; o yol herhangi bir çeviri olmadan yönlendirmeyi çalıştırır. Ardından herkese açık bir şey isteyin ki masquerade kuralı kullanılmak zorunda kalsın ve sayacı bir kez daha okuyun: bu test için hareket etmeli, öncekisi için değil. Tünel aygıtında alınan bir yakalama, çerçevenin nerede göründüğünü ve hangi adresi taşıdığını birlikte gösterir.
Son adım: çalışan kuralları yeniden başlatmanın okuduğu yapılandırmaya koyun ve bu ana makinenin köprüsünün gerçekte hangi aygıt adını kullandığını not edin. Elle yazılan her şey yeniden başlatmadan sonra kaybolur ve aynı arıza açıklayacak hiçbir şey kalmadan geri döner.
Yeniden yazdıktan sonra sayaç hâlâ kımıldamıyorsa kuraldaki kaynak aralığı istemcinin gerçekte aldığı adresle karşılaştırın, çünkü köprülü bir sunucu amaçlamadığınız bir aralıktan adres dağıtabilir.