Cloudflare Tunnel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Cloudflare Tunnel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Şubat 2026 Cumartesi

Cloudflare Tunnel ile Evdeki Sunucunuza Statik IP Olmadan Güvenli Erişim (Adım Adım Kurulum)

Cloudflare Tunnel nedir ve neden tercih edilmeli?

Evde NAS, Raspberry Pi, mini PC ya da bir Docker sunucusu çalıştırıyorsanız, dışarıdan güvenli erişim genellikle iki seçeneğe sıkışır: port yönlendirme (NAT) veya VPN. Port yönlendirme pratik görünse de güvenlik riskleri ve dinamik IP gibi sorunlar doğurabilir. Cloudflare Tunnel (eski adıyla Argo Tunnel) ise statik IP’ye ihtiyaç duymadan, router’da port açmadan ve servislerinizi doğrudan internete maruz bırakmadan dış erişim sağlayan modern bir yöntemdir.

Tunnel mantığı basittir: Yerel ağınızdaki bir “connector” (cloudflared) Cloudflare’a doğru dışarıya bir bağlantı başlatır. Dışarıdan gelen istekler Cloudflare üzerinden bu tünel aracılığıyla içerdeki servise iletilir. Böylece ev IP’niz ifşa olmaz, saldırı yüzeyiniz küçülür ve Cloudflare’ın WAF/Rate Limiting gibi korumalarıyla entegre olursunuz.

Ön koşullar

Bu öğreticide örnek olarak yerel ağda çalışan bir web servisini (ör. http://localhost:8080) yayınlayacağız. İhtiyacınız olanlar: Cloudflare hesabı, Cloudflare’a eklenmiş bir alan adı (ör. example.com), tüneli çalıştıracağınız bir makine (Linux önerilir; Docker da olur) ve yayınlanacak servis.

Not: Cloudflare Tunnel ile yalnızca web uygulamaları değil, uygun yapılandırma ile çeşitli TCP servisleri de yönetilebilir. Ancak en temiz ve güvenli senaryo, HTTP/HTTPS tabanlı servisleri Cloudflare Access ile kimlik doğrulama ekleyerek yayınlamaktır.

1) Cloudflare’da Tunnel oluşturma

Cloudflare paneline girin ve ilgili domaini seçin. Sol menüde Zero Trust (veya “Access/Zero Trust”) bölümüne geçin. Buradan Networks > Tunnels menüsünü açıp Create a tunnel ile yeni bir tünel oluşturun. Tünele anlaşılır bir ad verin (ör. “ev-sunucu”).

Cloudflare size kurulum adımlarını gösterecek. Bu aşamada iki yol var: doğrudan binary kurmak ya da Docker ile çalıştırmak. İleri seviye kullanıcılar için Docker, otomasyon ve taşınabilirlik açısından daha rahattır.

2) Docker ile cloudflared çalıştırma

Cloudflare panelinde “Run the connector” adımında bir token üretilir. Bu token tünelin kimliğidir. Token’ı kopyalayın ve tüneli çalıştıracağınız makinede aşağıdaki komutu kullanın:

docker run -d --name cloudflared --restart unless-stopped cloudflare/cloudflared:latest tunnel --no-autoupdate run --token YOUR_TOKEN

Bu komut, cloudflared’ı arka planda başlatır ve makine yeniden başladığında otomatik ayağa kaldırır. Sorun yaşarsanız logları görmek için:

docker logs -f cloudflared

Burada “connected” benzeri bir ifade görüyorsanız tüneliniz Cloudflare’a başarıyla bağlanmıştır.

3) Public hostname tanımlama (subdomain yönlendirme)

Şimdi dış dünyadan erişilecek adresi belirleyeceğiz. Yine Zero Trust panelinde ilgili tünelin içine girin ve Public Hostnames bölümünden yeni kayıt ekleyin. Örneğin:

Subdomain: panel
Domain: example.com
Path: (boş bırakabilirsiniz)
Service: http://localhost:8080

Bu ayarla https://panel.example.com isteği Cloudflare üzerinden tünelinize gelir ve yereldeki 8080 portuna yönlenir. Router’da port açmadığınız için servisiniz “internete açık” hale gelmez; yalnızca Cloudflare tüneli üzerinden erişilebilir olur.

4) Güvenliği bir üst seviyeye taşıma: Cloudflare Access

Tünel çalışsa bile erişimi herkese açık bırakmak istemezsiniz. Cloudflare’ın en büyük artısı burada başlar: Access policy ile kimlerin gireceğini belirleyebilirsiniz. Zero Trust panelinde Access > Applications bölümüne gidip “Self-hosted” uygulama ekleyin ve aynı hostname’i (panel.example.com) seçin.

Ardından bir politika tanımlayın. Örneğin yalnızca belirli e-posta adreslerine izin verin (Google/Microsoft ile SSO da mümkün). Bu sayede URL’yi bilen herkes değil, sadece yetkili kullanıcılar giriş yapabilir. Bu yaklaşım klasik Basic Auth’tan daha esnek ve denetlenebilir bir güvenlik katmanı sunar.

5) Sık yapılan hatalar ve ipuçları

Servis “Bad Gateway” veriyor: Genellikle yereldeki servis yanlış portta çalışıyordur veya yalnızca 127.0.0.1 yerine belirli bir arayüze bağlıdır. Docker içinden başka bir konteynıra yönlendiriyorsanız ağ ayarlarınızı kontrol edin.

HTTPS/sertifika konusu: Cloudflare dışarıya HTTPS sunar. İçerideki servisiniz HTTP olabilir; bu yaygın bir kullanımdır. Ancak içeride de TLS istiyorsanız origin sertifikası gibi seçenekler mevcut.

Performans ve gecikme: Tunnel trafiği Cloudflare POP’ları üzerinden geçer. Çoğu ev senaryosunda gecikme farkı ihmal edilebilir düzeydedir; asıl sınır genellikle ev internetinizin upload hızıdır.

Log ve izleme: Zero Trust üzerinden bağlantı denemelerini ve Access loglarını inceleyin. Şüpheli denemelerde rate limiting veya ek erişim kısıtları uygulayabilirsiniz.

Sonuç

Cloudflare Tunnel, evde barındırdığınız servisleri statik IP olmadan, port açmadan ve daha kontrollü şekilde yayınlamak için güncel ve güçlü bir çözümdür. Özellikle Cloudflare Access ile birlikte kullanıldığında, “herkese açık admin paneli” gibi riskli senaryoları neredeyse tamamen ortadan kaldırır. Eğer self-hosted uygulamalarınız var ve güvenliği ciddiye alıyorsanız, bu yaklaşım modern bir varsayılan haline gelmeye başladı.

25 Ocak 2026 Pazar

Cloudflare Zero Trust ile Uygulamalarını İnternete Açmadan Yayına Al: Tunnel Kurulumu ve İnce Ayarlar

İnternete Port Açmadan Yayınlamak Neden Önemli?

Evde ya da küçük bir ofiste bir web paneli, API, yönetim arayüzü veya test ortamı çalıştırıyorsanız “router’dan port yönlendirme” genellikle ilk akla gelen yöntem olur. Ancak bu yaklaşım, servisinizin doğrudan internete açılması demektir: zafiyet taramaları, brute force denemeleri ve yanlış yapılandırmalar bir anda ciddi bir güvenlik riskine dönüşebilir. Modern yaklaşım, uygulamayı dış dünyaya “açmadan” erişilebilir kılmak ve erişimi kimlik doğrulama politikalarıyla kontrol etmektir.

Bu yazıda Cloudflare Zero Trust ekosisteminin en pratik parçalarından biri olan Cloudflare Tunnel (cloudflared) ile, içeride çalışan bir servisi port açmadan dışarıya yayınlamayı anlatacağım. Ayrıca gerçek hayatta iş gören ayarları: alt alan adı yönlendirme, erişim politikaları, HTTPS davranışı ve temel sorun giderme adımlarını da ekleyeceğim.

Cloudflare Tunnel Nedir, Ne İşe Yarar?

Cloudflare Tunnel, içerideki sunucunuzdan Cloudflare ağına doğru çıkış yönlü (outbound) bir tünel kurar. Yani modeminizde inbound port açmazsınız. cloudflared arka planda Cloudflare’a bağlanır; ziyaretçi tarafında gelen istekler Cloudflare üzerinden bu tünelden iç servisinize iletilir. Böylece hem saldırı yüzeyi küçülür hem de Cloudflare’ın WAF, rate limit, Access politikaları gibi katmanları devreye alınabilir.

Ön Koşullar

1) Cloudflare’da yönetebildiğiniz bir alan adı (domain) 2) Cloudflare Zero Trust paneline erişim (ücretsiz plan çoğu senaryo için yeterli) 3) İç ağınızda yayınlanan bir servis: örneğin http://localhost:3000 veya http://192.168.1.50:8080 4) Linux/Windows/macOS üzerinde çalışacak bir makine (tüneli bu makine kuracak)

Adım Adım Kurulum (Zero Trust Panel Üzerinden)

1) Zero Trust’a girin: Cloudflare Dashboard > Zero Trust. Sol menüden Access veya Networks altından Tunnels bölümünü bulun.

2) Yeni tünel oluşturun: “Create a tunnel” deyin, tünele anlamlı bir isim verin (ör. ev-lab).

3) cloudflared kurun: Cloudflare, işletim sisteminize göre komutları ekranda gösterir. Linux için çoğunlukla paket deposu veya tek ikili (binary) ile kurulum sağlanır. Kurulumdan sonra, panelin verdiği komutla tüneli makinenize “bağlarsınız”. Bu adım, makinenizde kimlik doğrulaması yaparak tüneli Cloudflare hesabınıza iliştirir.

4) Public Hostname tanımlayın: Tünelin “Public Hostname” kısmında bir alt alan adı seçin. Örneğin panel.orneksite.com. “Service” bölümüne ise içerideki hedefi yazın: örneğin http://localhost:3000 ya da http://192.168.1.50:8080. Bu noktadan sonra Cloudflare, gelen trafiği tünel üzerinden doğru servise yönlendirmeyi bilir.

HTTPS, Origin ve Güvenli Varsayılanlar

Cloudflare tarafında kullanıcılar genellikle HTTPS ile bağlanır. İçerideki servisiniz HTTP çalışıyor olabilir; bu sorun değildir. Cloudflare, edge’de HTTPS sonlandırıp tünel üzerinden HTTP ile iletebilir. Yine de hassas bir panel yayınlıyorsanız, içeride de TLS kullanmak veya en azından erişimi Cloudflare Access ile kilitlemek iyi fikirdir.

Ek bir güvenlik adımı olarak, panel yayınlıyorsanız Cloudflare WAF kuralları, bot koruması ve rate limit seçeneklerine göz atın. Tunnel kullanmak tek başına “güvenli” anlamına gelmez; yetkisiz erişimi engelleyecek politika katmanı şarttır.

Cloudflare Access ile Kim Girebilir? (Gerçek Hayat Senaryosu)

En güçlü taraflardan biri, uygulamanıza giriş için IP whitelist yerine kimlik tabanlı kontrol sunmasıdır. Örneğin sadece Google Workspace hesabınızla giriş yapılmasını isteyebilirsiniz.

1) Zero Trust > Access > Applications > “Add an application” (Self-hosted seçin). 2) Uygulama alan adını seçin (ör. panel.orneksite.com). 3) Policy oluşturun: “Allow” ve şart olarak e-posta domain’i, belirli e-posta adresleri veya bir kimlik sağlayıcı grubu ekleyin. 4) İsterseniz ek doğrulama (MFA) koşulları ekleyin.

Bu sayede uygulamanız internete açık görünse bile, içeri girmek için kullanıcı Cloudflare Access ekranından geçmek zorunda kalır. Özellikle admin panelleri, Home Assistant, Grafana, Portainer, Git servisleri gibi araçlarda bu yaklaşım port açmaya göre çok daha kontrollüdür.

Sık Karşılaşılan Sorunlar ve Hızlı Çözümler

403/Access ekranı gelmiyor: Access uygulaması doğru hostname’e bağlandı mı kontrol edin. DNS kaydı Cloudflare proxy (turuncu bulut) arkasında mı? Tunnel tarafında “Public Hostname” doğru mu?

502/Bad Gateway: Tünel ayakta olsa bile içeride hedef servis yanıt vermiyor olabilir. Makinede curl http://localhost:3000 gibi bir test yapın. Hedef IP/port doğru mu, servis sadece 127.0.0.1’e mi bağlı, güvenlik duvarı trafiği kesiyor mu kontrol edin.

Performans dalgalanması: Aynı tüneli birden fazla “connector” ile çoğaltmak (yük devretme) mümkün. Kritik servislerde tüneli iki farklı makinede çalıştırarak kesintiye dayanıklılığı artırabilirsiniz.

Ne Zaman Tercih Etmelisiniz?

Cloudflare Tunnel; ev lab ortamları, küçük ekiplerin dahili araçları, müşteri demosu, staging ortamları ve port açmanın kurumsal politikalarla engellendiği senaryolarda çok iyi çalışır. “Hızlıca yayınla, sonra erişimi kilitle” yaklaşımı için idealdir. Buna karşın çok özel ağ topolojileri, L4 seviyesinde özel protokoller veya uçtan uca sertifikalı mTLS gibi gereksinimler varsa tasarımı biraz daha detaylı düşünmek gerekir.

Sonuç

Cloudflare Zero Trust + Tunnel ikilisi, klasik port yönlendirme yöntemini büyük ölçüde gereksiz kılıyor. En önemli kazanım, uygulamayı internete açmadan erişilebilir hale getirirken kimlik doğrulama ve politika katmanını işin merkezine koyması. Bir kez kurduktan sonra yeni servis eklemek de oldukça pratik: yalnızca yeni bir hostname ve hedef servis tanımlıyorsunuz, gerisini tünel taşıyor.