Merhaba arkadaşlar, bugün sizlere Cloudflare kullanırken sunucu güvenliğinizi bir üst seviyeye taşıyacak, çok önemli bir konuyu anlatacağım: Authenticated Origin Pulls. Bu yöntem, sadece Cloudflare'in kendi ağından gelen bağlantıların sunucunuza ulaşmasına izin vererek, doğrudan IP üzerinden yapılabilecek saldırıları ve kötü niyetli trafiği büyük ölçüde engeller. Benim yönettiğim tüm sunucularda mutlaka aktif ettiğim bir güvenlik katmanıdır. Gelin birlikte Nginx ve Apache için nasıl kuracağımıza bakalım.
Authenticated Origin Pulls Nedir?
Basitçe anlatmak gerekirse, Cloudflare ile sunucunuz arasındaki bağlantıyı sertifika ile imzalar. Sunucunuz, gelen bağlantının gerçekten Cloudflare'den geldiğini bu özel sertifikayı kontrol ederek doğrular. Böylece, Cloudflare IP'lerini atlayıp doğrudan sunucu IP'nize gelen istekler (ki buna "orange-to-orange" bypass denir) sunucunuz tarafından reddedilir. Bu, DDoS azaltma ve WAF korumalarınızın atlanmasını önlemek için kritiktir.
Cloudflare'de Ayarları Aktif Etme
İlk adım, bu özelliği Cloudflare panelinizden açmak. Çok basit:
1. Cloudflare hesabınıza girin.
2. Domain'inizi seçin.
3. SSL/TLS sekmesine tıklayın.
4. Origin Server bölümüne gelin.
5. Authenticated Origin Pulls seçeneğini bulun ve On (Açık) konumuna getirin.
Bu kadar! Artık Cloudflare, sunucunuza bağlanırken kendi sertifikasını sunacak. Şimdi sıra sunucumuzu bu sertifikayı tanıyacak ve doğrulayacak şekilde yapılandırmakta.
Gerekli Sertifikayı İndirme
Cloudflare'in doğrulama için kullandığı genel (CA) sertifikasını indirmemiz gerekiyor. Bu sertifika, Cloudflare'in kullandığı tüm sertifikaları imzalayan ana sertifikadır. Sunucunuza SSH ile bağlanıp aşağıdaki komutu çalıştırabilirsiniz.
Bu komut, sertifikayı doğrudan Cloudflare'in geliştirici dokümanlarından alıp /etc/ssl/ dizinine kaydedecek. Bu dosya yolunu birazdan yapılandırma dosyamızda kullanacağız.
Nginx için Yapılandırma
Eğer Nginx kullanıyorsanız, bu adımları takip edin. Genellikle /etc/nginx/sites-available/ dizinindeki domain konfigürasyon dosyanızı (örn: siteniz.com) düzenleyeceğiz. Ben örnek olarak default SSL sunucu bloğunu göstereceğim.
Buradaki iki kritik satır:
ssl_client_certificate: İndirdiğimiz Cloudflare CA sertifikasının yolunu gösterir.
ssl_verify_client on: Gelen bağlantının bir istemci sertifikası sunmasını ve bunu yukarıdaki CA ile doğrulamasını zorunlu kılar.
Değişiklikleri kaydettikten sonra Nginx'i test edip yeniden başlatmayı unutmayın!
Apache için Yapılandırma
Apache kullanıcıları için adımlar biraz farklı. Öncelikle mod_ssl ve mod_ssl'e bağlı olan mod_http2 (eğer kullanıyorsanız) modüllerinin yüklü olduğundan emin olun. Ardından, sanal host (VirtualHost) dosyanızı düzenleyin. Dosya genelde /etc/apache2/sites-available/ dizinindedir.
Buradaki kritik direktifler:
SSLVerifyClient require: İstemci sertifikasını zorunlu kılar.
SSLCACertificateFile: İndirdiğimiz Cloudflare CA sertifikasının yolunu belirtir.
SSLVerifyDepth 1: Doğrulama derinliğini belirler, genelde 1 yeterlidir.
Apache yapılandırmasını test edip servisi yeniden başlatalım.
Test ve Sorun Giderme
Her şeyi doğru yaptıysanız, siteniz Cloudflare üzerinden normal şekilde çalışmaya devam edecek. Ancak doğrudan sunucu IP'niz üzerinden HTTPS ile (örn:
) erişmeye çalışırsanız, bir SSL hatası almalı veya bağlantı reddedilmelidir. Bu, ayarın çalıştığının kanıtıdır!
Eğer siteniz "400 Bad Request" veya benzeri bir hata verirse, muhtemelen sertifika yolu yanlış girilmiştir veya Cloudflare panelinde ayar açılmamıştır. Komut satırında aşağıdaki gibi bir hata görebilirsiniz: `SSL_CTX_set_client_CA_list`. Bu durumda, tüm adımları ve dosya izinlerini tekrar kontrol edin.
Son Sözler
Arkadaşlar, Authenticated Origin Pulls, Cloudflare kullanan her sunucu yöneticisinin aktif etmesi gereken, neredeyse bedava bir güvenlik katmanı. Kurulumu basit, getirisi ise çok büyük. Özellikle hassas veri barındıran, sık hedef alınan siteler için olmazsa olmaz diyebilirim.
Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yönteminiz veya ek bir güvenlik ipucunuz var mı? Ya da kurulum sırasında bir sorunla karşılaştınız mı? Aşağıya yorum olarak yazın, birlikte çözelim. Herkese güvenli hosting'ler!
Basitçe anlatmak gerekirse, Cloudflare ile sunucunuz arasındaki bağlantıyı sertifika ile imzalar. Sunucunuz, gelen bağlantının gerçekten Cloudflare'den geldiğini bu özel sertifikayı kontrol ederek doğrular. Böylece, Cloudflare IP'lerini atlayıp doğrudan sunucu IP'nize gelen istekler (ki buna "orange-to-orange" bypass denir) sunucunuz tarafından reddedilir. Bu, DDoS azaltma ve WAF korumalarınızın atlanmasını önlemek için kritiktir.
İlk adım, bu özelliği Cloudflare panelinizden açmak. Çok basit:
1. Cloudflare hesabınıza girin.
2. Domain'inizi seçin.
3. SSL/TLS sekmesine tıklayın.
4. Origin Server bölümüne gelin.
5. Authenticated Origin Pulls seçeneğini bulun ve On (Açık) konumuna getirin.
Bu kadar! Artık Cloudflare, sunucunuza bağlanırken kendi sertifikasını sunacak. Şimdi sıra sunucumuzu bu sertifikayı tanıyacak ve doğrulayacak şekilde yapılandırmakta.
Cloudflare'in doğrulama için kullandığı genel (CA) sertifikasını indirmemiz gerekiyor. Bu sertifika, Cloudflare'in kullandığı tüm sertifikaları imzalayan ana sertifikadır. Sunucunuza SSH ile bağlanıp aşağıdaki komutu çalıştırabilirsiniz.
Bash:
sudo wget https://developers.cloudflare.com/ssl/static/authenticated_origin_pull_ca.pem -O /etc/ssl/cloudflare_origin_pull_ca.pem
Bu komut, sertifikayı doğrudan Cloudflare'in geliştirici dokümanlarından alıp /etc/ssl/ dizinine kaydedecek. Bu dosya yolunu birazdan yapılandırma dosyamızda kullanacağız.
Eğer Nginx kullanıyorsanız, bu adımları takip edin. Genellikle /etc/nginx/sites-available/ dizinindeki domain konfigürasyon dosyanızı (örn: siteniz.com) düzenleyeceğiz. Ben örnek olarak default SSL sunucu bloğunu göstereceğim.
NGINX:
server {
listen 443 ssl http2;
server_name siteniz.com www.siteniz.com;
# Kendi SSL sertifikalarınız (Let's Encrypt, vs.)
ssl_certificate /etc/letsencrypt/live/siteniz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/siteniz.com/privkey.pem;
# CLOUDFLARE AUTHENTICATED ORIGIN PULLS AYARI
ssl_client_certificate /etc/ssl/cloudflare_origin_pull_ca.pem;
ssl_verify_client on;
# ... Diğer ayarlarınız (root, index, vs.) ...
}
Buradaki iki kritik satır:
ssl_client_certificate: İndirdiğimiz Cloudflare CA sertifikasının yolunu gösterir.
ssl_verify_client on: Gelen bağlantının bir istemci sertifikası sunmasını ve bunu yukarıdaki CA ile doğrulamasını zorunlu kılar.
Değişiklikleri kaydettikten sonra Nginx'i test edip yeniden başlatmayı unutmayın!
Bash:
sudo nginx -t
sudo systemctl reload nginx
Apache kullanıcıları için adımlar biraz farklı. Öncelikle mod_ssl ve mod_ssl'e bağlı olan mod_http2 (eğer kullanıyorsanız) modüllerinin yüklü olduğundan emin olun. Ardından, sanal host (VirtualHost) dosyanızı düzenleyin. Dosya genelde /etc/apache2/sites-available/ dizinindedir.
Kod:
<VirtualHost :443>
ServerName siteniz.com
ServerAlias www.siteniz.com
# Kendi SSL sertifikalarınız
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/siteniz.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/siteniz.com/privkey.pem
# CLOUDFLARE AUTHENTICATED ORIGIN PULLS AYARI
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /etc/ssl/cloudflare_origin_pull_ca.pem
# ... Diğer ayarlarınız (DocumentRoot, Directory, vs.) ...
</VirtualHost>
Buradaki kritik direktifler:
SSLVerifyClient require: İstemci sertifikasını zorunlu kılar.
SSLCACertificateFile: İndirdiğimiz Cloudflare CA sertifikasının yolunu belirtir.
SSLVerifyDepth 1: Doğrulama derinliğini belirler, genelde 1 yeterlidir.
Apache yapılandırmasını test edip servisi yeniden başlatalım.
Bash:
sudo apache2ctl configtest
sudo systemctl reload apache2
Her şeyi doğru yaptıysanız, siteniz Cloudflare üzerinden normal şekilde çalışmaya devam edecek. Ancak doğrudan sunucu IP'niz üzerinden HTTPS ile (örn:
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
Eğer siteniz "400 Bad Request" veya benzeri bir hata verirse, muhtemelen sertifika yolu yanlış girilmiştir veya Cloudflare panelinde ayar açılmamıştır. Komut satırında aşağıdaki gibi bir hata görebilirsiniz: `SSL_CTX_set_client_CA_list`. Bu durumda, tüm adımları ve dosya izinlerini tekrar kontrol edin.
Arkadaşlar, Authenticated Origin Pulls, Cloudflare kullanan her sunucu yöneticisinin aktif etmesi gereken, neredeyse bedava bir güvenlik katmanı. Kurulumu basit, getirisi ise çok büyük. Özellikle hassas veri barındıran, sık hedef alınan siteler için olmazsa olmaz diyebilirim.
Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yönteminiz veya ek bir güvenlik ipucunuz var mı? Ya da kurulum sırasında bir sorunla karşılaştınız mı? Aşağıya yorum olarak yazın, birlikte çözelim. Herkese güvenli hosting'ler!