Web sitenizin önüne Cloudflare koyun
Sitenizi Cloudflare üzerinden yayınlayın: ad sunucularını değiştirin, proxy kayıtlarını seçin, Full (strict) SSL kullanın, ziyaretçi IP'lerini geri getirin.
- Orta
- 25 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13
Bu sayfada
- Başlamadan önce
- 1. adım: Siteyi Cloudflare'e ekleyin
- 2. adım: Neyin proxy'leneceğini seçin
- 3. adım: Ad sunucularını değiştirin
- 4. adım: SSL/TLS'i Full (strict) yapın
- 5. adım: Ziyaretçinin IP adresini geri getirin
- 6. adım: Web trafiğine yalnızca Cloudflare'den izin verin
- Önbelleğin temelleri
- Sorun giderme
- Sonraki adımlar
Cloudflare'in ters proxy'si ziyaretçileriniz ile sunucunuz arasında durur: önbelleğe alınmış dosyaları ziyaretçiye yakın konumlardan sunar, kötü niyetli trafiği filtreler ve sunucunuzun gerçek adresini gizler. Bu rehber, HyperDC sunucusundaki bir siteyi HTTPS'i, kayıtları veya erişim denetimini bozmadan Cloudflare'in arkasına alır. example.com ve 203.0.113.10 yerine kendi değerlerinizi yazın.
Başlamadan önce
- Bir Cloudflare hesabı ve sunucuda, tercihen zaten HTTPS ile çalışan siteniz.
- Alan adının ad sunucusu ayarına erişim: HyperDC alan adı için Alan Adı › Alan Adlarım › Alan Adı Yönetimi › İsim Sunucuları.
- Taşıma sırasında hiçbir şey kaybolmasın diye mevcut DNS kayıtlarınızın listesi (web sitesi, posta, doğrulamalar).
1. adım: Siteyi Cloudflare'e ekleyin
Cloudflare panelinde example.com alan adını ekleyin. Cloudflare mevcut kayıtlarınızı tarar; bunları listenizle karşılaştırın ve eksikleri, özellikle MX, SPF, DKIM ve DMARC kayıtlarını ekleyin.
2. adım: Neyin proxy'leneceğini seçin
| Kayıt | Proxy durumu |
|---|---|
A @ ve A veya CNAME www (web sitesi) | Proxied |
MX ve posta sunucusunun A kaydı (mail) | DNS only |
| SSH, FTP, oyun sunucuları, VPN kayıtları | DNS only |
| TXT (SPF, DKIM, DMARC, doğrulamalar) | Proxy'lenmez (TXT kayıtları asla proxy'lenmez) |
Posta, web sitesiyle aynı IP adresinden gönderiliyorsa MX kaydı sunucunun adresini ele verir. Mümkünse postayı başka bir sunucudan veya IP'den gönderin.
3. adım: Ad sunucularını değiştirin
Cloudflare bölgeniz için iki ad sunucusu gösterir. Bunları kayıt firmanızda girin; HyperDC alan adı için Yeni NameServer Ekle'yi seçin, ikisini girin ve Nameserverları Değiştir'i seçin. Eski DNS sağlayıcısında DNSSEC açıksa önce eski DS kaydını kaldırın.
Doğrulama: dig NS example.com +short Cloudflare ad sunucularını döndürür ve Cloudflare paneli bölgeyi etkin olarak gösterir.
4. adım: SSL/TLS'i Full (strict) yapın
SSL/TLS › Overview altında Full (strict) seçin. Bunun için sunucunuzda geçerli bir sertifika gerekir:
- Herkese açık bir sertifika (örneğin Let's Encrypt) çalışmaya devam eder ve site Cloudflare olmadan da çalışır.
- Cloudflare Origin CA sertifikası (SSL/TLS › Origin Server altında) yalnızca Cloudflare tarafından güvenilir sayılır ve uzun yıllar geçerli olabilir. Her sertifika gibi kurun; bkz. SSL sertifikası kurun.
Flexible modundan kaçının: Cloudflare'den sunucunuza giden trafiği şifresiz gönderir ve sunucunuz HTTP'yi HTTPS'e yönlendiriyorsa ziyaretçiler bir yönlendirme döngüsüne girer.
5. adım: Ziyaretçinin IP adresini geri getirin
Proxy arkasında her istek bir Cloudflare adresinden gelir. Web sunucunuza, yalnızca Cloudflare aralıklarına (Cloudflare'in IP aralıkları sayfasında listelenir) güvenerek gerçek adresi CF-Connecting-IP başlığından almasını söyleyin.
nginx
Her Cloudflare aralığı için bir set_real_ip_from satırıyla /etc/nginx/conf.d/cloudflare-realip.conf dosyasını oluşturun:
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
real_ip_header CF-Connecting-IP;IPv6 aralıkları dahil listedeki her aralığı ekleyin, ardından sudo nginx -t ve sudo systemctl reload nginx çalıştırın.
Apache
Modülü etkinleştirin ve güvenilen aralıkları ekleyin:
sudo a2enmod remoteipRemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22Listedeki her aralığı ekleyin, LogFormat içinde %h yerine %a kullanın, ardından sudo apachectl configtest ve sudo systemctl reload apache2 çalıştırın.
Doğrulama: siteyi ziyaret ettikten sonra erişim kaydındaki en yeni satır bir Cloudflare adresi değil, kendi IP adresinizi gösterir. Cloudflare aralıklarını ara sıra değiştirir; zaman zaman gözden geçirin.
6. adım: Web trafiğine yalnızca Cloudflare'den izin verin
Saldırganlar sunucunuzun IP adresini bulursa proxy'yi atlayabilir. UFW ile 80 ve 443 portlarına yalnızca Cloudflare aralıklarından izin verin ve genel kuralı kaldırın:
for ip in $(curl -s https://www.cloudflare.com/ips-v4) $(curl -s https://www.cloudflare.com/ips-v6); do sudo ufw allow proto tcp from "$ip" to any port 80,443; done
sudo ufw delete allow 80,443/tcp
sudo ufw status numberedSSH'ye eskisi gibi izin vermeye devam edin. Cloudflare yeni aralıklar yayınladığında döngüyü yeniden çalıştırın.
Önbelleğin temelleri
Cloudflare statik dosyaları (görseller, CSS, JavaScript) varsayılan olarak önbelleğe alır ve Cache-Control başlıklarınıza uyar. Bir önbellek kuralı eklemedikçe HTML sayfaları önbelleğe alınmaz. Bir yayından sonra ziyaretçiler eski dosyaları görüyorsa Caching › Configuration › Purge Cache kullanın.
Sorun giderme
521 hatası (web sunucusu kapalı). Sunucunuz Cloudflare'in bağlantısını reddetti: web sunucusu durmuş ya da güvenlik duvarı Cloudflare aralıklarına izin vermiyor.
522 veya 524 hatası (zaman aşımı). Sunucu zamanında yanıt vermedi; yükünü ve kayıtlarını kontrol edin. Bkz. web sitesi 502, 503 ve 504 hataları.
525 veya 526 hatası (SSL). Sunucuyla el sıkışma başarısız oldu ya da mod Full (strict) iken sertifikası geçersiz. Geçerli bir sertifika veya Origin CA sertifikası kurun.
Çok fazla yönlendirme. Sunucu HTTPS'e yönlendirirken SSL modu Flexible. Full (strict) moduna geçin.
Posta çalışmayı durdurdu. MX hedefi proxy'leniyor. Posta kaydını DNS only yapın.
Sonraki adımlar
- Sellere karşı koruma: DDoS korumasının temelleri.
- Kaynak sunucudaki sertifikalar: SSL sertifikası kurun.
Sık sorulan sorular
Hangi kayıtlar proxy'lenmeli?
Kök ve www gibi web kayıtları proxy'lenebilir (turuncu bulut). Posta, SSH, FTP ve HTTP dışı diğer servisler yalnızca DNS kalmalıdır; çünkü proxy yalnızca desteklenen portlarda web trafiği taşır.
Hangi SSL/TLS modunu kullanmalıyım?
Full (strict). Cloudflare ile sunucunuz arasındaki trafiği şifreler ve sunucunun sertifikasını kontrol eder. Flexible bu bağlantıyı şifresiz bırakır ve çoğu zaman yönlendirme döngülerine yol açar.
Kayıtlarım neden ziyaretçiler yerine Cloudflare adreslerini gösteriyor?
İstekler sunucunuza Cloudflare'den ulaşır. nginx real_ip veya Apache mod_remoteip'i, yalnızca Cloudflare aralıklarına güvenerek ziyaretçi adresini CF-Connecting-IP başlığından okuyacak şekilde yapılandırın.
Alan adımın kayıt firmasını değiştirmem gerekir mi?
Hayır. Yalnızca ad sunucularını Cloudflare'in atadıklarıyla değiştirirsiniz. HyperDC'de kayıtlı bir alan adı için bunu Alan Adı Yönetimi › İsim Sunucuları altında yapın.
Cloudflare sunucumdaki güvenlik duvarının yerini alır mı?
Hayır. Proxy'lenen web trafiğini korur. Sunucunuzun güvenlik duvarını koruyun ve saldırganlar proxy'yi atlayamasın diye web portlarına yalnızca Cloudflare aralıklarından izin verin.
Kaynaklar
- developers.cloudflare.com/fundamentals/manage-domains/add-site
- developers.cloudflare.com/dns/proxy-status
- developers.cloudflare.com/ssl/origin-configuration/ssl-modes
- developers.cloudflare.com/ssl/origin-configuration/origin-ca
- developers.cloudflare.com/support/troubleshooting/restoring-visitor…
- cloudflare.com/ips
- nginx.org/en/docs/http/ngx_http_realip_module.html
- httpd.apache.org/docs/2.4/mod/mod_remoteip.html