iptables ile Sanal Sunucularda Güvenlik Duvarı

Sanal sunuculara yönelik saldırılar gittikçe daha karmaşık hâle geliyor olsa da, bu tehditlere karşı koymak için her zaman pahalı donanımlar veya üçüncü taraf yazılımlar gerekmez. Çoğu zaman işletim sisteminin kendi sunduğu araçları kullanmak, güvenliğin en temel adımıdır.

Linux ortamında bu rolü üstlenen en önemli araçlardan biri iptables’tır. Paket filtreleme sistemiyle çalışan iptables, yöneticilerin ağ trafiğini doğrudan kontrol etmesine imkân verir.

Bununla birlikte, yalnızca ağ trafiği güvenliği yeterli olmayabilir; sistemin disk yapısının da korunması gerekir. Burada fsck komutu devreye girer ve dosya sistemi hatalarını tarayıp onararak güvenliği destekler. Böylece iptables ağ seviyesinde, fsck ise veri bütünlüğünde koruma sağlar.

iptables Nedir?

Iptables, Linux çekirdeğinin Netfilter modülü üzerinde çalışan bir güvenlik aracı olarak bilinir. Görevi, ağ üzerinden gelen ya da ağdan çıkan veri paketlerini belirlenmiş kurallara göre filtrelemek ve gerektiğinde yönlendirmektir.

Neden Iptables’ı Kullanmalısınız?

  • Paket düzeyinde kontrol özelliği ile UFW veya Firewalld gibi daha üst düzey araçların aksine, trafiği en temel seviyede, paket paket yönetme imkanı sunar.
  • Her türlü ağ senaryosu için özelleştirilebilir.
  • Gelen bağlantı hızlarını sınırlayarak basit hizmet reddi (DoS) saldırılarına karşı ilk savunma katmanını oluşturur.

iptables’ın 3 Ana Bileşeni

iptables’ın mantığını kavramak için üç temel yapı bilinmelidir: tablolar, zincirler ve hedefler.

Tablolar (Tables)

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

Filter → Bir paketin kabul edilip edilmeyeceğine karar verilen tablodur. Güvenlik duvarı politikalarının çoğu burada uygulanır.

NAT → Paketin port veya IP adresini değiştirerek yönlendirme ve internet paylaşımı sağlar. Özellikle masquerading için kritik bir tablodur.

Mangle → Paketlere işaret eklemek veya başlık değerlerini (TTL, TOS vb.) değiştirmek için kullanılır.

Raw → Paketler, bağlantı izleme modülüne girmeden önce bu tablo üzerinden işlenir.

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 hedefleri, bir pakete uygulanacak işlemi gösterir. ACCEPT, paketi kabul eder; DROP, paketi sessizce düşürerek saldırganı yanıltır; REJECT, paketi reddeder ve hata mesajı verir. LOG, paketi yalnızca kaydeder ve işleme devam eder. RETURN ise özel zincirlerde sürecin sona erdiğini işaret ederek paketi geri yönlendirir.

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 yalnızca basit kurallarla kullanılmaz. Sanal sunucuların yönetimi sırasında yöneticilerin sıkça ihtiyaç duyduğu birçok ek komut da bulunur. Bu komutlar, kuralları listelemekten yeni kural tanımlamaya, portları yönetmekten tüm ağı engellemeye kadar uzanır. Aşağıda en yaygın kullanılan komutların özetine yer verilmiştir.

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