İki VPN istemcisi, iki genel adres: SNAT’ı eşleştirin
Kaynak bazlı SNAT bir genel adres seçebilir, ancak yalnızca ağ geçidi istemcileri hâlâ ayırt edebildiği sürece. Kuralı yazmadan önce kalan kaynağı denetleyin.
İki VPN istemcisi iki farklı genel IPv4 adresi üzerinden çıkabilir ve bunu yapan kural çoğu insanın beklediğinden kısadır. İşe yaramasını sağlayan şey iptables sözdizimi değil, paketin çıkış zincirine ulaştığındaki durumudur: oradaki kaynak adres hâlâ istemcileri ayırt edebilmelidir. Önceki bir masquerade ikisini de tek bir adreste birleştirdiyse, hiçbir istemci başına kural bu ayrımı geri getiremez. Önce bu soruyu çözün, sonra çeviriyi yazın.
Hangi kimlik ağ geçidine kadar yaşar
Kural paketin kaynak adresiyle eşleşir, VPN kullanıcı adıyla ve istemci uygulamasının gösterdiği adla değil. Paketi yolda daha önce çeviren her şey, kuralınızın hâlâ ne görebileceğini belirler. nat tablosunu sırayla çalıştırın ve kaynağın hâlâ her istemci için ayrı olduğu noktayı bulun.
iptables -t nat -S POSTROUTING
Bu listeyi yukarıdan okuyun. Üst kısma yakın bir masquerade kuralı, eşleşen her akışın kaynağını yeniden yazar ve ondan sonra yerleştirilen istemci başına girdiler artık var olmayan bir adresle eşleşir. İki LAN cihazı aynı tüneli paylaşıp tek bir iç adres olarak geldiğinde, tasarım güvenlik duvarından önce değişmelidir: kaynak aralıklarını ayrı tutun veya her birine kendi iç adresini verin.
İç adres atamasını kimliği doğrulanmış istemciye bağlayın. Bu adresi başka bir cihaza vermek çıkış politikasını da devreder ve kaynak çevirisi tek başına bir kimlik kanıtı değildir.
Çeviri bir adres uyduramaz
Her genel adres bu çıkış noktasına atanmalı veya buraya yönlendirilmelidir ve yanıtlar geri dönüş yolunu bulmalıdır. Kimsenin geri yönlendirmediği bir adresten trafik gönderen kural uzak uçta düşürülür veya hiç istemeyen bir konağa yanıt verilir. Bir bulut sağlayıcı örneği, paket çıkmadan önce genel adresini genellikle özel arabirim adresine çevirmiştir, bu nedenle SNAT kaynağı sağlayıcının kabul edeceği adres olmalıdır, konsolun gösterdiği değer değil. Sağlayıcının adres modelini okuyun ve genel değeri her pakete kopyalamak yerine ona uyun.
Pratikte bu, güvenlik duvarına dokunmadan önce sağlayıcı konsolunda yönlendirilmiş öneki denetlemek ve eşleme bire bir olduğunda özel arabirim adresini çeviri kaynağı olarak kullanmak anlamına gelir. Aşağıdaki örneklerde kullanılan adresler belge aralıklarından gelir, bu nedenle ilk değiştirilecek şey adres metninin kendisidir.
Genel masquerade öncesine ekleyin
Herhangi bir şey eklemeden önce çıkış arabirimini ve geçerli zinciri doğrulayın. İlki kuralın hangi paketlerle eşleşebileceğini belirler, ikincisi önünde ne durduğunu gösterir.
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
İlk komut, internete giden bir paketin gerçekte hangi arabirimden çıktığını adlandırır. İkincisi zinciri satır numaralarıyla yazdırır. Genel masquerade girdisi, üstünde kalmanız gereken satırdır.
iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78
Yukarıdaki iki kural birer iç adresle eşleşir, eşleşmeyi çıkış arabirimiyle sınırlar ve kaynağı açıkça ayarlar. Eklemek yerine ekleyin: 1. konumda masquerade satırından önce değerlendirilirler. İkisi arasındaki sıra önemli değildir çünkü kaynakları farklıdır. ens3 değerini route komutunun bildirdiğiyle değiştirin ve diğer güvenlik duvarı yöneticilerini aynı kancalardan uzak tutun, çünkü iki aracın tek bir tablo yazması doğru bir kuralın etkisiz kalmasının olağan nedenidir.
Kaynağı yeni bir akışla kanıtlayın
Durum bilgili NAT, bir akış başladığında çeviriyi bağlar ve sonraki paketler için yeniden kullanır, bu nedenle değişiklikten önce açılan oturum değişiklikten sonra eski kaynağını korur. Kuralı yalnızca yeni başlatılan bağlantı kanıtlar.
conntrack -L -s 10.88.4.20 -p tcp --dport 443
O girdinin yanıt yönünü okuyun: hedefi, uzak ucun kaynak olarak gördüğü adrestir. Amaçladığınız genel adresle karşılaştırın ve eski adresi taşıyan girdiyi bozuk bir kural değil, çok erken başlamış bir akışın kanıtı olarak değerlendirin. İstemciden yeni bir bağlantı açmasını isteyin, sonra sorguyu yineleyin. Testi zorlamak için tüm izleme tablosunu boşaltmak ağ geçidindeki diğer tüm oturumları kesintiye uğratır.
Çeviri hâlâ yolu seçmez, akışı filtreden geçirmez ve gelen bir hizmet yayımlamaz. Yanlış bir yol ve eksik bir izin kuralı kusursuz bir SNAT kuralından sonra da başarısız olmaya devam eder. IPv6’yı ve ikincil her çıkış yolunu da denetleyin, sonra iç-adres-genel eşlerini güvenlik duvarının belgelerine not edin ki sonraki değişiklik kural metninden değil eşlemeden başlasın.