Bu kılavuz, proxy'den haberdar bir uygulamaya mevcut bir WireGuard yoluna erişim verir, VPN sunucusunda veya internette proxy portu yayımlamadan. SOCKS servisi uygulama arayüzünü sağlar, WireGuard zaten onaylanmış IP yolunu sağlar ve ikisi de kullanıcının kimliğini sizin yerinize doğrulamaz. Aşağıdaki her adım denetleyebileceğiniz bir şey üretir ve her birinin bir geri alma yolu vardır: örneği durdurun, kuralı kaldırın veya uygulamanın proxy ayarını kaldırın. Burada hiçbir şey ana makinenin varsayılan rotasını değiştirmez.

Örnek, Dante 1.4.x'in güvenilir bir Linux iş istasyonunda özel, yönetilen bir örnek olarak kurulu olduğunu ve paketin sağladığı hizmet hesabı ile günlük yapılandırmasının yerinde bırakıldığını varsayar. İş istasyonu 10.77.0.2 adresini WireGuard arayüzünde bulundurur, 10.60.0.20:443 adresine bu tünel üzerinden ulaşır ve hizmetin asıl adı app.corp.example'dir.

Adım 1: dinleyiciyi yalnızca loopback'e bağlayın

Ağ, yöntem ve kural bölümlerini örneğin etkin yapılandırmasına koyun ve örnek adresleri değiştirin. Tüm sunucu ayarları kural bloklarından önce gelir:

internal: 127.0.0.1 port = 1080
external: 10.77.0.2
external.protocol: ipv4
clientmethod: none
socksmethod: none

client pass {
    from: 127.0.0.1/32 to: 127.0.0.1/32
}

socks pass {
    from: 127.0.0.1/32 to: 10.60.0.20/32 port = 443
    command: connect
    protocol: tcp
}

Bu bir parçadır, paketin kullanıcı ve günlük ayarlarının yerine geçmez. Kullanılmayan bir yerel port seçin ve bu özel örneğin başka dinleyicileri, daha geniş geçiş kuralları ve sözleşmeyi değiştirecek üst akış zincir kayıtları olmadığını doğrulayın. Önceki bir yapılandırma socks pass öğesini hedef kısıtlaması olmadan bıraktıysa, herhangi bir şeyi test etmeden önce kaldırın.

Bu adımın geri alınması örneği durdurmaktır; yapılandırma dosyası geri alırken diskte kalabilir.

Adım 2: bir değil iki kural yazın

Dante'nin yapılandırma başvurusu iki kural türüne farklı görevler verir. İstemci kuralı loopback dinleyicisine bağlantıya izin verir ve hedefi dinleyicinin kendi adresidir. SOCKS kuralı istenen ileri bağlantıya onaylanmış ana makine ve bağlantı noktasına izin verir. Eşleşmeyen istekler varsayılan olarak engellenir, bu yüzden eksik bir kural bozuk bir rotayla aynı görünür.

Bu yapılandırmanın bilerek ne yapmadığına dikkat edin: SOCKS parolası istemez. Bu, güvenilir bir yerel ana makineye uygundur ve kullanıcı kimlik doğrulaması değildir. O makinedeki herhangi bir başka süreç de loopback'i kullanabilir. Uzak uygulamanın kendi kimlik doğrulamasını yerinde tutun ve bu kimlik doğrulamasız biçimi güvenilmeyen yerel kullanıcılar veya LAN'a bakan bir dinleyici için yeniden kullanmayın.

Adım 3: rotayı doğru kaynaktan doğrulayın

external giden kaynak adresini seçer; WireGuard rotası kurmaz. Örnek kaynak ve hedef için salt okunur sorgu:

ip -4 route get 10.60.0.20 from 10.77.0.2

Bunu Dante'nin gerçek ağ ad alanında çalıştırın, açık olan herhangi bir kabukta değil. Rota, WireGuard eş seçimi, uzak taraf izni ve dönüş yolu bu kaynak adresine uymalıdır. Başarılı bir sorgu gereklidir ve yeterli değildir, çünkü uzak ucun isteği kabul edip etmediği hakkında hiçbir şey söylemez.

Sorgunun başarılı olması için varsayılan rota ekleme dürtüsüne direnin. Proxy portu yalnızca bu iş istasyonunda vardır; onu oluşturmak için ana makinenin varsayılan rotasını değiştirmek tüm tasarımı tersine çevirir.

Adım 4: amaçlanan kimlikle test edin

Sahip kurulu yapılandırmayı doğruladıktan ve örneği hizmet yöneticisi aracılığıyla başlattıktan sonra örnek bir istek şudur:

curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/

İle socks5h, Dante hedef çözümlemesini yapar, ancak Dante bu iş istasyonunda çalışır, bu yüzden ayar DNS'i tünelin uzak ucuna kendiliğinden göndermez. Dante'nin kullandığı onaylanmış çözümleyici o ad için izin verilen adresi döndürmelidir. Boş proxy'siz liste, miras alınan bir istisnanın SOCKS'i sessizce atlamasını önler.

Testte HTTPS ana makine adı ve sertifika doğrulamasını koruyun, ardından gerçek dinleyiciyi inceleyin ve sözleşmenin iki yarısını doğrulayın: izin verilen istek başarılı olur ve dışlanan hedef başarısız olur. Desteklenmeyen iletme komutlarının reddedilmeye devam ettiğini de doğrulayın, çünkü bu parça TCP üzerinde SOCKS CONNECT komutuna izin verir ve genel bir UDP veya tüm cihaz tüneline benzeyen hiçbir şeye izin vermez.

Adım 5: tünel düştüğünde ne olacağına karar verin

Bunu üretim olarak adlandırmadan önce tünel kaybını ve örnek yeniden başlatmayı test edin. WireGuard'dan sonra Dante'yi başlatan bir gözetleyici fail-closed yönlendirme oluşturmaz ve fail-closed DNS de oluşturmaz; ikisi de ağ sahibi aracılığıyla uygulanmalıdır. Tünel kapalıyken uygulamanın ne yaptığını izleyin: temiz bir hata iyi sonuçtur, genel bir çözümleyiciye sessiz düşüş değildir.

Bağlı tünel adresi değişirse güncellemeleri koordine edin, çünkü external ona sabitlenmiştir. Bu düzen artık gerekli olmadığında, bu örneği ve uygulamanın proxy ayarını birlikte kullanımdan kaldırın ve WireGuard yolunu sahibine bırakın.

İlgili makaleler