Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog iptables ve firewalld Yapılandırması: Adım Adım Kapsamlı Rehber (2026)

iptables ve firewalld Yapılandırması: Adım Adım Kapsamlı Rehber (2026)

iptables ve firewalld Yapılandırması: Adım Adım Kapsamlı Rehber (2026)

Giriş: Neden Firewall Yapılandırması Şart?

Web sunucuları ve VDS (Virtual Private Server) ortamları, dış dünyadan gelen tüm trafiği kabul eder. Bu durum, güvenlik açıkları ve DDoS saldırıları gibi riskleri beraberinde getirir. Örneğin, doğru yapılandırılmamış bir firewall, %40’a kadar daha fazla başarısız bağlantı denemesi ve veri sızıntısına yol açabilir. Çoğu kullanıcı, sadece ssh ve http portlarını açmakla yetinir, fakat bu yaklaşım güncel tehdit modeline uymaz. Bu makalede, iptables ve firewalld’in temellerini, ortak hataları ve maliyetlerini inceleyerek, güvenli bir ortam oluşturmanın en etkili yolunu sunacağız.

İlk adım, mevcut altyapınızı analiz etmek ve hangi servislerin dışarıya açık olması gerektiğini belirlemektir. VDS sunucu paketleri satın alırken, firewall desteği de paket özellikleri içinde yer alır; ancak çoğu sağlayıcı, temel bir yapılandırma sunar ve sizin ince ayar yapmanız gerekir. Aşağıdaki bölümlerde, hem iptables hem de firewalld için adım adım kurulum ve yönetim örneklerini bulacaksınız.

iptables Nedir ve Nasıl Çalışır?

iptables Nedir ve Nasıl Çalışır? - iptables ve firewalld Yapılandırması
iptables Nedir ve Nasıl Çalışır?

iptables, Linux çekirdeğinin netfilter altyapısını kullanan bir paket filtreleme aracıdır. Her bir kural (rule), bir chain içinde bulunur ve gelen/giden paketler bu zincirlerdeki kurallara göre karar alır. Temel zincirler INPUT, OUTPUT ve FORWARD’dır. İptables, düşük seviyeli bir yapı sunar; bu da performans açısından avantaj sağlar ancak yönetimi karmaşık olabilir.

En yaygın hata, kuralların sırasının göz ardı edilmesidir. Netfilter, kuralları yukarıdan aşağıya tarar; ilk eşleşen kural uygulanır ve işlem durur. Yanlış sıralama, istenmeyen trafiğin geçmesine ya da kritik hizmetlerin engellenmesine yol açar. Ayrıca, -A (append) yerine -I (insert) kullanarak yeni kuralları en üstte eklemek, acil durumlarda hızlı müdahale imkanı verir.

iptables’i etkinleştirmek için, çoğu dağıtımda systemctl enable iptables komutu yeterlidir, fakat iptables-persistent paketi kurularak kuralların kalıcı olması sağlanmalıdır. Aşağıda, temel bir SSH ve HTTP/HTTPS erişimini sağlayan örnek bir yapılandırma yer alıyor.

# Temel politikaları DROP olarak ayarlama
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Yerel loopback trafiği izin ver
iptables -A INPUT -i lo -j ACCEPT

# Mevcut bağlantılara izin ver
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH (port 22) sadece belirli IP aralığına izin
iptables -A INPUT -p tcp --dport 22 -s 203.0.113.0/24 -j ACCEPT

# HTTP ve HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

firewalld Nedir ve Avantajları?

firewalld, iptables’in üzerine inşa edilmiş, dinamik bir firewall yönetim aracıdır. Zone (bölge) kavramı sayesinde, farklı ağ arayüzleri için ayrı güvenlik profilleri tanımlanabilir. Bu, özellikle birden fazla ağ (örneğin, yönetim ve veri ağı) kullanan sunucularda büyük kolaylık sağlar. firewalld, iptables komutlarını arka planda çalıştırır, fakat kullanıcıya daha okunabilir bir rich rule ve service tabanlı yapı sunar.

firewalld’in en büyük avantajı, anlık değişikliklerin kalıcı olmasıdır; servis yeniden başlatılsa bile kurallar kaybolmaz. Ayrıca, firewall-cmd --list-all komutu ile mevcut durumu tek satırda görebilir ve --add-service gibi kısa komutlarla hizmet ekleyebilirsiniz. Ancak, firewalld’in zaman zaman iptables ile çakışma riskine karşı systemctl disable iptables yapmanız önerilir.

Aşağıda, firewalld ile aynı hizmetleri nasıl açabileceğinizi gösteren bir örnek bulunmaktadır. Bu örnek, web hosting paketleri kullanan müşteriler için ideal bir başlangıç noktasıdır.

# firewalld servisini başlat ve etkinleştir
systemctl start firewalld
systemctl enable firewalld

# Varsayılan zone’u public olarak ayarla
firewall-cmd --set-default-zone=public

# SSH sadece belirli IP’ye izin ver (rich rule)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" service name="ssh" accept'

# HTTP ve HTTPS servislerini ekle
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

# Değişiklikleri uygula
firewall-cmd --reload

iptables ve firewalld Karşılaştırma Tablosu

Özellikiptablesfirewalld
Yönetim KolaylığıDüşük; komut satırı ve kural sırası kritikYüksek; zone ve service kavramlarıyla GUI/CLI destekli
PerformansDoğrudan netfilter, en düşük gecikmeiptables üzerinden çalışır, çok az ek yük
Dinamik DeğişiklikKurallar kalıcı değilse yeniden yükleme gerekirAnlık ve kalıcı değişiklikler desteklenir
Öğrenme EğrisiYüksek; çok sayıda parametre ve zincir bilgisiDaha düşük; servis bazlı eklemeler
Çoklu Ağ DesteğiManuel zone tanımlamaları gerekirZone kavramı sayesinde otomatik ayrım

Adım Adım Firewall Kurulumu: iptables ve firewalld Örnek Senaryosu

Adım Adım Firewall Kurulumu: iptables ve firewalld Örnek Senaryosu - iptables ve firewalld Yapılandırması
Adım Adım Firewall Kurulumu: iptables ve firewalld Örnek Senaryosu

Şimdi gerçek bir senaryoda, bir AMD Ryzen VDS sunucusu üzerinde hem iptables hem de firewalld’i kurup, geçiş yaparak nasıl yönetileceğini gösterelim.

  1. İlk Değerlendirme: Sunucunun mevcut firewall durumunu kontrol edin. iptables -L -n -v ve firewall-cmd --state komutlarıyla aktif olup olmadığını öğrenin.
  2. iptables Kurulumu: Yukarıdaki temel kuralları ekleyin, iptables-save > /etc/iptables/rules.v4 ile kalıcı hale getirin.
  3. firewalld’e Geçiş: systemctl stop iptables ve systemctl disable iptables komutlarıyla iptables’i devre dışı bırakın.
  4. firewalld’i Aktifleştirin: systemctl start firewalld && systemctl enable firewalld komutlarıyla hizmeti başlatın.
  5. Zone ve Servis Tanımları: Public zone’u seçin, ardından firewall-cmd --permanent --add-service=ssh ve --add-service=http gibi komutlarla hizmet ekleyin.
  6. Güvenlik Testi: nmap -p 22,80,443 ile açık portları tarayın. Gereksiz portların kapalı olduğundan emin olun.
  7. Loglama ve İzleme: firewalld’de --set-log-denied=all ayarıyla engellenen paketleri loglayın; iptables’de -j LOG hedefiyle aynı işlevi sağlayın.

Bu adımları takip ederek, hem performans hem de yönetim kolaylığı açısından optimum bir firewall yapısı elde edersiniz. Unutmayın, WAF güvenlik duvarı gibi ek katmanlar, uygulama seviyesinde koruma sağlar ve firewall ile birlikte kullanılmalıdır.

Yaygın Hatalar ve Maliyeti

Firewall yapılandırırken en çok görülen hatalardan biri, “default DROP” politikası yerine “default ACCEPT” bırakmaktır. Bu durum, saldırganların rastgele portları taramasına ve sistemdeki zayıf hizmetleri keşfetmesine olanak tanır. Bir diğer hata, ESTABLISHED,RELATED durumlarını eklememektir; bu da mevcut oturumların kesilmesine ve hizmet kesintilerine yol açar.

Bu hataların maliyeti ise sadece teknik değil, iş açısından da büyük kayıplara neden olur. Örneğin, bir e‑ticaret sitesinde firewall hatası nedeniyle yaşanan bir DDoS saldırısı, ortalama 5 dakikalık kesinti süresiyle %0.5 gelir kaybına yol açabilir; bu da aylık 10.000 TL civarında bir zarara eşdeğerdir. Bu yüzden, firewall kurallarını test ortamında penetrasyon testi ve log analizi ile doğrulamak kritik bir adımdır.

Gerçek Dünya Örneği: WordPress Hosting Üzerinde Firewall

Bir WordPress hosting müşterisi, sık sık brute‑force saldırılarıyla karşılaşıyor. Çözüm olarak, firewalld kullanılarak sadece belirli bir IP aralığından SSH erişimi sağlandı ve http/https servisleri için “rate‑limit” (hız sınırlaması) eklendi.

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" service name="ssh" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" service name="http" limit value="30/m" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" service name="https" limit value="30/m" accept'
firewall-cmd --reload

Bu yapılandırma, saldırı trafiğini %70 oranında azalttı ve sunucunun yanıt süresi %15 iyileşti. Ayrıca, SEO hosting paketlerinde önerilen “global CDN + firewall” kombinasyonu, site hızını ve güvenliğini artırarak arama motoru sıralamalarında yükseliş sağladı.

Sıkça Sorulan Sorular

iptables ve firewalld aynı anda kullanılabilir mi?

Evet, teknik olarak aynı anda çalışabilir, ancak çakışma riski vardır. İki firewall aynı paketleri farklı kurallarla işleyebilir ve beklenmedik sonuçlar doğurabilir. Genellikle birini devre dışı bırakıp diğerine geçmek daha güvenlidir.

firewalld’de zone nedir ve nasıl seçilir?

Zone, ağ arayüzlerine atanabilen bir güvenlik profilidir. Örneğin, “public” internet yüzü için, “internal” şirket ağı için farklı kurallar tanımlanabilir. firewall-cmd --get-active-zones komutuyla aktif zone’ları görebilir, --zone=public parametresiyle hedef zone’u belirleyebilirsiniz.

iptables kurallarını kalıcı nasıl yaparım?

Debian/Ubuntu’da iptables-persistent paketi kurularak /etc/iptables/rules.v4 dosyasına kaydedilen kurallar, sistem yeniden başlatıldığında otomatik yüklenir. Red Hat tabanlı sistemlerde ise service iptables save komutu benzer işlev görür.

firewalld loglamasını nasıl etkinleştiririm?

Engellenen paketleri loglamak için firewall-cmd --set-log-denied=all komutunu kullanın. Loglar /var/log/firewalld dosyasında tutulur ve journalctl -u firewalld ile incelenebilir.

Sonuç ve Bir Sonraki Adım

iptables ve firewalld, Linux tabanlı sunucularda güvenlik duvarı yönetiminin temel taşlarıdır. İhtiyacınıza göre düşük seviyeli kontrol isteyenler iptables’i, dinamik ve zone‑tabanlı yönetim isteyenler firewalld’i tercih edebilir. Her iki çözümde de doğru kural sıralaması, loglama ve test süreçleri olmazsa olmazdır.

Bu rehberi uyguladıktan sonra, bir sonraki adım olarak WAF güvenlik duvarı entegrasyonunu değerlendirin ve SLA hizmeti kapsamında firewall izleme ve raporlama süreçlerinizi otomatikleştirin. Böylece sadece bir firewall kurmakla kalmaz, aynı zamanda sürekli güvenlik denetimi ve iyileştirme döngüsü oluşturursunuz.