Tüm bağlantı noktalarını yönlendiren kurallar WireGuard dinleyicinizi yutabilir
Geniş bir yönlendirme kuralı ağ geçidinin kendi WireGuard ve SSH dinleyicilerini yutabilir. Dar kurallar veya ayrı bir genel adres seçin, ardından denetim yolunu test edin.
Genel bir ağ geçidi hâlihazırda UDP 51820 üzerinde WireGuard, 22 üzerinde SSH ve internetten erişilebilmesi gereken bir uygulama çalıştırıyor. Cazip kural her bağlantı noktasını eşe yönlendirir ve işi bitmiş sayar. Bir WireGuard ağ geçidinde bu kural tünelin kendi taşımasını yakalayabilir ve sizi onu sonlandıran makinenin dışında bırakabilir. Yayınlama, denetim düzlemi istisnası olan bir yönlendirme kararıdır, tek bir DNAT satırı değil.
Genel giriş mi tünel girişi mi: birini seçin
Bir hizmeti yayınlamak internette yeni bir giriş noktası oluşturur. Bu, bir eşe VPN üyeliği vermekle aynı şey değildir, çünkü ziyaretçi tünele hiç girmez ve ağ geçidi arka ucun genel yüzü olur. Bu ayrım kuralın hedef kitlesini ve sertifikasını belirler.
Yönetim arayüzleri o konuma nadiren aittir. Yetkili VPN istemcilerinin ulaştığı bir yönetim sayfası saldırı yüzeyini tünelin içinde tutar ve bir oturum açma formunu rastgele taramalara maruz bırakmaktan kaçınır. Genel uygulama uç noktaları yine de kendi TLS sertifikasına, kimlik doğrulamasına ve hız sınırlamasına ihtiyaç duyar; şifrelenmiş WireGuard atlaması ziyaretçinin ağ geçidine kadar olan bölümünü korumaz.
Hizmet gerçekten genel olmak zorundaysa ana bilgisayar adını, onu kapsayan sertifikayı ve ona ulaşması gereken ziyaretçi aralıklarını yazın. Bu üç olgu daha sonra kuralın biçimini ve filtre politikasını belirler. Bunların dışındaki her şey genel bir dinleyicide kapsam genişlemesidir.
Bir bağlantı noktası girer, bir arka uç çıkar
Tek bir genel bağlantı noktası ve tek bir arka uç hizmeti kullanın. Bu örnekte eth0 genel adresi 198.51.100.20 taşır, ağ geçidinin tünel adresi 10.200.0.1'dir ve eş uygulamayı 10.200.0.7 üzerinde çalıştırır. Genel TCP 9443, eşin TCP 8443 bağlantı noktasına eşlenir:
iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1SNAT kuralı çevrilmiş arka ucun ve özgün genel hedefin ikisiyle de eşleşir, bu yüzden aynı arka uç hizmetine giden başka bir bağlantı bu eşlemenin dışında kalır. Ayrıca ziyaretçinin adresini eşten gizler ve kaynağı koruyan yönlendirilmiş dönüş yolunu ayrı bir tasarım yapan ödünleşim budur. iptables eklentileri başvurusu her iki hedefi ve eşleme seçeneklerini belgeler.
Yönlendirme yine de etkin olmalı ve filtre zincirinin çevrilmiş hedef ile bağlantı noktası ve kurulmuş yanıtlar için bir izne ihtiyacı vardır. FORWARD zinciri DNAT sonrası çevrilmiş hedefi görür, bu yüzden genel adrese göre yazılmış bir kural iletilen paketle eşleşmez. İzni genel olana değil, arka uç demetine göre yazın.
Eş, hizmet bağlantısını ağ geçidinin tünel adresinden kabul etmeli ve yanıtı tünel üzerinden geri göndermelidir. AllowedIPs, gerçekten aldığı kaynağı yetkilendirmelidir; kaynak çevirisi altında bu, ağ geçidinin tünel adresidir ve bu tasarım için her eşte geniş bir 0.0.0.0/0 girdisi gerekli değildir. Dönüş trafiğini düşüren şey, listesinde o adresi atlayan bir eş ya da bunun yerine ziyaretçinin kendi adresini ileten kaynağı koruyan bir tasarımdır, bu yüzden kuralınızdaki değil eşin gerçekte gördüğü kaynağı kontrol edin.
Ağ geçidinin kendi dinleyicilerini kuralın dışında tutun
Bağlantı noktası eşlemesini her TCP ve UDP hedefini kapsayan bir kuralla değiştirin; ağ geçidinin kendi WireGuard yuvası bunun içine düşer. Hedef çevirisi, makine bir paketin yerel olduğuna karar vermeden önce gerçekleşir, bu yüzden UDP 51820 her eş bağlantısını tutan süreç yerine eşte sonuçlanabilir. Kural hatasız yüklenir ve tünel ölür; bu, eş tarafından okunması zor bir arızadır.
SSH, izleme araçları ve ağ geçidinde barındırılan diğer tüm hizmetler aynı maruziyete sahiptir. Her şeyi yönlendiren bir kural denetim düzlemini yayınlanan uygulamadan ayırmaz ve kilidin belirginleştiği an değişiklikten sonraki ilk yeniden başlatmadır. Her şeyi yakalayan kural sessizce devraldığı hizmet konusunda uyarmaz. Bunu bir sonraki bağlantı başarısız olduğunda keşfedersiniz.
Geniş yönlendirme gerçekten gerekiyorsa denetim bağlantı noktalarını her şeyi yakalayan kuraldan önce ayırın ya da yayınlama için ayrı bir genel adres kullanın. İkinci seçenek daha temizdir çünkü denetim adresi kendi politikasını korur, ama sağlayıcı o adresi vermek zorundadır; bir DNS kaydı eklemek adres tahsis etmez.
Geniş TCP ve UDP yönlendirmesi de tüm protokoller değildir. ICMP, IPv6, path-MTU geri bildirimi ve dış VPN taşıması kendi politikalarına ihtiyaç duyar ve TCP ile UDP'yi kapsayan bir kural bu durumları varsayılan zincire bırakır.
Kuralları yazmadan önce modeli seçin
Dört biçim bir ağ geçidinden yapılan yayınların çoğunu kapsar ve seçim kaç hizmet çalıştırdığınıza ve denetim düzleminde ne kadar riske katlanabildiğinize bağlıdır. Aşağıdaki tablo bunları en dar olandan en geniş olana doğru sıralar.
| Model | What it protects | Cost | Use when |
|---|---|---|---|
| Narrow port forward | Every other listener, including the VPN | One rule per service | Few services, stable ports |
| Catch-all with reserved ports | Ports named in the exception list | Rule order becomes critical | Many services and disciplined review |
| Separate public address | Control address fully isolated | Provider must supply the address | High-value publication |
| VPN-only access | No public entry at all | Visitors need the tunnel | Admin interfaces and internal tools |
Daha sonra daha fazla hizmet bekleseniz bile dar modelle başlayın. Denetlemesi en kolay olanıdır ve bir dizi dar kuralı gözden geçirilmiş bir her şeyi yakalayan kurala dönüştürmek, geniş bir kuralın hangi dinleyiciyi yakaladığını keşfetmekten daha basittir. Hangi modeli seçerseniz seçin, kuralları güvenlik duvarının sahibinde tutun. Aynı zincirleri yöneten bir UFW veya nftables yapılandırmasının yanında iptables satırları uygulamak, açılış sırasına göre değişen bir politika üretir.
Hem yayını hem denetim yolunu kanıtlayın
Yetkili bir dış istemciden onaylanmış ana bilgisayar adını ve onun için geçerli bir sertifikayı kullanarak test edin. Hangi arka ucun yanıt verdiğini doğrulayın, ardından ilgisiz genel bağlantı noktalarının reddedilmeye devam ettiğini kontrol edin. Devre dışı bırakılmış sertifika denetimi geçilmiş bir HTTPS testi değildir ve yanlış arka uca ulaşan bir bağlantı başarısız olandan daha kötüdür.
Bundan sonra ağ geçidinin kendisini doğrulayın: bir WireGuard eşi bağlayın, bir SSH oturumu açın ve izlemenin hâlâ raporladığını doğrulayın. Yayınlanan hizmet denetim düzlemi bozukken çalışabilir, bu yüzden iki kontrol de aynı değişiklik penceresine aittir. Kuralların beklenen sırayla yeniden uygulandığını kanıtlamak için bir kez yeniden başlatın, sonra yayını kaldırın ve kaldırmanın eklemeyle gerçekten eşleştiğini doğrulayın. Açılışta yapılan büyük bir ekleme kümesi ile eksik bir temizlik, geçici bir testin kalıcı bir açıklığa dönüşme biçimidir.