Loglarda istemci IP'si yerine proxy / CDN IP'si görünüyor; ne yapmalıyım?
Kısa cevap
TR7'nin önünde bir CDN, yük dengeleyici ya da ters proxy varsa bağlantı TR7'ye o cihazın adresinden gelir. vService'e Trusted Proxy profili atanmamışsa TR7 iletilen başlıkları yok sayar ve WAF istemci olarak bu adresi kullanır. Etkisi yalnızca loglarla sınırlı değildir: Event Logs'taki Client IP, ülke ve ASN bilgisi, Frontend Blacklist ve Blacklist Protection, Teacher IP ile Conditional Learning IP eşleşmesi, kaynak IP'ye dayanan Whitelist Condition, AI Learning'in istemci, ülke ve ASN sayımı ve analizdeki Country Filter, Source IP Filter ile Skip Blacklist IPs de proxy adresiyle çalışır. Teşhis için Event Logs'ta varsayılan olarak gizli X-Forwarded-For kolonu açılır; Client IP birkaç sabit adresken bu kolonda farklı adresler görünüyorsa neden budur. Çözüm, Load Balancer → Profiles → Trusted Proxies ekranında proxy'nin gerçek adresi taşıdığı başlığı ve proxy'nin IP aralıklarını tanımlayan bir profil oluşturup profili HTTP vService'in Details listesindeki Trusted Proxy alanında seçmektir. Adres WAF denetiminden önce çözülür; profil atandıktan sonraki kayıtlarda Client IP gerçek istemciyi gösterir, önceki kayıtlar değişmez.
Sorun: WAF Bütün İstekleri Proxy'nin Adresinden Geliyor Görüyor
Event Logs'un Client IP kolonunda her kayıtta aynı birkaç adres (CDN ya da proxy sunucuları) tekrar ediyor; ülke ve ağ bilgisi de proxy'ye ait. Bu durumda WAF'ın IP'ye dayanan bütün işlevleri gerçek ziyaretçiye göre değil proxy'ye göre çalışır: bir saldırganın adresini kara listeye almak bütün proxy trafiğini engellemek anlamına gelir, test ekibinin IP'si Teacher olarak tanımlansa da tanınmaz ve öğrenmenin istemci ve ülke sayımları dolmaz.
Etkilenen WAF İşlevleri
TR7 istemci adresini WAF denetiminden önce çözer; profil atandığında aşağıdaki işlevlerin hepsi çözülen adresi kullanır (Çözülen adresi kullanan bileşenler).
| İşlev | Profil yokken kullandığı adres | Etkisi |
|---|---|---|
| Event Logs Client IP, Attacker Location, Ip Provider | Proxy | Kayıtlar proxy'nin adresini, ülkesini ve ağını gösterir |
| Frontend Blacklist, Blacklist Protection, Frontend Blacklist Exclusions | Proxy | Gerçek istemci kara listede olsa da eşleşmez; proxy adresi kara listeye alınırsa bütün trafik engellenir |
| Teacher IP, Conditional Learning IP | Proxy | Tanımlanan ekip adresi tanınmaz (Teacher trafiği tanınmıyor; neden?) |
| Kaynak IP koşullu Whitelist Condition | Proxy | Koşul gerçek istemciye göre değerlendirilmez |
| AI Learning (Client, Country, ASN eksenleri) | Proxy | Bütün trafik birkaç istemciden geliyor görünür; istemci ve ülke eşikleri dolmaz (AI Learning hiçbir öneri üretmiyor; neden?) |
| Analizdeki Country Filter, Source IP Filter, Skip Blacklist IPs | Proxy | Filtreler proxy'nin ülkesine ve adresine göre çalışır |
Kesin kurallar:
- Profil, yalnızca bağlantı Trusted Networks alanındaki ağlardan geldiğinde başlıktaki adresi istemci adresi yapar; diğer bağlantılarda başlık dikkate alınmaz ve bağlantının geldiği adres kullanılır.
- Çözüm geriye dönük değildir: profil atanmadan önce yazılmış Event Logs kayıtları ve öğrenme kayıtları proxy adresini taşımaya devam eder.
- Event Logs'taki X-Forwarded-For kolonu yalnızca isteğin X-Forwarded-For başlığını gösterir; Client IP'yi değiştirmez. Profil atandıktan sonra gerçek adres zaten Client IP'de yer aldığından bu kolon yalnızca proxy zincirini incelemek için açılır.
Nasıl Teşhis Edilir?
- Left Monitor Panel → WAF-Protected vServices → vService → Event Logs açılır (Event Logs'a erişim).
- Columns menüsünden varsayılan olarak gizli X-Forwarded-For kolonu eklenir.
- Client IP kolonunda aynı birkaç adres tekrar ederken X-Forwarded-For kolonunda farklı istemci adresleri görünüyorsa TR7 bir proxy arkasındadır ve vService'te çözümleme yoktur. Aynı karşılaştırma filtre şeridindeki Client IP ve X-Forwarded-For sekmeleriyle de yapılır.
- Bir kayda tıklanır; önizlemenin Summary sekmesindeki Attacker IP ve Request & Location sekmesindeki Ip provider değeri CDN ya da proxy işletmecisini gösteriyorsa teşhis kesinleşir.
- Proxy'nin gerçek adresi hangi başlıkta taşıdığı (ör. Cloudflare için
CF-Connecting-IP) ve yayımladığı IP aralıkları proxy ya da CDN sağlayıcısının dokümanından alınır.
Çözüm
Proxy'nin ağları ve gerçek adresin taşındığı başlık bir Trusted Proxy profilinde tanımlanır ve profil vService'e atanır. Profil aynı zamanda Load Balancer tarafındaki koşulları, logları ve Bot & DDoS Protection'ı da düzeltir; seçenekler arasındaki fark için: 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 Profili
- Nasıl çalışır Bağlantı güvenilen bir proxy ağından geliyorsa TR7 istemci adresini seçilen başlıktan okur ve WAF denetimi, loglar, kara listeler ve öğrenme bu adresi kullanır. Birden fazla kaynak tanımlanırsa sırayla değerlendirilir ve ilk eşleşen uygulanır.
- Nerede açılırLoad Balancer → Profiles → Trusted Proxies · vService → Details → Trusted Proxy
- Gereksinim Proxy ya da CDN'in gerçek adresi taşıdığı başlık ve yayımladığı IP aralıkları; Kurum Servisi tarafında değişiklik gerekmez
- 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 proxy ya da CDN'in yayımladığı IP aralıkları CIDR olarak girilir (en az bir tane); yeni satır (+) ile eklenir. Aralıklar TR7'ye kendiliğinden gelmez, sağlayıcının yayımladığı listeden alınır. Birden fazla proxy için Sources alanına (+) ile yeni kaynak eklenir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List ekranında WAF korumalı HTTP vService seçilip Edit tıklanır.
Details listesinde Trusted Proxy kutusu işaretlenir ve Trusted Proxy Profile alanında 5. adımda kaydedilen profil seçilir. Profil önceden oluşturulmadıysa bu alanın açılır listesindeki Add ile aynı form buradan da açılabilir (vService'e nasıl eklenir).
Save tıklanır; çözümleme ayrı bir dağıtım adımı olmadan bundan sonra gelen isteklere uygulanır. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Profil atandıktan sonra WAF tarafında
Profil atanmadan önce proxy adresine göre girilmiş kayıtlar kendiliğinden değişmez; gerçek istemci adreslerine göre elle yeniden girilir: Frontend Blacklist ve Frontend Blacklist Exclusions (Whitelist & Blacklist penceresi), Teacher IP ve Conditional Learning IP (Learning Methods penceresi) ve kaynak IP'ye dayanan Whitelist Condition. Profil öncesi öğrenme kayıtlarıyla çalıştırılacak bir analizde Country filter ve Source IP Filter proxy adreslerine göre çalışacağından analiz dönemi profil atandıktan sonrasına çekilir (Analize saldırı trafiğinin karışmasını nasıl önlerim (ülke, kara liste, bot, durum kodu, kaynak IP filtreleri)?).
Doğrulama
Event Logs'ta araç çubuğundaki Refresh tıklanır; profil atandıktan sonra yazılan kayıtların Client IP kolonu X-Forwarded-For kolonuyla karşılaştırılır.
Client IP'de farklı ziyaretçi adresleri; proxy aralıkları yokvService'in Load Balancer Management ekranında gerçek IP'nin profil üzerinden çözüldüğünü belirten cümleye bakılır.
The real client IP is resolved from a header through the <profil> profileSık Yapılan Hatalar
Güvenilen ağları geniş tutmak
Trusted Networks alanına proxy'nin aralıkları yerine geniş bir aralık yazılırsa doğrudan bağlanan bir istemci başlığı kendisi yazarak sahte bir adres bildirebilir; kara liste atlatılabilir ya da Teacher IP taklit edilebilir. Alana yalnızca proxy ya da CDN'in yayımladığı aralıklar girilir (Trusted Proxy yanlış yapılandırılırsa ne tür bir güvenlik riski oluşur (IP Spoofing)?).
- vService'teki X-Forwarded-For seçeneğinin gerçek IP'yi çözdüğünü sanmak. vService'teki seçenek yalnızca Kurum Servisine giden isteğe başlık ekler; gelen başlıktan gerçek adresi Trusted Proxy profili çözer.
- Profili oluşturup vService'e atamamak. Atanmayan profilin etkisi yoktur; profil vService'in Details listesindeki Trusted Proxy alanında seçilip Save tıklanır.
- Geçmiş kayıtların düzelmesini beklemek. Yalnızca profil atandıktan sonraki istekler gerçek adresle kaydedilir.
- Kullanımdaki profili silmek. Silinen profili kullanan vService'te çözümleme devre dışı kalır ve istemciler yeniden proxy adresiyle görünür; silmeden önce profil önizlemesindeki Used in sekmesi kontrol edilir.
- Yalnızca logları düzeltmeye odaklanmak. Kara liste, Teacher, Conditional learning, Whitelist condition ve AI learning de aynı adresi kullanır; profil sonrasında bu listeler gerçek adreslere göre gözden geçirilir (Trusted Proxy ile çözülen IP hangi bileşenlerde kullanılır (log, condition, WAF, Bot & DDoS Protection)?).
Dokümantasyonda nasıl yapılır
İlgili sorular
- TR7'nin önünde Cloudflare / Akamai gibi bir CDN var; gerçek istemci IP'sini nasıl alırım (Trusted Proxy)?
- TR7 önünde CDN / proxy varsa WAF gerçek istemci IP'sini nasıl görür?
- Teacher trafiği tanınmıyor; neden?
- Trusted Proxy ile çözülen IP hangi bileşenlerde kullanılır (log, condition, WAF, Bot & DDoS Protection)?
