Onaylanmış proxy'niz, yalnızca loopback üzerinde dinlediği bir atlama ana bilgisayarında çalışır, bu yüzden o makinenin dışından hiçbir şey ona ulaşamaz. VPN'e veya yeni bir proxy'ye ihtiyacınız yok; o makinenin bir portunun sizin bir portunuza taşınmasına ihtiyacınız var. Yerel yönlendirme tam olarak bunu yapar ve bir komut ile bir uygulama ayarı gerektirir. Karışıklık genellikle hangi loopback adresinin hangi makineye ait olduğunun karıştırılmasından kaynaklanır.

Sabit bir proxy'nin zaten var olup olmadığına karar verin

Bu teknik, zaten çalışan bir hizmeti yönlendirir. Uzak ana bilgisayarda yalnızca bir SSH arka plan programı varsa ve proxy yoksa, ne kadar yönlendirme yapılırsa yapılsın bir tane oluşmaz ve bağlantı uzak taraftan reddedilir. Proxy'nin bağlı olduğunu, portunun ne olduğunu ve 127.0.0.1 üzerinde mi yoksa belirli bir arayüz adresinde mi dinlediğini doğrulayın, çünkü yönlendirmenin hedeflemesi gereken adres tam olarak odur.

Bunu önce doğrulamak, hiçbir şeye bağlanmamış bir tünelde hata ayıklamaktan sizi kurtarır.

Yönlendirmeyi kurun ve komutu okuyun

İstediğiniz biçim, dizüstü bilgisayarınızda bir loopback portu bağlar ve onu sunucu tarafından proxy'nin adresine, sunucunun gördüğü şekilde bağlar.

ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  -L 127.0.0.1:13128:127.0.0.1:3128 [email protected]

-N uzak bir komutu bastırır ve -T termios tahsisini bastırır, çünkü kabuk değil tünel istiyorsunuz. İlk loopback adresi dizüstü bilgisayarın dinlediği yerdir; ikincisi SSH sunucusu tarafından çözülür, yani oradaki 127.0.0.1 o makinedeki proxy anlamına gelir. ExitOnForwardFailure, yerel port zaten kullanımdaysa hiçbir şey yönlendirmeyen bir oturum başlatmak yerine komutun yüksek sesle başarısız olmasını sağlar. Hedef adresi sunucunun çözdüğü şekilde yazın, çünkü yalnızca dizüstü bilgisayarınızın çözebileceği bir ad diğer tarafta başarısız olur.

Bunlardan herhangi biri çalışmadan önce sunucunun kendi politikası geçerlidir. AllowTcpForwarding buna izin vermelidir ve PermitOpen bir oturumun hangi hedeflere ve portlara ulaşabileceğini kısıtlayabilir, bu yüzden istemcinin kabul ettiği bir yönlendirme yine de sunucu tarafından reddedilebilir. Ret, istemcide bir yönlendirme veya kanal hatası olarak görünür ve o mesajı okumak komutu düzenlemekten daha hızlıdır.

Bir uygulamayı yönlendirmeye yöneltin

Uygulamayı http://127.0.0.1:13128 adresindeki HTTP proxy'yi kullanacak şekilde yapılandırın, uzak proxy gerektiriyorsa kimlik bilgileriyle birlikte. HTTPS hedefleri için uygulamanın kendi sertifika doğrulamasını koruyun, çünkü proxy tüneli onun yerini almaz. Bu, tek bir hizmetin sabit yönlendirmesidir, bu yüzden uygulamaya bir proxy olduğu söylenmelidir, kendi kendine keşfetmesine bırakılmamalıdır.

Kalıcı bir yapılandırmadan önce hızlı bir kontrol: curl -x http://127.0.0.1:13128 -I https://example.com, proxy'nin desteklemesi gereken HTTP CONNECT yöntemini çalıştırır.

Yetkiyi olduğu yerde tutun

Uzak proxy hangi hedeflere ve yöntemlere izin verdiğine hâlâ karar verir ve bir SSH oturumu açma her hesaba sessizce genel bir web aktarıcısı vermemelidir. Dizüstü bilgisayarda 127.0.0.1'e bağlanmak portu yerel ağınızda yayınlamaktan kaçınır ve portu aynı makinedeki diğer süreçlerden özel kılmaz. Bu bağlamayı proxy'yi paylaşmak için bir wildcard adresle değiştirmek, yönetilmeyen açık bir aktarıcının oluşma biçimidir.

SSH taşıması sunucuya kadar olan atlamayı korur. Bu noktadan sonra proxy kendi bağlantısını açar, bu yüzden bir hedefe yapılan sade HTTP isteği ilk bölüm şifrelenmiş olsa bile sunucunun ötesinde de sade kalır.

İki ucu da doğrulayın, sonra temizleyin

Yerel tünel kurulumu ve uzak hizmetin başarısı farklı sonuçlardır ve komutun çıkış durumu size yalnızca ilkini söyler. Dinleyicinin var olup olmadığını ss -ltn ile kontrol edin, ardından izin verilen bir uygulama isteği ve proxy'nin reddetmesi gereken bir istek yapın. Her ikisi de beklendiği gibi davranırsa yol gerçektir; tünel açıksa ve her istek başarısız olursa proxy reddediyor ya da hedefe ulaşamıyordur.

Bitirdiğinizde, onu elinde tutan SSH sürecini durdurun, proxy ayarını uygulamadan kaldırın ve görevden daha uzun yaşayan bir dinleyici bırakmak yerine yerel portun gittiğini doğrulayın.

İlgili makaleler