UFW (Uncomplicated Firewall) ile Güvenlik Duvarı Yönetimi
Sunucularımızın ve sistemlerimizin güvenliği, siber güvenlik stratejimizin temel taşlarından biridir. Erişim kontrolü, yetkisiz bağlantıları engellemek ve yalnızca izin verilen trafiğe yol vermek için hayati öneme sahiptir. Linux sistemlerde yaygın olarak kullanılan iptables güçlü olsa da, karmaşık yapısı nedeniyle yönetimi zorlayıcı olabilir. İşte bu noktada UFW (Uncomplicated Firewall) devreye girer. UFW, iptables için kullanıcı dostu bir arayüz sunarak güvenlik duvarı yönetimini basitleştirir. Bu blog yazısında, UFW’nun temel kullanımı ve gelişmiş özellikleriyle sistemlerinizi nasıl güvence altına alabileceğinizi inceleyeceğiz.
Kurulum ve İlk Adımlar
Çoğu Ubuntu ve Debian tabanlı dağıtımda UFW varsayılan olarak yüklüdür. Eğer yüklü değilse, aşağıdaki komutla kolayca kurabilirsiniz:
sudo apt update
sudo apt install ufw
UFW’nun mevcut durumunu kontrol etmek için:
sudo ufw status
Varsayılan olarak “inactive” (etkin değil) olacaktır.
Varsayılan Politikaları Ayarlama
Güvenlik duvarınızı etkinleştirmeden önce varsayılan politikaları belirlemek kritik öneme sahiptir. Güvenli bir başlangıç için gelen bağlantıları reddetmeyi ve giden bağlantılara izin vermeyi tercih ederiz. Bu, sunucunuzun dışarıdan erişime kapalı olmasını sağlarken, gerekli güncellemeleri veya dış servislere bağlantıları yapabilmesine olanak tanır.
sudo ufw default deny incoming
sudo ufw default allow outgoing
UFW’yu Etkinleştirme ve Devre Dışı Bırakma
Varsayılan politikaları ayarladıktan ve gerekli portları açtıktan sonra UFW’yu etkinleştirebilirsiniz. ÖNEMLİ: Eğer uzaktan bir sunucuya bağlıysanız, UFW’yu etkinleştirmeden önce SSH portunuzu (varsayılan 22) açtığınızdan emin olun, aksi takdirde bağlantınız kesilebilir.
sudo ufw enable
Bir onay mesajı alacaksınız. “y” tuşuna basarak devam edin. UFW artık etkin ve sistem başlangıcında otomatik olarak başlayacaktır.
UFW’yu devre dışı bırakmak için:
sudo ufw disable
Kural Oluşturma: Gelen Bağlantılara İzin Verme
Port Numarasına Göre İzin Verme
Belirli bir porta gelen bağlantılara izin vermek için:
sudo ufw allow 22 # SSH için
sudo ufw allow 80 # HTTP için
sudo ufw allow 443 # HTTPS için
Alternatif olarak, protokol belirtebilirsiniz:
sudo ufw allow 22/tcp
sudo ufw allow 53/udp
Servis Adına Göre İzin Verme
UFW, yaygın servisler için önceden tanımlanmış isimleri destekler. Bu, kural yazmayı daha da kolaylaştırır:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Belirli Bir IP Adresine İzin Verme
Yalnızca belirli bir IP adresinden gelen bağlantılara izin vermek için:
sudo ufw allow from 192.168.1.100 to any port 22
Bu kural, sadece 192.168.1.100 adresinden gelen SSH bağlantılarına izin verir.
Belirli Bir IP Aralığına İzin Verme
Bir IP bloğundan gelen bağlantılara izin vermek için CIDR notasyonunu kullanın:
sudo ufw allow from 192.168.1.0/24 to any port 22
Kural Oluşturma: Gelen Bağlantıları Reddetme
Belirli bir porta veya IP’den gelen bağlantıları reddetmek için deny komutunu kullanın:
sudo ufw deny 23 # Telnet'i reddet
sudo ufw deny from 192.168.1.101 to any port 80
Unutmayın, UFW kuralları yukarıdan aşağıya doğru değerlendirilir ve ilk eşleşen kural uygulanır. Bu nedenle, genel bir reddetme kuralından önce özel izin verme kurallarınızı tanımlamanız önemlidir.
Mevcut Kuralları Görüntüleme ve Yönetme
Kuralları Listeleme
Mevcut tüm kuralları ve durumlarını görmek için:
sudo ufw status verbose
Kuralları numaralandırılmış bir listede görmek, silme işlemlerinde kolaylık sağlar:
sudo ufw status numbered
Kural Silme
Bir kuralı silmenin iki yolu vardır:
1. Numarasına Göre Silme: Önce sudo ufw status numbered komutuyla kuralın numarasını bulun, sonra:
sudo ufw delete 1 # Listedeki ilk kuralı sil
2. Kuralın Kendisiyle Silme: Kuralı oluşturduğunuz komutun aynısını delete ile kullanarak silin:
sudo ufw delete allow 22/tcp
UFW Günlükleme (Logging)
UFW, güvenlik duvarı olaylarını sistem günlüklerine kaydedebilir. Bu, olası saldırıları izlemek veya kural sorunlarını gidermek için faydalıdır.
sudo ufw logging on # Günlüklemeyi etkinleştir
sudo ufw logging off # Günlüklemeyi devre dışı bırak
sudo ufw logging low # Düşük seviyede günlükleme (varsayılan)
sudo ufw logging medium # Orta seviyede günlükleme
sudo ufw logging high # Yüksek seviyede günlükleme
Günlükler genellikle /var/log/syslog veya /var/log/ufw.log adresinde bulunabilir.
UFW’yu Sıfırlama
Tüm UFW kurallarını ve ayarlarını varsayılan durumuna sıfırlamak için:
sudo ufw reset
Bu komut, tüm kuralları siler ve UFW’yu devre dışı bırakır. Dikkatli kullanın!
Sonuç ve En İyi Uygulamalar
UFW, Linux sistemleriniz için güçlü ve yönetilebilir bir güvenlik duvarı çözümüdür. Doğru yapılandırıldığında, sunucularınızı yetkisiz erişimden korumanın ilk ve en önemli adımlarından biridir. Unutmayın:
- Minimum Yetki Prensibi: Yalnızca gerçekten ihtiyaç duyulan portlara ve IP adreslerine izin verin.
- Düzenli İnceleme: Güvenlik duvarı kurallarınızı periyodik olarak gözden geçirin ve güncelleyin.
- Günlükleri İzleme: UFW günlüklerini düzenli olarak kontrol ederek olası güvenlik ihlallerini veya şüpheli aktiviteleri tespit edin.
Umarız bu rehber, UFW ile güvenlik duvarı yönetimine başlamanıza yardımcı olmuştur. Güvenli sistemler, bilgili yöneticilerle başlar!
