Proxy Teknolojileri6 dk okuma

Proxy sunucusu nedir ve bir istek proxy’den nasıl geçer?

Proxy, bir uygulamanın bağlantısını onun adına kuran ara sunucudur; hedef site sizin değil proxy’nin IP adresini görür. Bu yazı bir isteğin proxy üzerinden yolculuğunu adım adım izler.

FİG. 01 — İstemci ile proxy arasındaki mesaj sırası

Proxy sunucusu, istemci ile hedef sunucu arasında duran ve bağlantıyı istemcinin adına kuran bir aracıdır. Uygulamanız isteğini doğrudan hedefe değil proxy’ye gönderir, proxy hedefe bağlanır ve yanıtı geri aktarır; hedef sunucu bağlantıyı proxy’nin IP adresinden gelmiş olarak görür.

Tanım basittir, ama “aracı” kelimesi birçok farklı şeyi kapsar: bir şirket ağının çıkış kapısı, bir web sitesinin önündeki yük dengeleyici, bir geliştiricinin test betiğinde kullandığı çıkış IP’si. Bu yazı en yaygın kullanımı, yani istemci tarafında yapılandırılan proxy’yi (forward proxy) anlatır. Bu tür bir proxy’yi tarayıcının ağ ayarına, işletim sisteminin proxy ayarına ya da doğrudan bir uygulamanın veya betiğin bağlantı seçeneklerine tanımlarsınız; tanımı okumayan uygulamalar ise eskisi gibi doğrudan bağlanır.

Bir istek proxy’den nasıl geçer?

HTTPS bir sayfayı HTTP proxy üzerinden açtığınızı düşünün. Akış şu adımlardan oluşur:

  1. Uygulamaya proxy’nin adresi ve portu verilir (ör. PROXY_ADRESI:PORT). Uygulama artık bağlantılarını hedefe değil bu adrese açar.
  2. Uygulama proxy’ye bir TCP bağlantısı açar ve CONNECT ornek.com:443 HTTP/1.1 isteğini gönderir. Kimlik doğrulama gerekiyorsa isteğe Proxy-Authorization başlığı eklenir.
  3. Proxy kimlik bilgisini doğrular. Bilgi eksik ya da hatalıysa 407 Proxy Authentication Required yanıtını döner.
  4. Proxy ornek.com adını çözer, 443 numaralı porta kendi adresinden bağlanır ve istemciye 200 ile tünelin açıldığını bildirir.
  5. Bundan sonra proxy yalnız bayt aktarır: tarayıcı ile ornek.com arasındaki TLS el sıkışması ve şifreli trafik tünelin içinden geçer. Proxy içeriği değil, hedefin adını ve trafik hacmini görür.

Düz HTTP bir adres istendiğinde tünel kurulmaz: istemci isteği tam adresle (GET http://ornek.com/sayfa HTTP/1.1) proxy’ye yollar, proxy isteği hedefe iletir ve yanıtı geri getirir. Bu durumda proxy isteğin ve yanıtın tamamını okuyabilir. CONNECT yöntemi RFC 9110 (yeni sekmede açılır) içinde, proxy’ye gönderilen tam adresli istek biçimi (absolute-form) ise RFC 9112 (yeni sekmede açılır) içinde tanımlanır.

SOCKS5 akışı: daha alt düzeyde bir aracı

SOCKS5 HTTP’yi bilmez; herhangi bir TCP bağlantısını aktarır. İstemci önce desteklediği kimlik doğrulama yöntemlerini bildirir (00 kimlik doğrulamasız, 02 kullanıcı adı/parola), sunucu birini seçer, ardından istemci CONNECT komutuyla hedefi IPv4 adresi, alan adı ya da IPv6 adresi olarak iletir (RFC 1928 (yeni sekmede açılır)). Kullanıcı adı/parola alt müzakeresi ayrı bir belgede tanımlanır (RFC 1929 (yeni sekmede açılır)) ve bilgileri şifrelemeden gönderir.

Protokoller arasındaki ayrıntılı farklar için HTTP ve SOCKS5 karşılaştırması ve SOCKS5 proxy nedir yazılarına bakabilirsiniz.

Proxy adresi nasıl yazılır?

Çoğu araç proxy’yi bir URL biçiminde kabul eder. Şema kısmı, istemcinin proxy ile hangi dilde konuşacağını belirler:

socks5 / socks5h ayrımı curl ve onu örnek alan kütüphanelerdeki adlandırmadır; her istemci aynı adları kullanmaz.
BiçimAnlamıDNS’i kim çözer?
http://PROXY_ADRESI:PORTProxy ile düz HTTP konuşulur; HTTPS hedefler için CONNECT tüneli kurulurProxy
https://PROXY_ADRESI:PORTİstemci proxy’ye TLS ile bağlanır; istemci ile proxy arası da şifrelenirProxy
socks5://PROXY_ADRESI:PORTSOCKS5; istemci adı kendisi çözüp proxy’ye IP gönderirİstemci
socks5h://PROXY_ADRESI:PORTSOCKS5; alan adı proxy’ye iletilirProxy

Bir proxy’nin çalışıp çalışmadığını görmenin en kısa yolu, çıkış IP’sini döndüren bir adrese istek atmaktır. Aşağıdaki komutlar curl ile önce HTTP, sonra SOCKS5 proxy üzerinden istek gönderir; yanıtta sizin değil proxy’nin IP adresi görünmelidir (curl kılavuzu (yeni sekmede açılır)).

Çıkış IP’sini proxy üzerinden kontrol etmek
# HTTP proxy
curl -x http://PROXY_ADRESI:PORT -U KULLANICI:PAROLA "https://api.ipify.org?format=json"

# SOCKS5 proxy, alan adı proxy tarafında çözülür
curl -x socks5h://PROXY_ADRESI:PORT -U KULLANICI:PAROLA "https://api.ipify.org?format=json"

Aynı kontrolü komut satırı olmadan yapmak için Proxy Kontrol aracını, kendi bağlantınızın IP’sini görmek için IP Sorgulama aracını kullanabilirsiniz.

Proxy’ler nasıl sınıflandırılır?

“Proxy türü” denince birbirinden bağımsız dört eksen karışır. Bir proxy’yi tanımlarken her birine ayrı cevap vermek gerekir:

Bir de istemcinin hiç yapılandırmadığı, ağ geçidinde trafiği araya giren “şeffaf” (transparent ya da intercepting) proxy’ler vardır. Kurumsal ağlarda ve bazı erişim noktalarında kullanılırlar; istemci açısından seçilen bir hizmet değil, ağın bir özelliğidir.

Kimlik doğrulama: kim kullanabilir?

Herkese açık bir proxy kötüye kullanılmaya açıktır; bu yüzden ticari proxy’ler kimin bağlanabileceğini sınırlar. İki yaygın yöntem vardır: her bağlantıda kullanıcı adı ve parola göndermek ya da yalnız önceden bildirilen IP adreslerinden gelen bağlantıları kabul etmek (IP beyaz liste). Hangisinin ne zaman uygun olduğu proxy kimlik doğrulama yazısında anlatılır.

Proxy ne yapar, ne yapmaz?

YaparYapmaz
Hedefe giden bağlantının kaynak IP’sini proxy’nin adresiyle değiştirirTrafiği kendi başına şifrelemez (TLS’li proxy bağlantısı yalnız istemci–proxy arasını korur)
Uygulama ya da istek bazında farklı çıkış adresi kullanmayı sağlarProxy ayarı olmayan uygulamaların trafiğini yönlendirmez
Kurumsal ağlarda erişim kuralı, kayıt ve önbellek noktası olarak çalışabilirÇerezleri, oturum açmış hesabı ya da tarayıcı özelliklerini gizlemez
Hedef adı proxy tarafında çözerek yerel DNS sorgusunu gereksiz kılabilirHedef sitenin kurallarını ya da yasal yükümlülükleri ortadan kaldırmaz

Proxy işletmecisi de bir taraftır

Proxy’yi işleten kişi ya da şirket, protokolün açık bıraktığı her şeyi görebilir: hedef adları, düz HTTP isteklerin içeriği ve kimlik bilgileri. Bu yüzden kaynağını bilmediğiniz ücretsiz proxy listelerinden uzak durun ve hassas işlemlerde HTTPS dışındaki bağlantıları kullanmayın. Ayrıntılar: proxy kullanırken güvenlik.

Bağlantı kurulamazsa: tipik yanıtlar

Proxy bağlantısı başarısız olduğunda dönen yanıt, sorunun hangi aşamada olduğunu söyler. HTTP proxy’ler HTTP durum kodlarıyla, SOCKS5 sunucuları ise kendi yanıt kodlarıyla cevap verir:

SOCKS5 yanıt kodları RFC 1928 bölüm 6’da tanımlıdır.
YanıtAnlamıİlk bakılacak yer
HTTP 407Proxy kimlik doğrulaması istiyor ya da gönderilen bilgi hatalıKullanıcı adı, parola ve parolada kodlanması gereken özel karakterler
HTTP 403 / 502 / 503 (proxy’den)Proxy isteği reddetti ya da hedefe ulaşamadı; anlamı proxy yazılımına göre değişirHedef adres ve port, proxy’nin izin verdiği portlar
SOCKS5 02Bağlantıya proxy kuralları izin vermiyorHedef port, hesap kısıtlamaları
SOCKS5 04 / 05Hedef ana bilgisayara ulaşılamıyor / hedef bağlantıyı reddettiHedefin kendisi; Port Kontrol ile portu deneyin
SOCKS5 07 / 08Komut ya da adres türü desteklenmiyorİstemcinin istediği komut (ör. UDP) ve adres türü (ör. IPv6)
Bağlantı reddedildi / zaman aşımıProxy’nin kendisine ulaşılamadıProxy adresi ve portu, yerel güvenlik duvarı, IP beyaz liste kaydı

SOCKS5’te kullanıcı adı/parola reddedilirse sunucu sıfırdan farklı bir durum kodu döner ve RFC 1929 gereği bağlantıyı kapatır; istemci bunu çoğu zaman yalnız “bağlantı kapandı” olarak gösterir. Böyle bir durumda kimlik bilgisini ayrıca SOCKS5 Kontrol aracında denemek, sorunun proxy’de mi istemcide mi olduğunu ayırmayı kolaylaştırır.

Özet

Proxy sunucusu, bağlantıyı sizin adınıza kuran ve hedefe kendi IP adresini gösteren bir aracıdır. HTTP proxy HTTPS hedefler için CONNECT ile bir tünel açar ve içeriği göremez; SOCKS5 herhangi bir TCP bağlantısını aktarır ve adres çözümlemesini isteğe göre proxy’ye bırakır. Bir proxy seçerken yönünü, protokolünü, IP kaynağını ve davranışını ayrı ayrı sorun. Bu eksenlerin ürünlere nasıl karşılık geldiğini HTTP & SOCKS5 Proxy ve Datacenter Proxy sayfalarında görebilirsiniz.

Sık sorulanlar

Akılda kalan sorular

02Okumaya devam

Devamını okuyun

03Konuyla bağlantılı

Ürünler ve araçlar

Ürün sayfaları paketleri ve fiyatları gösterir; araçlar ise elinizdeki bir proxy’yi ya da adresi sınamanız içindir.

Ürünler

Araçlar

  • Proxy Kontrol

    HTTP, HTTPS ve SOCKS5 proxy listelerini canlılık, gecikme ve çıkış IP’si açısından test edin.

  • IP Sorgulama

    Genel IP adresinizi, ağ sağlayıcınızı (ASN) ve ters DNS kaydınızı görün.

  • HTTP Proxy Kontrol

    HTTP proxy’nizin düz istekleri ve HTTPS tünelini (CONNECT) doğru taşıyıp taşımadığını ölçün.