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.
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:
- 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. - Uygulama proxy’ye bir TCP bağlantısı açar ve
CONNECT ornek.com:443 HTTP/1.1isteğini gönderir. Kimlik doğrulama gerekiyorsa isteğeProxy-Authorizationbaşlığı eklenir. - Proxy kimlik bilgisini doğrular. Bilgi eksik ya da hatalıysa
407 Proxy Authentication Requiredyanıtını döner. - Proxy
ornek.comadını çözer, 443 numaralı porta kendi adresinden bağlanır ve istemciye200ile tünelin açıldığını bildirir. - Bundan sonra proxy yalnız bayt aktarır: tarayıcı ile
ornek.comarası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:
| Biçim | Anlamı | DNS’i kim çözer? |
|---|---|---|
http://PROXY_ADRESI:PORT | Proxy ile düz HTTP konuşulur; HTTPS hedefler için CONNECT tüneli kurulur | Proxy |
https://PROXY_ADRESI:PORT | İstemci proxy’ye TLS ile bağlanır; istemci ile proxy arası da şifrelenir | Proxy |
socks5://PROXY_ADRESI:PORT | SOCKS5; istemci adı kendisi çözüp proxy’ye IP gönderir | İstemci |
socks5h://PROXY_ADRESI:PORT | SOCKS5; alan adı proxy’ye iletilir | Proxy |
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)).
# 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:
- Yön: istemci adına mı (forward), sunucu adına mı (reverse) çalışıyor? Ayrıntı: forward ve reverse proxy farkı.
- Protokol: HTTP, TLS’li HTTP bağlantısı ya da SOCKS5.
- IP kaynağı: adres bir veri merkezine mi, bir ev internet sağlayıcısına mı, bir mobil operatöre mi kayıtlı? Ayrıntı: proxy türleri karşılaştırması.
- Davranış: adres sabit mi kalıyor, her oturumda ya da belirli aralıklarla mı değişiyor? Ayrıntı: rotating ve sticky oturum farkı.
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?
| Yapar | Yapmaz |
|---|---|
| Hedefe giden bağlantının kaynak IP’sini proxy’nin adresiyle değiştirir | Trafiğ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ğlar | Proxy 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ılabilir | Hedef 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:
| Yanıt | Anlamı | İlk bakılacak yer |
|---|---|---|
HTTP 407 | Proxy 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şir | Hedef adres ve port, proxy’nin izin verdiği portlar |
SOCKS5 02 | Bağlantıya proxy kuralları izin vermiyor | Hedef port, hesap kısıtlamaları |
SOCKS5 04 / 05 | Hedef ana bilgisayara ulaşılamıyor / hedef bağlantıyı reddetti | Hedefin kendisi; Port Kontrol ile portu deneyin |
SOCKS5 07 / 08 | Komut 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