TR7'nin önünde Cloudflare / Akamai gibi bir CDN var; gerçek istemci IP'sini nasıl alırım (Trusted Proxy)?
Kısa cevap
Load Balancer → Profiles → Trusted Proxies ekranında bir Trusted Proxy profili oluşturulur: Real IP from alanında CDN'in başlığı seçilir (Cloudflare için Custom header + CF-Connecting-IP, Akamai için True-Client-IP, genel proxy zinciri için X-Forwarded-For (last / most trusted)) ve Trusted Networks alanına CDN'in yayımladığı IP aralıkları elle girilir. Profil HTTP vService'in Details listesindeki Trusted Proxy alanında seçilir. TR7 yalnızca bu ağlardan gelen bağlantılarda başlıktaki adresi istemci IP'si olarak kullanır; Conditions, WAF, Bot & DDoS Protection (Bot Protection, L7 DDoS Protection, IP Reputation Protection) ve loglar bu adresi görür.
Sorun: TR7 Bütün İstekleri CDN'in IP'lerinden Geliyor Görüyor
TR7'nin önünde bir CDN ya da proxy varsa, TR7'ye bağlanan istemci CDN'in edge sunucusudur. Profil atanmadığında TR7 iletilen başlıkları (X-Forwarded-For vb.) yok sayar ve bağlantının geldiği adresi kullanır. Bu durumda loglar, IP kara listeleri, ülke denetimleri, L7 DDoS Protection'ın kaynak IP sayaçları ve WAF gerçek ziyaretçiyi değil CDN'i görür; bir ziyaretçiyi engellemek bütün CDN trafiğini engellemek anlamına gelir. Gerçek adres CDN'in eklediği başlıkta durur, ama bu başlığa yalnızca CDN'den geldiğinde güvenilmelidir.
Çözüm: 2 Yöntem
İki yöntem aynı profili farklı ekranlardan oluşturur; sonuç aynıdır.
| Durumunuz | Uygun yöntem |
|---|---|
| Profili önceden oluşturup bir ya da birden fazla vService'e atamak istiyorum | Yöntem 1: Profiles menüsünden |
| Profili vService'i düzenlerken oluşturmak istiyorum | Yöntem 2: vService formundan yeni profil |
Yöntem 1: Profiles Menüsünden Önerilen
- Nasıl çalışır Profil, güvenilen ağlardan gelen bağlantılarda belirtilen başlıktaki adresi istemci adresi yapar; diğer bağlantılarda başlık dikkate alınmaz (silinmez, Kurum Servisine olduğu gibi iletilir). Birden fazla kaynak varsa sırayla değerlendirilir ve ilk eşleşen uygulanır.
- Nerede açılırLoad Balancer → Profiles → Trusted Proxies · vService → Details → Trusted Proxy
- Gereksinim CDN'in yayımladığı IP aralıkları; HTTP vService
- vService tipi HTTP
Adım adım yapılandırma
Sol alttaki TR7 logosuyla Configuration Menu açılır; Load Balancer → Profiles → Trusted Proxies yolu izlenip Add'e tıklanır (Profil ekleme formu).
Trusted Proxy Profile Name alanına benzersiz bir ad yazılır.
Sources altındaki ilk kaynakta Real IP from seçilir: Cloudflare için Custom header ve Header Name = CF-Connecting-IP; Akamai için Custom header ve True-Client-IP; birden fazla proxy katmanı olan genel yapılarda X-Forwarded-For (last / most trusted) (varsayılan).
Trusted Networks alanına CDN'in yayımladığı IPv4 ve IPv6 aralıkları CIDR olarak girilir (en az bir tane; ağ maskesi kutusu 24 ile gelir, IPv6'da elle düzeltilir); yeni satır (+) ile eklenir. Aralıklar TR7'ye kendiliğinden gelmez, CDN'in yayımladığı listeden alınır. Birden fazla CDN için Sources alanına (+) ile yeni kaynak eklenir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit ile düzenleme formu açılır.
Details listesinde Trusted Proxy kutusu işaretlenir ve Trusted Proxy Profile alanında profil seçilir.
Save butonuna tıklanır. Cluster'da değişiklik varsayılan olarak eş cihaza kendiliğinden aktarılır; Manual Sync Mode açıksa Synchronize ile gönderilir.
Doğrulama
vService'in HTTP Logs ekranında istemci adresi ve konum sütunlarında CDN adresleri yerine farklı ziyaretçi IP'leri görülür.
Ziyaretçi IP'leri (CDN aralıkları değil)vService'in Load Balancer Management ekranında gerçek IP'nin profil üzerinden çözüldüğünü belirten cümle görünür.
Trusted proxy cümlesiYöntem 2: vService Formundan Yeni Profil
- Nasıl çalışır Profil vService formundan açılan pencerede oluşturulur ve alana kendiliğinden seçilir.
- Nerede açılır vService → Details → Trusted Proxy → açılır listedeki Add
- Gereksinim CDN'in yayımladığı IP aralıkları; HTTP vService
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit ile açılır.
Details listesinde Trusted Proxy kutusu işaretlenir; Trusted Proxy Profile alanının açılır listesindeki Add ile profil penceresi açılır.
Trusted Proxy Profile Name, Real IP from (gerekirse Header Name) ve Trusted Networks Yöntem 1'in 2–4. adımlarındaki gibi girilir.
Penceredeki Add butonuna tıklanır; profil alana kendiliğinden seçilir.
vService formu Save ile kaydedilir.
Doğrulama
vService'in HTTP Logs ekranında CDN adresleri yerine farklı ziyaretçi IP'leri görülür.
Ziyaretçi IP'leriSık Yapılan Hatalar
- X-Forwarded-For seçeneğinin gerçek IP'yi çözdüğünü sanmak. vService'teki X-Forwarded-For seçeneği yalnızca Kurum Servisine giden isteğe başlık ekler; gelen başlıktan gerçek IP'yi Trusted Proxy çözer. Profil atanmışsa Kurum Servisine giden X-Forwarded-For de çözülen adresi taşır.
- Profili oluşturup vService'e atamamak. Atanmayan profilin etkisi yoktur.
- Güvenilen ağları çok geniş girmek. 0.0.0.0/0 gibi aralıklar uygulanır ve herkesin başlığa sahte IP yazmasına izin verir (form /0 ve /1 önekinde uyarı gösterir ama kaydı engellemez); yalnızca CDN'in aralıkları girilir (Trusted Proxy yanlış yapılandırılırsa ne tür bir güvenlik riski oluşur (IP Spoofing)?).
- CDN aralıklarını güncellememek. CDN yeni aralık eklediğinde bu aralıklardan gelen isteklerde gerçek IP çözülmez; liste düzenli kontrol edilir.
- TR7'ye doğrudan erişime izin vermek. TR7'ye yalnızca CDN'den erişilmesi firewall ile sağlanır; doğrudan gelen bağlantılarda başlık zaten kullanılmaz ama ziyaretçiler CDN'i atlamış olur.
Dokümantasyonda nasıl yapılır
İlgili sorular
- Trusted Proxy profilindeki "Real IP from" seçenekleri (X-Forwarded-For (last / most trusted), X-Forwarded-For (first), Custom Header) arasındaki fark nedir?
- Trusted Proxy yanlış yapılandırılırsa ne tür bir güvenlik riski oluşur (IP Spoofing)?
- Trusted Proxy ile çözülen IP hangi bileşenlerde kullanılır (log, condition, WAF, Bot & DDoS Protection)?
