Bir siteyi CDN veya ters proxy'nin arkasına koymak trafiği emer ve sunucunun adresini gizler, ancak bu yalnızca gerçek IP bilinmediği sürece işe yarar. Saldırganlar CDN'i nadiren kırar. Doğrudan origin'i ararlar. Bu rehber, origin'in nerelerde sızdığını ve origin'in proxy'niz dışındaki her şeyi nasıl reddettireceğinizi listeler.
Origin nasıl bulunur
- DNS geçmişi: servisler eski kayıtları saklar, bu yüzden CDN'i eklemeden önce kullandığınız IP hâlâ listelenir.
- Alt alan adları: doğrudan sunucuyu gösteren
mail.,ftp.veyadev.kayıtları. - E-posta başlıkları: aynı sunucudan giden e-postalar, başlıklarda IP adresini ele verir.
- Sertifika şeffaflığı ve internet taramaları: tarayıcılar bir sertifikayı onu sunan her IP ile eşleştirir.
- Uygulama davranışı: webhook'lar, görsel çekiciler ve "bu URL'yi kontrol et" özellikleri origin'den dışarı bağlanır.
Adım 1: temiz başlayın
Sunucu zaten açığa çıktıysa en güvenli çözüm yeni bir IP ya da yeni bir sunucu ve taşımadır. Zaten herkese açık olan bir adresi gizlemek işe yaramaz. Taşımayı kesintisiz taşıma rehberi ile planlayın.
Adım 2: trafiği yalnızca proxy'den kabul edin
Web portlarına yalnızca proxy'nin yayımlanmış aralıklarından izin verin, başka hiçbir yerden vermeyin. UFW ile bu, sağlayıcınızın yayımladığı aralıklar kullanılarak aşağıdaki gibi görünür.
sudo ufw default deny incoming
sudo ufw allow OpenSSH
for ip in $(cat proxy-ranges.txt); do sudo ufw allow from "$ip" to any port 443 proto tcp; done
sudo ufw enable
Aralıklar değiştiği için listeyi düzenli olarak yenileyin. Daha güçlü güvence için kimliği doğrulanmış origin çekmelerini (karşılıklı TLS) kullanın; böylece Nginx, proxy'nin sertifikası olmayan her istemciyi reddeder.
Adım 3: sızabilecek her şeyi ayırın
- E-postayı origin'den değil, farklı bir sunucu veya röle üzerinden gönderin.
- Web dışı alt alan adlarını origin IP'sinden uzak tutun.
- Uygulamadan yapılan dış istekleri bir proxy veya ayrı bir worker üzerinden geçirin.
- Bilinmeyen bir
Hostiçin boş yanıt dönen varsayılan bir Nginx sunucu bloğu çalıştırın; böylece çıplak IP taraması hiçbir şey göstermez.
server {
listen 443 ssl default_server;
ssl_reject_handshake on;
}
Adım 4: saldırgan gibi test edin
Alan adınızı DNS geçmişi araçlarında arayın, kendi IP aralığınızı sertifika için tarayın ve bir test mesajının e-posta başlıklarını kontrol edin. Bunlardan herhangi biri origin'i gösteriyorsa IP'yi değiştirin ve tekrarlayın.
Bunun neyi yapıp neyi yapmadığını unutmayın: adresin erişilebilirliğini ve gizliliğini korur. Hesabın sahibini gizlemez. Bunun için anonim barındırmanın gerçekte ne kadar anonim olduğunu okuyun; ağ katmanını aşan saldırılar için Layer 7 savunmalarına bakın.