UFW ile Sadece Belirli IP'lerin Erişebileceği Portlar Nasıl Tanımlanır?
Sunucu güvenliği dendiğinde akla gelen ilk adımlardan biri, gereksiz portları kapatmak ve sadece ihtiyaç duyulan hizmetlere izin vermektir. Ancak bazen bir portu tamamen açmak yerine, yalnızca belirli IP adreslerinden gelen bağlantılara izin vermek isteyebilirsiniz. Örneğin, SSH bağlantılarını yalnızca şirket ofisinizin IP'sine, bir yönetim panelini de yalnızca sizin IP'nize açmak isterseniz ne yapmalısınız? İşte bu noktada UFW (Uncomplicated Firewall) devreye giriyor.
UFW, Linux sistemlerde kullanıcı dostu bir güvenlik duvarı aracıdır. İptables'ın karmaşıklığını ortadan kaldırarak SSH, web sunucusu, veritabanı gibi servisler için basit kurallar eklemenizi sağlar. Bu yazıda, UFW ile sadece belirli IP'lere port açma işlemini adım adım inceleyeceğiz.
UFW Kurulumu ve Temel Kullanım
Eğer UFW henüz kurulu değilse, aşağıdaki komutla kurabilirsiniz:
sudo apt install ufw
Kurulumdan sonra varsayılan politikaları belirlemek iyi bir alışkanlıktır. Genel olarak gelen tüm bağlantıları reddedip giden bağlantılara izin vermek istersiniz:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Ardından güvenlik duvarını etkinleştirebilirsiniz (SSH erişiminizi kaybetmemek için önce SSH kuralı eklemeniz önerilir).
Belirli bir IP'den Gelen Bağlantılara Port Açma
Diyelim ki yalnızca 192.168.1.100 IP adresinin SSH (port 22) üzerinden bağlanmasına izin vermek istiyorsunuz. Bunun için tek bir komut yeterlidir:
sudo ufw allow from 192.168.1.100 to any port 22
Bu kural, belirtilen IP dışındaki tüm SSH bağlantılarını engeller. Aynı mantıkla web sunucunuzu (port 80 veya 443) yalnızca belirli IP'lerin erişimine açabilirsiniz:
sudo ufw allow from 203.0.113.5 to any port 80
sudo ufw allow from 203.0.113.5 to any port 443
Birden Fazla IP veya Alt Ağa İzin Verme
Birden fazla IP adresini tek tek eklemek yerine, bir ağ bloğu (subnet) tanımlayabilirsiniz. Örneğin, 192.168.1.0/24 alt ağındaki tüm cihazların SSH erişimine izin vermek için:
sudo ufw allow from 192.168.1.0/24 to any port 22
Veya belirli bir IP aralığı (192.168.1.1 ile 192.168.1.100 arası) için ayrı ayrı kural eklemek yerine tek bir kuralda toplayabilirsiniz. Ancak UFW'de aralık belirtmek için CIDR notasyonu kullanmanız önerilir. Örneğin, 192.168.1.0/25 yarım ağ anlamına gelir.
İzin verilen IP listesini düzenli tutmak adına ufw'nin durumunu sık sık kontrol edin:
sudo ufw status numbered
Bu komut, kuralları numaralı olarak gösterir ve gereksiz bir kuralı silmek isterseniz sıra numarasını kullanabilirsiniz.
Özel Port Numaraları ve Protokoller
UFW'de protokol (TCP veya UDP) belirterek daha ince ayar yapabilirsiniz. Örneğin, DNS sorgularını UDP port 53 üzerinden yalnızca bir IP'ye açmak için:
sudo ufw allow from 10.0.0.2 to any port 53 proto udp
Protokol belirtmezseniz, UFW hem TCP hem UDP'yi varsayılan olarak kabul eder.
Gelişmiş Kullanım: Uygulama Profilleri
UFW, “OpenSSH” gibi uygulama profillerini de destekler. Ancak IP kısıtlaması yaparken uygulama adı yerine doğrudan port kullanmak daha esnektir. Yine de profilleri incelemek için:
sudo ufw app list
Eğer bir uygulama profilini IP ile kısıtlamak isterseniz, önce profili aktifleştirip ardından IP kuralı ekleyin. Ancak bu yöntem bazen karmaşaya yol açar; bu nedenle port bazlı kurallar daha nettir.
Kuralları Test Etme ve Sorun Giderme
Kuralları ekledikten sonra hemen test etmek en iyisidir. SSH kuralı eklediyseniz, farklı bir IP'den bağlanmayı deneyin. Bağlantı zaman aşımına uğrarsa kural çalışıyor demektir. Eğer hata alırsanız, günlük dosyalarını kontrol edin:
sudo tail -f /var/log/ufw.log
UFW'nin etkin olduğundan emin olun:
sudo ufw enable
Ayrıca, yanlışlıkla kendinizi kilitlememek için her yeni kuraldan sonra mevcut bağlantıyı kapatmadan önce farklı bir terminalden test yapmanızı öneririz.
Sonuç: Basit ve Güçlü Bir Çözüm
UFW ile belirli IP'lere port açmak, sunucu güvenliğini artırmanın en hızlı yollarından biridir. Özellikle SSH, yönetim panelleri ve veritabanı portları gibi hassas servislerde bu yöntemi kullanarak yetkisiz erişim riskini minimize edebilirsiniz. Unutmayın, güvenlik katmanlı bir yapıdır; UFW'yi diğer önlemlerle (örneğin, fail2ban, güçlü parolalar) birlikte kullanmanız en iyisidir. Kendi sunucunuzda denemeler yapın, kurallarınızı gözden geçirin ve gerektiğinde güncelleyin. Güvenli bağlantılar dileriz!