Evdeki yedekleme sunucuma dışarıdan erişmek için modemden port açtığım akşam, loglarda Çin ve Rusya kaynaklı binlerce SSH denemesi görmemle o portu kapatmam bir oldu. Statik IP adresine sahip olmak ya da dinamik DNS servisleriyle uğraşmak, günün sonunda ev ağınızı tüm dünyaya açık bir hedef haline getiriyor. Cloudflare Tunnel ile Ev Sunucunuza Güvenli Erişim İçin 5 Yol başlıklı bu yazıda, evinizdeki cihazları dış dünyaya tek bir port bile açmadan, tamamen ücretsiz ve kurumsal seviyede nasıl güvenli hale getireceğinizi kendi uyguladığım yöntemlerle anlatıyorum.
Bu tünel mekanizması, evinizdeki bir ajanın (cloudflared) Cloudflare edge sunucularına dışa doğru (outbound) güvenli bir bağlantı kurması esasına dayanır. Geleneksel port yönlendirmenin aksine, dışarıdan içeriye doğru hiçbir istek doğrudan ev ağınıza ulaşamaz. Araya koyacağımız Zero Trust kuralları ile ev sunucunuzu adeta bir kaleye dönüştüreceğiz.
Cloudflare Tunnel Nedir ve Nasıl Çalışır?
Geleneksel erişim yöntemlerinde modeminize gelen istekleri doğrudan sunucunuza yönlendirirsiniz. Bu durum, saldırganların IP adresinizi tarayarak açık portları bulmasına ve servislerinize kaba kuvvet (brute-force) saldırıları düzenlemesine neden olur. Cloudflare Tunnel ise bu süreci tamamen tersine çevirerek çalışır.
Evinizdeki sunucuya kurduğunuz cloudflared daemon’ı, Cloudflare veri merkezlerine doğru şifreli bir tünel açar. Dışarıdan gelen kullanıcılar önce Cloudflare’in koruma kalkanına çarpar, orada filtrelenir ve yalnızca sizin belirlediğiniz kuralları geçen istekler bu tünel üzerinden ev sunucunuza iletilir. Bu sayede ev ağınızın gerçek IP adresi hiçbir zaman açığa çıkmaz.
graph TD; A["İstemci (Mobil/PC)"] --> B["Cloudflare Edge (WAF/Access)"] B -->|"Tünel Üzerinden Geçiş"| C["cloudflared Daemon"] C --> D["Ev Sunucusu (Docker/Servisler)"] subheading["Dış Dünya"] -.->|"Doğrudan Erişim Engelli"| D
Sistem mimarisi bu şekilde kurulduğunda, ağ seviyesindeki tüm saldırılar daha sizin evinize ulaşmadan Cloudflare katmanında absorbe edilir. Şimdi bu mimariyi daha da güvenli hale getirecek 5 farklı yönteme yakından bakalım.
Yol 1: Sadece Belirli IP Adreslerine İzin Verme (IP Access Rules) Nasıl Yapılır?
Eğer ev sunucunuza genellikle iş yerinizden, belirli bir VPS sunucusundan ya da sabit IP adresi olan güvenilir bir noktadan erişiyorsanız, en temel ve etkili koruma yöntemi IP kısıtlamasıdır. Bu yöntem, tünelinize gelen isteklerin kaynağını kontrol eder ve listenizde olmayan IP adreslerini anında reddeder.
Cloudflare Zero Trust paneline giderek bir Access Application oluşturduğunuzda, kurallar (Policies) kısmında kaynak IP kontrolü ekleyebilirsiniz. Bu kuralı devreye aldığınızda, tünelinize erişmeye çalışan yabancı bir IP adresi doğrudan HTTP 403 hatası ile karşılaşır.
# Örnek cloudflared config.yml dosyası
tunnel: my-home-tunnel
credentials-file: /home/mustafa/.cloudflared/my-home-tunnel.json
ingress:
- hostname: home.mustafaerbay.com
service: http://localhost:8080
- service: http_status:404