Sanal Sunucu Güvenliği için iptables ile IP Engelleme

Sanal sunuculara yönelik saldırılar her geçen gün daha karmaşık bir hâl alsa da, bunlardan korunmak için daima pahalı cihazlara veya ek yazılımlara gerek yoktur. Çoğu durumda, işletim sisteminin sunduğu araçları doğru kullanmak güvenliğin ilk basamağını oluşturur.

Linux sistemlerinde bu görevi üstlenen araçlardan biri iptables’tır. Paket filtreleme prensibiyle çalışan bu güvenlik duvarı, yöneticilere ağ trafiği üzerinde tam denetim sağlar.

Ancak yalnızca ağ güvenliği yeterli değildir; aynı zamanda disk yapısını korumak da büyük önem taşır. Bu noktada fsck komutu devreye girerek dosya sisteminde oluşabilecek hataları tespit eder ve onarır. Böylece iptables ağ trafiğini güvence altına alırken, fsck verilerin bütünlüğünü sağlayarak korumayı tamamlar.

iptables Nedir?

Linux çekirdeğinin bir bileşeni olan Netfilter yapısı üzerine inşa edilen Iptables, paket filtreleme aracı olarak görev yapar. Amacı, gelen ve giden tüm veri trafiğini tanımlı kurallara göre kontrol edip yönlendirmektir.

Neden iptables Tercih Edilmeli?

UFW veya Firewalld gibi araçların aksine iptables, trafiği doğrudan paket düzeyinde kontrol ederek en temel seviyede yönetim sağlar.

Farklı ağ yapıları için tamamen özelleştirilebilir bir esneklik sunar.

Ayrıca bağlantı hızlarını sınırlandırma özelliği ile basit DoS saldırılarına karşı etkili bir koruma mekanizması oluşturur.

iptables’ın Temel Katmanları

iptables, üç ana unsur üzerinden çalışır: tablolar, zincirler ve hedefler. Bu yapılar mantığını anlamak için kritik öneme sahiptir.

Tablolar (Tables)

Kuralların kategorize edildiği yapılardır.

Filter → Paketin geçişine izin verip vermeyeceğine karar verir. Güvenlik duvarı kurallarının çoğunluğu bu tabloda yer alır.

NAT → Paketin kaynak veya hedef adresini/portunu değiştirir. Port Yönlendirme, Masquerading ve internet paylaşımı için kritiktir.

Mangle → Paketin başlık bilgilerini TTL, TOS, vb. değiştirme ve özel işaretleme işlemleri için kullanılır.

Raw → Paketin, bağlantı izleme sisteminden önce işlenmesi için kullanılır.

Zincirler (Chains)

Zincirler, paketlerin ağ yolculuğunun belirli bir aşamasında, ağ kartına ulaştığında, dışarı çıkarken veya üzerinden geçerken uygulanan sıralı kural setleridir.

INPUT → Sunucunun SSH, HTTP gibi servisleri için ana kontrol noktası.

OUTPUT → Sunucudan dışarı giden trafiği kontrol eder.

FORWARD → Sunucunun bir router/yönlendirici gibi çalıştığı durumlarda kullanılır.

Hedefler (Targets)

iptables içerisinde hedefler, paketlerin işlem sonucunu belirler. ACCEPT güvenli bağlantılara izin verir. DROP, paketi sessizce yok ederek saldırganın fark etmesini önler. REJECT, paketi reddeder ve hata mesajı döndürür. LOG, paketi kayıt altına alır ama süreci kesmez. RETURN, özel zincirlerde kuralın sona erdiğini bildirip paketi önceki zincire yollar.

Linux’ta iptables Kurulumu Nasıl Yapılır?

Linux sistemlerinde güvenliği sağlamak için kullanılan iptables genellikle hazır kurulu gelir. Ancak bazı durumlarda manuel kurulum yapmak gerekir. Bu işlem, kullanılan dağıtıma göre değişiklik gösterir.

Debian ve Ubuntu Tabanlı Sistemler

Bu sistemlerde iptables genellikle yüklü gelir. Kurulu değilse şu adımları izleyebiliriz.

Red Hat, CentOS, Fedora ve AlmaLinux

Bu dağıtımlar iptables-services paketini kullanır.

Arch Linux ve Türevleri

Kritik Komutlar ve Kullanım

iptables kullanırken yalnızca temel komutlarla sınırlı kalmak gerekmez. Sanal sunucuların kullanımda sistem yöneticilerinin sıkça başvurduğu birçok yardımcı komut da vardır. Bu komutlar, mevcut kuralları görüntülemekten yeni kurallar eklemeye, portları açmaktan tüm trafiği engellemeye kadar geniş bir yelpazeyi kapsar. Aşağıda en sık kullanılan komutların kısa bir özetini bulabilirsiniz.

Kuralları Listelemesudo iptables -LMevcut kuralları gösterir.
SSH Portunu Açmasudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT22. porta gelen TCP trafiğine izin verir.
Tüm Gelen Trafiği Engellemesudo iptables -P INPUT DROPVarsayılan politikayı DROP olarak ayarlar (Yüksek güvenlik).
Tüm Kuralları Sıfırlamasudo iptables -FTüm kuralları temizler.

iptables İle Savunma Kuralları Oluşturma

Belirli Bir IP Adresini Engelleme

Zararlı olduğu bilinen bir IP adresini tamamen aşağıdaki temel komutla engelleyebilirsiniz.

Bazen de birden fazla IP adresi, sanal sunucuza tehdit olarak gösterilir. Bunun için aşağıdaki komutu kullanalım.

ICMP (Ping) İsteklerini Engelleme

Ağ keşfi ve tarama saldırılarını önlemek için ping isteklerini engelleyebilirsiniz.

Basit DoS Koruması

HTTP portuna (80) gelen bağlantıları hız sınırlamasıyla kontrol edebilirsiniz. Bu kural, aşırı istek gönderilmesini engelleyerek basit DoS saldırılarına karşı koruma sağlar.

iptables Kuralları Nasıl Kaydedilir?

iptables ile yazılan kurallar varsayılan olarak geçicidir. Yani sistem yeniden başlatıldığında tüm kurallar silinir. Bu nedenle, oluşturduğunuz kuralları kalıcı hale getirmeniz gerekir.

Kuralları Kaydetme

Mevcut kurallarınızı bir dosyaya kaydedebilirsiniz:

Otomatik Yükleme

Kuralların her yeniden başlatmadan sonra otomatik olarak yüklenmesi için paketi kuralım.

Yorum yapın