Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Web Sunucusu Önünde CDN Kullanımı: Cloudflare ile Nginx/LiteSpeed Entegrasyonu ve Ayarları

✖ Kapat
Duyuru
✖ Kapat
Duyuru

devron

Üye
Katılım
14 Mart 2026
Mesajlar
50
Merhaba arkadaşlar, bugün sizlere web sunucularımızın önüne CDN (Content Delivery Network) koymanın en önemli adımlarından birini, Cloudflare ile doğru entegrasyonu ve gerçek IP adreslerini nasıl yakalayacağımızı anlatacağım. Bu ayarları yapmazsanız, sunucu loglarınızda tüm trafik Cloudflare'in IP'lerinden geliyor gibi görünür, bu da analiz yapmayı ve güvenlik önlemlerini zorlaştırır. Benim sunucularda genelde kullandığım yöntemleri adım adım paylaşıyorum.

🌐 Cloudflare Nedir ve Neden Gerçek IP'yi Bilmeliyiz?

Cloudflare, sitenizi DDoS saldırılarına karşı koruyan, içeriği dünyanın dört bir yanındaki sunuculardan hızlıca dağıtan ve SSL sertifikalarını yönetmenizi sağlayan harika bir hizmettir. Ancak, tüm trafik Cloudflare üzerinden geçtiği için, web sunucunuz (Nginx veya LiteSpeed) bağlantıları Cloudflare'in sunucu IP'lerinden alır.

Bu durumda, bir saldırı tespit ettiğinizde veya bir kullanıcının aktivitesini loglardan takip etmek istediğinizde elinizde sadece Cloudflare IP'leri olur. Asıl saldırganın IP'sini bulamazsınız. Ayrıca, rate-limiting veya IP bazlı kısıtlama kurallarınız da çalışmaz. Şu ayara çok dikkat etmelisiniz, çünkü güvenliğin temel taşlarından biridir.

⚙️ Adım 1: Cloudflare IP Aralıklarını Almak

Cloudflare, kullandığı tüm IP adreslerini public olarak yayınlar. İlk yapmamız gereken, bu IP listesini almak ve sunucumuzda bu IP'lerden gelen bağlantılara güvenmek (trust) olduğunu söylemek.

Cloudflare'in IPv4 ve IPv6 adreslerini aşağıdaki komutlarla sunucunuza indirebilirsiniz. Ben genelde bir script ile otomatikleştiririm ama manuel kurulum için şu adımları takip edin.

Bash:
# Cloudflare IPv4 adres listesini indir
curl -s https://www.cloudflare.com/ips-v4 -o /tmp/cf_ips_v4.txt

# Cloudflare IPv6 adres listesini indir
curl -s https://www.cloudflare.com/ips-v6 -o /tmp/cf_ips_v6.txt

Bu dosyaların içeriğini kontrol etmek için `cat /tmp/cf_ips_v4.txt` komutunu kullanabilirsiniz. Her satırda bir IP aralığı (CIDR formatında) göreceksiniz.

🔧 Adım 2: Nginx için Gerçek IP Yapılandırması

Nginx'te, gelen bir bağlantının gerçek IP'sini anlamak için `ngx_http_realip_module` modülünü kullanırız. Öncelikle bu modülün kurulu olduğundan emin olun (`nginx -V 2>&1 | grep -o realip`).

Ana yapılandırma dosyanız /etc/nginx/nginx.conf içindeki `http` bloğuna veya ilgili site konfigürasyonunuzun `server` bloğuna aşağıdaki satırları eklemelisiniz.

NGINX:
# Cloudflare'den gelen IPv4 trafiği için güvenilir IP listesini belirle
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

# Gerçek IP adresinin hangi header alanında tutulduğunu belirt (Cloudflare standartı CF-Connecting-IP'dir)
real_ip_header CF-Connecting-IP;

# Eğer CF-Connecting-IP header'ı yoksa, X-Forwarded-For header'ını kullan (opsiyonel, ek güvenlik için)
# real_ip_header X-Forwarded-For;
real_ip_recursive on;

Yukarıdaki IP listesi örnektir, güncel listeyi her zaman Cloudflare'in kendi sitesinden kontrol etmenizi öneririm. Bu işlemi otomatikleştirmek için aşağıdaki gibi bir script yazabilirsiniz.

⚠️ Dikkat Edilmesi Gerekenler (Nginx)

`set_real_ip_from` satırlarını, Cloudflare dashboard'undaki "DNS" ayarlarında "Proxy" (turuncu bulut) aktif olan tüm domainleriniz için eklemelisiniz.
Eğer başka bir proxy (örn: Load Balancer) daha kullanıyorsanız, onun IP'lerini de bu listeye eklemelisiniz.
Konfigürasyonu değiştirdikten sonra mutlaka test edin: `nginx -t`
Test başarılı ise servisi yeniden başlatın: `systemctl reload nginx` veya `service nginx reload`

🔧 Adım 3: LiteSpeed Web Server için Gerçek IP Yapılandırması

LiteSpeed kullanıyorsanız, işlem biraz daha farklı. LiteSpeed Admin Konsolu (WebAdmin GUI) üzerinden veya doğrudan yapılandırma dosyaları ile bu ayarı yapabilirsiniz.

/usr/local/lsws/conf/httpd_config.conf dosyasını açın ve "External Settings" bölümüne aşağıdakine benzer satırlar ekleyin.

Kod:
# Cloudflare IP'lerini güvenilir olarak tanımla
RewriteCond %{REMOTE_ADDR} ^103\.21\.244\.[0-9]+$ [OR]
... (Tüm Cloudflare IP aralıklarını bu şekilde eklemek PRATİK DEĞİLDİR)

Ancak, LiteSpeed'te daha pratik ve yönetilebilir yöntem, Cloudflare IP'lerini bir "Access Control" listesine eklemek ve gerçek IP'yi bir header'dan okumasını söylemektir. En etkili yöntem, LSWS 5.2 ve sonrası için "LiteSpeed Cache" eklentisi veya "Cloudflare" eklentisi kullanmaktır. Eğer eklenti kullanmıyorsanız, .htaccess dosyanıza şu kuralları ekleyebilirsiniz:

Kod:
# .htaccess dosyasına ekleyin
<IfModule LiteSpeed>
# Cloudflare IP aralıklarını buraya manuel eklemek yerine,
# Aşağıdaki kural ile CF-Connecting-IP header'ını güvenilir kabul et
SetEnvIf CF-Connecting-IP "^.\..\..\.." CF_IP=$0
</IfModule>

LiteSpeed için en temiz çözüm, Cloudflare geliştiricilerinin önerdiği gibi, sunucunuzda bir script çalıştırarak Cloudflare IP listesini düzenli olarak çekip LiteSpeed yapılandırmasına eklemektir. Bu konuda detaylı bir script paylaşmak isterdim ancak mevcut konfigürasyonunuza bağlı olduğu için genel bir komut vermek doğru olmaz. Sorusu olan aşağıya yazsın, özel durumunuza göre yardımcı olmaya çalışayım.

✅ Son Kontroller ve Test

Ayarlarınızı yaptıktan sonra mutlaka test edin. Aşağıdaki basit PHP dosyasını web kök dizininize (`/var/www/html/testip.php` gibi) kaydedip tarayıcıdan açarak hem sunucunun gördüğü IP'yi hem de Cloudflare header'larını kontrol edebilirsiniz.

PHP:
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri