Geleneksel olarak bir web uygulamasını veya yönetim panelini internete açmak için;
- Public IP
- Port Forwarding
- NAT
- Firewall Rule
- Reverse Proxy
gibi bileşenlere ihtiyaç duyulur.
Bu yöntem çalışsa da aşağıdaki riskleri beraberinde getirir:
- Origin IP’nin internete açık olması
- Sürekli port taramalarına maruz kalma
- Brute Force saldırıları
- Exploit denemeleri
- Yönetim panellerinin internete açık olması
Cloudflare Tunnel, bu yaklaşımı değiştirerek içeriden dışarıya (Outbound) güvenli bir TLS bağlantısı oluşturur. Böylece sunucuya gelen bağlantılar yerine sunucunun Cloudflare’a açtığı güvenli tünel üzerinden erişim sağlanır.
Sonuç olarak:
- Public IP gerekmeyebilir.
- Inbound firewall kuralı açılmaz.
- NAT veya Port Forwarding ihtiyacı ortadan kalkabilir.
- Origin IP kullanıcılarla paylaşılmaz.
- Cloudflare’ın güvenlik servisleriyle entegre çalışır.
Cloudflare Tunnel Nedir?
Cloudflare Tunnel, sunucu ile Cloudflare Edge ağı arasında güvenli ve sürekli bir bağlantı kuran bir servistir.
Bu bağlantıyı sağlayan istemci yazılımının adı:
cloudflared
cloudflared, sunucudan Cloudflare ağına Outbound HTTPS (TLS) bağlantıları açar ve gelen kullanıcı isteklerini bu tünel üzerinden origin uygulamaya iletir.
Nasıl Çalışır?
Normal erişim:
İnternet
↓
Firewall
↓
Public IP
↓
Origin Server
Cloudflare Tunnel:
Kullanıcı
│
▼
Cloudflare Edge
│
▼
Cloudflare Tunnel
│
Outbound TLS
│
▼
cloudflared
│
▼
Origin Application
Bu mimaride internetten origin sunucuya doğrudan bağlantı kurulmaz.
Tunnel’ın Temel Avantajları
- Public IP gerektirmez.
- Port Forwarding ihtiyacını azaltır.
- Inbound firewall kuralı gerektirmez.
- Origin IP gizli kalır.
- DDoS korumasından yararlanılır.
- WAF ile birlikte kullanılabilir.
- Cloudflare Access ile entegre çalışır.
- Zero Trust mimarisini destekler.
cloudflared Nedir?
cloudflared, Cloudflare Tunnel’ın istemci yazılımıdır.
Başlıca görevleri:
- Cloudflare’a güvenli bağlantı kurmak
- Tüneli sürekli açık tutmak
- Servisleri yayınlamak
- Bağlantıyı yeniden kurmak
- Trafiği origin uygulamaya yönlendirmek
Windows, Linux, macOS ve Docker ortamlarında çalıştırılabilir.
Desteklenen Yayın Türleri
Cloudflare Tunnel yalnızca web siteleri için kullanılmaz.
Desteklenen servislerden bazıları:
- HTTP
- HTTPS
- SSH
- RDP
- TCP servisleri
- Kubernetes servisleri
- Dahili web uygulamaları
- API servisleri
Kurulum Akışı
Genel kurulum süreci aşağıdaki gibidir:
Cloudflare Dashboard
↓
Tunnel Oluştur
↓
cloudflared Kur
↓
Authenticate
↓
Tunnel Token
↓
Service Oluştur
↓
DNS Kaydı Oluştur
Birkaç dakika içinde uygulama internete güvenli şekilde yayınlanabilir.
Örnek Topoloji
İnternet
│
▼
Cloudflare Edge
│
Tunnel (TLS Outbound)
│
cloudflared Agent
│
192.168.1.20:443
│
Web Application
Origin sunucu internete açık değildir.
Birden Fazla Servis Yayınlama
Tek bir Tunnel üzerinden birden fazla uygulama yayınlanabilir.
Örneğin:
| Hostname | Servis |
|---|---|
| app.example.com | Web Uygulaması |
| git.example.com | Git Sunucusu |
| wiki.example.com | Wiki |
| monitoring.example.com | İzleme Sistemi |
Her servis farklı origin adresine yönlendirilebilir.
Cloudflare Access ile Entegrasyon
Tunnel’ın en güçlü özelliklerinden biri Cloudflare Access ile birlikte çalışabilmesidir.
Örneğin yalnızca aşağıdaki kullanıcıların erişmesine izin verilebilir:
- Microsoft Entra ID
- Google Workspace
- GitHub
- Okta
- OneLogin
- Ping Identity
Kullanıcı önce kimliğini doğrular, ardından uygulamaya erişebilir.
Kullanıcı
↓
Cloudflare Access
↓
Identity Provider
↓
Doğrulama
↓
Tunnel
↓
Origin
Bu yapı sayesinde VPN kullanmadan güvenli erişim sağlanabilir.
Private Network Erişimi
Tunnel yalnızca web uygulamaları için kullanılmaz.
Örneğin aşağıdaki ağ da yayınlanabilir:
10.10.0.0/24
Böylece uzaktaki kullanıcılar Cloudflare üzerinden özel ağa erişebilir.
Kullanım alanları:
- Active Directory
- SQL Server
- File Server
- ERP
- Dahili uygulamalar
SSH Erişimi
SSH portunu internete açmadan erişim sağlanabilir.
Normal yapı:
SSH
↓
22 Portu Açık
Tunnel ile:
SSH
↓
Cloudflare Access
↓
Tunnel
↓
SSH Server
22 numaralı port internete açık olmak zorunda değildir.
RDP Erişimi
Windows sunucular için de benzer şekilde kullanılabilir.
RDP
↓
Cloudflare
↓
Tunnel
↓
Windows Server
3389 portu internetten erişilebilir olmak zorunda değildir.
Kubernetes Kullanımı
Kubernetes ortamlarında da yaygın olarak kullanılır.
Internet
↓
Cloudflare
↓
Tunnel
↓
Ingress
↓
Service
↓
Pod
Ingress Controller’ın internete açık olması gerekmeyebilir.
Yüksek Erişilebilirlik (High Availability)
Aynı Tunnel birden fazla cloudflared istemcisi tarafından kullanılabilir.
Cloudflare
↓
Tunnel
├── cloudflared #1
└── cloudflared #2
Bir sunucu devre dışı kalırsa diğer istemci hizmet vermeye devam eder.
Log ve İzleme
Cloudflare Dashboard üzerinden izlenebilecek bilgiler:
- Aktif Tunnel’lar
- Bağlantı durumu
- Son bağlantı zamanı
- Connector sayısı
- Trafik istatistikleri
- Hata kayıtları
İşletim sistemi servis logları da düzenli olarak takip edilmelidir.
Güvenlik Avantajları
Cloudflare Tunnel aşağıdaki saldırı yüzeyini önemli ölçüde azaltır:
- Port Scanning
- Brute Force
- Exploit Scanning
- Origin Discovery
- Public IP Enumeration
Tunnel, kimlik doğrulama ve WAF ile birlikte kullanıldığında güvenlik seviyesi daha da artar.
Best Practices
✅ Cloudflare Access ile birlikte kullanın
Kimliği doğrulanmamış kullanıcıların uygulamaya erişmesini engelleyin.
✅ Public IP yerine Tunnel kullanın
Mümkün olduğunca origin sunucuları internete doğrudan açmayın.
✅ cloudflared servisini otomatik başlatın
Sunucu yeniden başladığında tünelin otomatik olarak ayağa kalkmasını sağlayın.
✅ Birden fazla Connector kullanın
Kritik sistemlerde yüksek erişilebilirlik için aynı Tunnel’a birden fazla cloudflared istemcisi bağlayın.
✅ Güncel sürümü kullanın
cloudflared düzenli olarak güncellenmektedir. Güvenlik ve performans iyileştirmelerinden yararlanmak için güncel sürümleri tercih edin.
✅ Least Privilege yaklaşımını benimseyin
Her uygulamaya yalnızca ihtiyaç duyan kullanıcı veya grupların erişmesine izin verin.
Sık Yapılan Hatalar
❌ Tunnel kullanırken origin sunucuyu yine internete açık bırakmak
❌ SSH veya RDP portlarını doğrudan yayınlamaya devam etmek
❌ Access politikası oluşturmadan uygulamaları yayınlamak
❌ cloudflared loglarını takip etmemek
❌ Tüm uygulamaları tek bir geniş yetki politikası altında toplamak
❌ Tünel yapılandırmalarını belgelememek ve yedeklememek
Sorun Giderme İpuçları
| Belirti | Olası Neden | Çözüm |
|---|---|---|
| Tunnel “Disconnected” | cloudflared servisi durmuş |
Servisi yeniden başlatın ve logları kontrol edin. |
| 502/503 hatası | Origin uygulaması erişilemiyor | Origin servisinin çalıştığını ve doğru hedefe yönlendirildiğini doğrulayın. |
| Access ekranı gelmiyor | Access politikası eksik veya yanlış | Uygulama ve Access yapılandırmasını gözden geçirin. |
| DNS çözülüyor ancak uygulama açılmıyor | Tunnel ile DNS kaydı eşleşmiyor | Tunnel Public Hostname ve DNS kaydını kontrol edin. |
Sonuç
Cloudflare Tunnel, uygulamaları internete açmanın geleneksel yöntemlerine modern ve güvenli bir alternatif sunar. cloudflared aracılığıyla kurulan outbound bağlantılar sayesinde public IP, NAT ve inbound port ihtiyacı büyük ölçüde ortadan kalkar. Cloudflare Access ile entegre edildiğinde, kullanıcılar VPN kullanmadan kimlik doğrulaması yaparak güvenli bir şekilde uygulamalara erişebilir.
Kurumsal ortamlarda Tunnel; yönetim panelleri, dahili web uygulamaları, SSH, RDP ve özel ağ erişimi gibi birçok senaryoda güvenliği artırırken operasyonel karmaşıklığı da azaltır.
