Aynı ana bilgisayardaki NGINX ve OpenVPN kurulumunda üç istemci adresi görünür; her biri bir isteğin izleyebileceği bir yol içindir. Tünel adresine ulaşan tarayıcı, genel adrese ulaşan tarayıcı ve ağ geçidinin internet yolundan çıkan program dinleyen sokette farklı görünür. Günlük satırını yorumlamadan önce hangi yola baktığınıza karar verin. Karar, istemcinin kullandığı hedefe, dış VPN uç noktası için tuttuğu istisnaya ve paketin yolda çevrilip çevrilmediğine bağlıdır.

Kullanıcının kim olduğuna göre değil, hedefe göre karar verin

İsteğin gönderildiği adresle başlayın, çünkü yolu o adres seçer. Ana bilgisayarın tünel adresine giden istek, istemcinin iç adresini kaynak olarak taşıyarak tünel arayüzüne gelir. Ana bilgisayarın genel adresine giden istek genellikle internete bakan arayüze, istemcinin genel adresiyle gelir; aynı dizüstü bilgisayarda o anda bir tünel kurulu olsa bile. Dolayısıyla VPN havuzuna üyelik paket yolunun bir özelliğidir, kullanıcıyı izleyen bir özellik değildir.

Path the request tookSource the site normally records
Client reaches the site at its tunnel address, 10.24.0.1Client inner address, 10.24.0.20
Client reaches another internet site through the gatewayGateway public egress address, 192.0.2.44
Client reaches the gateway's public address through the endpoint exceptionClient's own public access address

Günlükte tünel ile hiçbir ilgisi olmayan bir adresle bir VPN kullanıcısı göründüğünde ilk denetlenmesi gereken satır tam da bu üçüncü satırdır. Aynı profildeki iki kullanıcının neden farklı kayıtlar üretebildiğini de açıklar: kendi erişim ağları farklıdır ve tünelin içinde hiçbir şey bunu üzerine yazmaz.

Dış uç nokta neden ikinci bir genel yol oluşturur

İstemci tüneli kurmak için ağ geçidinin genel adresine ulaşmalıdır, bu yüzden o adrese giden bir yol tünelin dışında var olmalıdır. Bir istemci tüm trafiği içeriye yönlendirdiğinde, makul bir uygulama kendine bağımlı bir tünelden kaçınmak için sunucunun genel adresine açık bir ana bilgisayar yolu tutar. Bu istisna hizmetler açısından seçici değildir, bu yüzden aynı genel adrese giden her istek onu izler; ağ geçidinde barındırılan bir siteye giden tarayıcı isteği de dahil.

Bu, bu alandaki kafa karıştırıcı raporların çoğunun arkasındaki mekanizmadır ve sunucuya değil istemci uygulamasına bağlıdır. Bu nedenle aynı profile sahip iki istemci farklı davranabilir. Günlüğü »düzeltmek« için istisnayı kaldırmak tüneli de beraberinde düşürür, bu yüzden onu koruyun ve çevresinde tasarlayın.

Soketi, tabloyu ve günlük biçimini birlikte okuyun

Üç gözlem hangi yola baktığınızı belirler: soketin nerede dinlediği, hedefe hangi arayüzün yanıt verdiği ve günlük biçiminin gerçekte ne kaydettiği. Dinleyici yalnızca tünel adresine bağlıysa, genel bir istek ona hiç ulaşamaz; bu da iki satırı hemen eler. İstemci için yapılan arama tünel aygıtını döndürüyorsa, istek iç kaynakla gelmiştir ve günlük bunu göstermelidir.

ss -lntp 'sport = :443'
ip route get 10.24.0.20
ip route get 192.0.2.44

Sonra satırı değil biçimi okuyun. İletilen bir başlıkla beslenen alan, soket eşini değil bir iddiayı kaydeder ve iddia yalnızca hemen komşu eş güvenilir bir vekil sunucu olduğunda önemlidir. Her iki değeri günlüğe yazmak sonraki tartışmaları kapatır, çünkü hemen komşu eş ile değiştirilen adres farklı olgulardır ve yalnızca biri ağdan gelmiştir.

log_format tunneled '$remote_addr $realip_remote_addr $request $status';
grep -n 'log_format' /etc/nginx/nginx.conf

İstediğiniz giriş noktasını seçin ve DNS'i uyumlu hale getirin

Site yalnızca tünel üzerinden erişilebilir olacaksa, ona VPN istemcileri için tünel adresine çözülen bir ad verin ve dinleyen sokette politikayı uygulayın. İç ad için 10.24.0.1 döndüren bölünmüş DNS yanıtı, ad çözümleme ayrıntısı kılığında bir yönlendirme kararıdır. Site aynı zamanda genel olacaksa, iki ad veya iki bağlantı noktası tutun ve hangisinin isteği sunduğunu günlük söylesin.

İzin kuralları aynı mantığı izler. Tünel havuzuna izin vermek genel bir isteği yetkilendirmez ve internet üzerinden gelen bir bağlantıda iç adres doldurmaz. İki giriş noktasını tek ad altında karıştırmak, kaydedilen kaynağı tasarım tercihi yerine istemci yönlendirmesinin yan etkisi yapar.

Önce yolu, sonra politikayı doğrulayın

Yolu ağ geçidinde bir yakalama ve sizin denetlediğiniz bir istekle doğrulayın. Tünel aygıtındaki yakalama ile genel arayüzdeki yakalama baytları hangisinin taşıdığını gösterir, paketlerin sırası ise aralarında bir çeviri olup olmadığını söyler.

tcpdump -ni tun0 port 443 -c 5
tcpdump -ni eth0 port 443 -c 5

Ardından erişimi iki yönde doğrulayın: amaçlanan adlandırılmış giriş amaçlanan istemci için çalışır ve onaylanmamış genel bir yol, yalnızca yavaş olmak yerine reddedilir. Genel bir IP-yankı sitesi, ağ geçidinin internet çıkışı hakkında bir şey kanıtlar ve aynı ana bilgisayardaki bu site hakkında hiçbir şey kanıtlamaz. Bir sayfa ile bir WebSocket anlaşamadığında, sunucu yapılandırmasına dokunmadan önce URL'lerini, adres ailelerini ve DNS yanıtlarını karşılaştırın.

İlgili makaleler