Ters Proxy (Reverse Proxy) Nedir?
Sunucu tarafında çalışan proxy: yük dengeleme, önbellek ve SSL sonlandırma.
Ters proxy (reverse proxy), bir sitenin önünde duran, ziyaretçilerden gelen istekleri karşılayıp arkadaki asıl sunucuya ileten sunucu. Ziyaretçi ters proxy ile konuşuyor; asıl sunucuyu hiç görmüyor.
Bildiğimiz proxy'nin aynası: normal proxy kullanıcıyı temsil edip onun adına sitelere gidiyor, ters proxy siteyi temsil edip onun adına ziyaretçileri karşılıyor.
| İleri proxy | Ters proxy | |
|---|---|---|
| Kimin için çalışır | Kullanıcı | Site |
| Kim kurar | Kullanıcı ya da kurum | Site sahibi |
| Neyi gizler | Kullanıcının adresini | Sunucunun adresini |
| Karşı taraf farkında mı | Site proxy adresini görür | Ziyaretçi genellikle fark etmez |
| Tipik örnek | Tarayıcıdaki proxy ayarı | CDN, yük dengeleyici |
Ne işe yarıyor?
- Yük dengeleme: gelen istekleri arkadaki birden fazla sunucuya dağıtıyor. Bir sunucu çökerse trafiği diğerlerine veriyor; ziyaretçi bir şey fark etmiyor.
- Önbellek: sık istenen sayfaları ve dosyaları kendisi saklayıp veriyor. Asıl sunucuya hiç ulaşmayan istek sunucuyu hiç yormuyor.
- SSL sonlandırma: şifreli bağlantıyı ters proxy açıyor, sertifika onun üzerinde duruyor. Arkadaki sunucular şifre çözme yükünden kurtuluyor ve sertifika tek yerden yönetiliyor.
- Saldırı filtreleme: DDoS korumasının büyük kısmı bu katmanda yapılıyor. Kötü niyetli trafik asıl sunucuya ulaşmadan eleniyor.
-
Tek kapı: farklı sunucularda çalışan uygulamaları tek
alan adı altında topluyor:
/blogbir sunucuya,/magazabaşka birine gidiyor.
Ters proxy olarak en sık kullanılan yazılımlar nginx, HAProxy, Caddy, Traefik ve Apache. Hizmet olarak satılan ters proxy'nin en bilinen hâli ise CDN: site sahibi alan adını CDN'e yönlendiriyor, CDN dünyanın farklı yerlerindeki düğümleriyle ziyaretçileri karşılıyor.
Sitenin IP adresi aslında kimin?
Ters proxy'nin ziyaretçi açısından en görünür etkisi burada. Bir sitenin adresini sorgulayın:
- DNS sorgulama aracında sitenin A kaydına bakın.
- Çıkan adresi WHOIS sorgusuna verin.
- Adresin sahibi olarak barındırma firması yerine bir CDN şirketi görünüyorsa site bir ters proxy arkasında.
Bu, "bu site hangi sunucuda, hangi ülkede" sorusunun cevabını değiştiriyor: gördüğünüz adres proxy'nin, gördüğünüz konum da çoğu zaman size en yakın düğümün konumu. Aynı site İstanbul'dan sorgulanınca bir adres, Frankfurt'tan sorgulanınca başka bir adres döndürebiliyor. IP kime ait yazısındaki yöntemler bu durumda sitenin değil proxy'nin sahibini buluyor.
Sunucunun gerçek adresini gizlemek ters proxy'nin bilinçli bir faydası:
saldırgan hedefi göremeyince doğrudan ona yüklenemiyor. Ama gizleme
kusursuz değil. Aynı sunucudan giden e-postaların başlıkları, proxy'ye
alınmamış bir alt alan adı (mail., ftp.) ya da
proxy'ye geçmeden önceki eski DNS kayıtları gerçek adresi ele
verebiliyor.
Başlıklardan anlamak
Daha doğrudan yol HTTP yanıt başlıkları. HTTP başlık kontrol aracına adresi yazın ve şu satırlara bakın:
| Başlık | Ne söyler |
|---|---|
| Server: cloudflare | Site Cloudflare arkasında |
| CF-Ray | Cloudflare; değerin sonundaki kod isteği karşılayan düğüm |
| Via | İstek bir ya da daha fazla proxy'den geçti; değer proxy'yi adlandırır |
| X-Cache: HIT / MISS | Yanıt önbellekten mi geldi, sunucudan mı |
| Age | Önbellekteki kopyanın kaç saniyelik olduğu |
| X-Amz-Cf-Id | Amazon CloudFront |
Age başlığı site sahiplerinin sık yaşadığı bir sorunu
açıklıyor: sayfa sunucuda değişmiş olsa bile ters proxy eski kopyayı
süresi dolana kadar vermeye devam ediyor. "Güncelledim ama görünmüyor"
şikâyetinin büyük kısmı bu. Değeri büyük bir yanıt, sunucudan değil
proxy'nin hafızasından geliyor.
Arkadaki sunucu ziyaretçiyi nasıl görüyor?
Ters proxy'nin bir yan etkisi var: asıl sunucuya gelen her bağlantı proxy'den geliyor. Sunucunun kayıtlarına bakılırsa bütün ziyaretçiler birkaç proxy adresinden gelmiş gibi görünüyor.
Bunu çözmek için proxy isteği iletirken bir başlık ekliyor:
X-Forwarded-For ya da onun standart hâli
Forwarded. İçinde ziyaretçinin gerçek adresi yazıyor.
Cloudflare ayrıca CF-Connecting-IP kullanıyor.
Burada bilinen bir güvenlik hatası var: bu başlığı herkes yazabiliyor. Sunucu, başlığı yalnızca kendi proxy'sinden gelen isteklerde okumalı. Doğrudan gelen bir istekteki değere güvenen uygulama, saldırganın uydurduğu adresi kayda geçiriyor: giriş denemesi sınırları, adres bazlı yasaklar ve erişim kayıtları yanıltılabiliyor.
Aynı başlık sizin için de geçerli. Ters proxy arkasındaki bir siteyi ziyaret ettiğinizde adresiniz bu başlıkla arka uca ulaşıyor. Yani ters proxy ziyaretçiyi gizlemiyor; sunucuyu gizliyor. Adresinizin sitelere nasıl göründüğünü sorgulama aracında görebilirsiniz.
Şeffaf proxy ile farkı
İkisi de kullanıcının ayar yapmadığı proxy'ler, bu yüzden karışıyor. Ama yer ve amaç farklı. Şeffaf proxy sizin tarafınızda — operatörün ya da kurumun ağında — trafiğinizi yakalıyor ve sizin haberiniz olmadan araya giriyor. Ters proxy sitenin tarafında duruyor ve sitenin kendi tercihi; ziyaretçinin trafiğine değil, sitenin kendi trafiğine hükmediyor.
Evde ters proxy
Evde NAS, kamera kaydedici ya da ev otomasyonu çalıştıranlar da ters proxy kullanıyor: birden fazla servisi tek bir port arkasında toplamak için. Her servis için ayrı port açmak yerine yalnızca 443 portu dışarıya açılıyor; ters proxy gelen isteği alan adına bakarak doğru cihaza gönderiyor ve sertifikayı tek yerden yönetiyor. Portun kendisi modemde port yönlendirme ile açılıyor.
Bu, açık port sayısını azaltıyor ama tek başına güvenlik sağlamıyor: arkadaki servisin oturum açma ekranı yine internete açık kalıyor. Kimlik doğrulamayı proxy katmanına eklemek ya da servisi hiç açmayıp yalnızca VPN üzerinden erişmek daha sağlam bir yol.
Sıkça sorulan sorular
Ters proxy nedir?
Bir sitenin önünde duran, ziyaretçi isteklerini karşılayıp arkadaki asıl sunucuya ileten sunucudur. Yük dengeleme, önbellek, SSL sonlandırma ve saldırı filtreleme için kullanılır.
Ters proxy ile normal proxy arasındaki fark ne?
Normal proxy kullanıcı adına çalışır ve kullanıcının adresini gizler. Ters proxy site adına çalışır ve sunucunun adresini gizler. Birini kullanıcı kurar, diğerini site sahibi.
Bir sitenin ters proxy arkasında olduğunu nasıl anlarım?
Sitenin adresini WHOIS ile sorgulayın; sahibi bir CDN şirketiyse site proxy arkasındadır. HTTP yanıt başlıklarında Via, X-Cache, CF-Ray gibi satırlar da bunu gösterir.
Ters proxy benim IP adresimi gizler mi?
Hayır. Ters proxy sunucuyu gizler. Sizin adresiniz X-Forwarded-For gibi bir başlıkla arkadaki sunucuya iletilir.
Cloudflare bir ters proxy mi?
Evet. Alan adı Cloudflare’e yönlendirildiğinde ziyaretçiler önce Cloudflare düğümlerine bağlanır, istekler oradan sitenin asıl sunucusuna iletilir. DNS’te görünen adres Cloudflare’e aittir.