UFW ile özel ağlara giden trafiği engelleyin

2 min
VPS/VDS Hosting

Bir betik ele geçirildiğinde ya da bir uygulama yanlış yapılandırıldığında 10.x veya 192.168.x adreslerini yoklamaya başlayabilir; bu trafik sunucunuzdan çıkar ve çoğu zaman ağ tarafından kötüye kullanım bildirimlerine yol açar. Özel aralıklara giden bağlantıları engellemek, her VPS Linux Infrawire sunucusunda basit bir önlemdir. Bu rehber, bunu DNS'i veya kendi bağlantınızı bozmadan UFW ile nasıl yapacağınızı gösterir.

📋 Ön koşullar

  • Ubuntu 24.04 veya Debian 12 üzerinde root SSH erişimli bir VPS (UFW ikisinde de mevcuttur).
  • Temel UFW bilgisi. Henüz kurulu değilse:
Bash
sudo apt update && sudo apt install -y ufw
  • Güvenlik duvarını değiştirirken açık tutulan ikinci bir SSH oturumu.

🧭 Hangi aralıklar engellenmeli

AralıkKullanım
10.0.0.0/8RFC1918 özel
172.16.0.0/12RFC1918 özel
192.168.0.0/16RFC1918 özel
100.64.0.0/10Operatör düzeyi NAT (RFC6598)
169.254.0.0/16IPv4 bağlantı-yerel
192.0.0.0/24IETF protokol atamaları
198.18.0.0/15Karşılaştırma testleri
fc00::/7IPv6 benzersiz yerel adresler

fe80::/10 aralığını engellemeyin: IPv6, komşu keşfi için ve çoğu zaman varsayılan ağ geçidi için bağlantı-yerel adresleri kullanır; bunu engellemek IPv6'yı tamamen keser.

🔍 Önce VPS'inizin gerçekte neye ihtiyaç duyduğuna bakın

Ağ geçidiniz ya da DNS çözümleyiciniz özel bir aralıktaysa, toptan engelleme ağınızı keser. Herhangi bir kural eklemeden önce yapılandırmanıza bakın:

Bash
ip route ip -6 route cat /etc/resolv.conf resolvectl status | grep -E 'DNS Servers|Link'

Bir çözümleyici ya da bağımlı olduğunuz bir hizmet özel adres kullanıyorsa (PRIVATE_DNS_IP), aşağıda gösterildiği gibi onu açıkça izin verin ve bu kuralı en başa koyun. Kullandığınız her şey genel adreslerdeyse bu adımı atlayabilirsiniz.

🧱 Yöntem 1: ufw deny out

SSH erişiminin sürdüğünden emin olun, sonra varsayılan ilkeleri ayarlayın. Özel aralıklara yönelik giden kurallar, SSH oturumlarınıza gelen yanıtları etkilemez.

Bash
sudo ufw allow 22/tcp sudo ufw default deny incoming sudo ufw default allow outgoing

Bir istisnaya ihtiyacınız varsa, engellemelerden önce değerlendirilmesi için 1. sıraya ekleyin:

Bash
sudo ufw insert 1 allow out to PRIVATE_DNS_IP port 53

Şimdi her aralık için bir engelleme ekleyin (UFW kuralları sırayla değerlendirilir, ilk eşleşen kazanır):

Bash
sudo ufw deny out to 10.0.0.0/8 sudo ufw deny out to 172.16.0.0/12 sudo ufw deny out to 192.168.0.0/16 sudo ufw deny out to 100.64.0.0/10 sudo ufw deny out to 169.254.0.0/16 sudo ufw deny out to 192.0.0.0/24 sudo ufw deny out to 198.18.0.0/15 sudo ufw deny out to fc00::/7 sudo ufw enable

ufw enable, SSH bağlantılarını bozabileceği konusunda uyarabilir; 22 numaralı porta izin verildiği için y yanıtını verin. Sırayı şununla inceleyin:

Bash
sudo ufw status numbered

📄 Yöntem 2: before.rules

Kullanıcı kurallarından önce uygulanan tek bir kural bloğunu tercih ediyorsanız /etc/ufw/before.rules dosyasını düzenleyin. Önce yedek alın:

Bash
sudo cp /etc/ufw/before.rules /etc/ufw/before.rules.bak sudo nano /etc/ufw/before.rules

*filter bölümünde, loopback ve kurulu bağlantıları kabul eden satırlardan sonra şunları ekleyin:

TEXT
1# Özel ağlara giden trafiği engelle 2-A ufw-before-output -d 10.0.0.0/8 -j REJECT 3-A ufw-before-output -d 172.16.0.0/12 -j REJECT 4-A ufw-before-output -d 192.168.0.0/16 -j REJECT 5-A ufw-before-output -d 100.64.0.0/10 -j REJECT 6-A ufw-before-output -d 169.254.0.0/16 -j REJECT

IPv6'nın kendi dosyası /etc/ufw/before6.rules vardır ve zincir adı yine ufw-before-output şeklindedir:

TEXT
-A ufw-before-output -d fc00::/7 -j REJECT

PRIVATE_DNS_IP için istisnayı bu satırların hemen üstüne -A ufw-before-output -d PRIVATE_DNS_IP -j ACCEPT ile ekleyin. Yeniden yükleyin:

Bash
sudo ufw reload

REJECT hemen bir hata döndürür; böylece uygulamalar zaman aşımını beklemeden hızlıca başarısız olur. Sessizliği tercih ediyorsanız -j DROP kullanın.

✅ Doğrulama

Kurallar yüklenmiş olmalı, engellenen hedefler başarısız olmalı, genel olanlar ise çalışmaya devam etmeli:

Bash
sudo ufw status verbose ping -c 1 10.0.0.1 # başarısız olmalı ping -c 1 192.168.1.1 # başarısız olmalı curl -m 5 http://10.0.0.1 # başarısız olmalı ping -c 2 1.1.1.1 # başarılı olmalı dig +short example.com # çözümlenmeli curl -I https://www.debian.org

ufw deny out ile başarısız ping genellikle Operation not permitted bildirir. Paket sayaçları isabetleri doğrular:

Bash
sudo iptables -L ufw-user-output -n -v sudo iptables -L ufw-before-output -n -v

🛠️ Sorun giderme

DNS çalışmayı bıraktı. Çözümleyiciniz özel bir aralıkta. sudo ufw status numbered ile sırayı kaldırın ya da düzeltin, sonra sudo ufw insert 1 allow out to PRIVATE_DNS_IP port 53 ekleyin. Ağ yapılandırmanızda genel bir çözümleyiciye de geçebilirsiniz.

Değişiklikten sonra IPv6 bozuldu. Muhtemelen fe80::/10 aralığını ya da fc00::/7 içindeki bir ağ geçidini engellediniz. Kuralı sudo ufw delete deny out to fc00::/7 ile silin ve yalnızca gerekeni yeniden ekleyin.

Özel ağdaki bir hizmete (VPN, iç API) erişemiyorsunuz. O tam adres için ufw insert 1 allow out to PRIVATE_IP ile izin kuralı ekleyin. SSH'in kendisine erişemiyorsanız sunucuya herhangi bir konsol erişimi kullanın ve sudo ufw disable çalıştırın.


🔒 VPS'iniz artık yanlışlıkla özel ağları taramıyor: bu türden kötüye kullanım bildirimleri durmalı.

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör

Çerez kullanıyoruz

Sitemizdeki deneyiminizi iyileştirmek için analiz çerezleri kullanıyoruz. Hiçbir veri üçüncü taraflara satılmaz. Daha fazlasını şurada öğrenin: gizlilik politikası.