Buyukweb
Linux Firewall Karşılaştırma: iptables, nftables, firewalld, ufw

Linux Firewall Karşılaştırma: iptables, nftables, firewalld, ufw

Linux sunucunuzu güvenlik duvarı ile nasıl korursunuz? iptables ve firewalld ile port engelleme, IP izin verme, DDoS koruma kuralları ve sunucu güvenliği rehberi.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

Linux Firewall Karşılaştırma: iptables, nftables, firewalld, ufw

Yeni VDS aldınız, root erişiminiz var, ilk soru: hangi firewall? Linux'ta bugün cebinizde dört araç var — eski-yaygın iptables, modern halefi nftables, Red Hat ailesinde zone tabanlı firewalld, Ubuntu / Debian'da basit yazımlı ufw. Hepsi aynı çekirdek altyapıya (Netfilter / nf_tables) konuşur ama syntax, performans, dağıtım uyumu farklı. Bu rehber dördünü karşılaştırıyor, gerçek senaryolarda hangisini seçeceğinize yardım eden komutları veriyor, iptables'tan nftables'a geçiş yolunu anlatıyor.

Buyukweb perspektifi: 17+ yıldır Bursa Tier 3 veri merkezinde VDS, hosting ve dedicated. Tüm VDS paketlerinde L3+L4+L7 DDoS koruması veri merkezi ucunda standart; firewall + fail2ban sıkılaştırması sizde — VDS'lerimiz unmanaged. cPanel paketlerinde CSF + Imunify360 önceden yapılandırılı gelir. Komutlar E5-V4 VDS (₺250/ay başlangıç) üzerinde doğrudan çalışır. Destek: 0850 302 60 70.

Kısa Karar Tablosu — Hangisi Sizin İçin?

Senaryo Önerilen Neden
Yeni başlayan + Ubuntu / Debian VDS ufw En sade syntax, 5 komutta çalışır kural
AlmaLinux 9 / Rocky 9 / RHEL 9 firewalld Dağıtım default, zone tabanlı, dynamic reload
Performans-kritik / 10 Gbps+ nftables Atomic update, hızlı paket işleme
Eski legacy script + iptables ezberi iptables (nftables backend) Alışkanlık + modern altyapı
cPanel sunucu CSF WHM GUI, LFD, hazır gelir

Önemli: "Tek tık tüm tehditler engellenir" değil. Firewall temel hattır, ekstra hat değil — açık portları kısıtlar, ama uygulama açıklarını (SQLi, RCE, kötü konfigürasyon) yakalamaz; o iş WAF (ModSecurity, Imunify360, Cloudflare) ve fail2ban / CrowdSec katmanına ait.

Tarihsel Evrim ve 2026'da Default Tablo

  • ipchains (1999, Linux 2.2) — modern sistemlerde yok.
  • iptables (2000, Linux 2.4) — 20+ yıl default. Modern dağıtımda iptables-nft üzerinden nftables backend.
  • firewalld (2011, Fedora / RHEL) — zone + servis adı + dynamic reload.
  • nftables (2014, Linux 3.13) — IPv4+IPv6+ARP+bridge tek syntax, atomic update, set lookup. RHEL 8+, Debian 11+ default backend.
  • ufw (2009, Ubuntu) — basit komut wrapper.
Dağıtım Backend Default Frontend
Ubuntu 22.04 / 24.04 LTS nftables ufw (kapalı, manuel açılır)
Debian 12 nftables nftables.conf
AlmaLinux 9 / Rocky 9 / RHEL 9 nftables firewalld
CentOS 7 (legacy, EOL) iptables firewalld

Buyukweb VDS imajlarında Ubuntu 22.04 / 24.04, Debian 12, AlmaLinux 9 ve Rocky 9 hazır gelir; default frontend ile başlayın, paralel iki frontend çalıştırmayın.

iptables — Klasik, Hâlâ Yaygın

5 tablo (filter / nat / mangle / raw / security), 5 zincir (INPUT / OUTPUT / FORWARD / PREROUTING / POSTROUTING). İlk eşleşen kural kazanır.

iptables -L -n -v --line-numbers

# Default policy: gelmeyeni at
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Loopback + ESTABLISHED (stateful firewall'in ozu)
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH + HTTP/HTTPS + ICMP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

# IP block / IP-bound port izni
iptables -A INPUT -s 203.0.113.5 -j DROP
iptables -A INPUT -p tcp -s 198.51.100.10 --dport 2222 -j ACCEPT

# Kalicilik:
# Debian/Ubuntu: apt install iptables-persistent && netfilter-persistent save
# RHEL: service iptables save

Tuzak: Default policy DROP yapıp ESTABLISHED kuralı koymadan SSH oturumunuzu kaybedersiniz. Buyukweb VDS'te my.buyukweb.com panelinden VNC/KVM konsol açabilirsiniz, ama önce dikkatli olmak ucuz.

nftables — Modern Halef

iptables'ı tek araçla değiştirme projesi. IPv4 / IPv6 / ARP / bridge inet family altında birleşir, set / map ile 100K kural O(1) lookup, atomic update aktif bağlantıyı düşürmez, JSON çıktı doğal.

# Tablo + chain (default drop)
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }

# Temel kurallar
nft add rule inet filter input iif lo accept
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input ct state invalid drop
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input tcp dport { 80, 443, 8080 } accept
nft add rule inet filter input ip saddr 203.0.113.5 drop

# Dinamik blocklist (timeout'lu set)
nft add set inet filter blocklist { type ipv4_addr \; flags timeout \; }
nft add element inet filter blocklist { 203.0.113.5 timeout 24h }
nft add rule inet filter input ip saddr @blocklist drop

# Kalicilik
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftables

Buyukweb pratik: nftables 1 Gbps üzeri VDS'lerde iptables'a göre %15-30 düşük CPU; yüksek trafikli reverse proxy / API gateway için tercih edin.

firewalld — Zone Tabanlı, RHEL Ailesi

iptables / nftables backend'i üzerine zone kavramı: her ağ arayüzü bir zone'a (public, internal, dmz, trusted, drop, block, work, home) atanır, her zone'un kendi servis / port listesi var. --reload aktif bağlantıları kesmez. Detaylı AlmaLinux 9 zone / servis yapılandırması için firewalld AlmaLinux Zone Yapılandırma yazısına bakın; özet komutlar:

firewall-cmd --get-default-zone
firewall-cmd --get-active-zones

# Servis + port izni (--permanent kalici)
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload

# Rich rule ile IP block
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" reject'

# Aktif yapilandirmayi gor
firewall-cmd --list-all

firewalld'in dynamic reload'u canlı sunucuda altın değerinde: kural eklerken aktif HTTPS / SSH oturumu kesilmez.

ufw — Beginner-Friendly

iptables / nftables üzerine 5 satırlık kullanıcı dostu wrapper. Yeni başlayan, tek VDS, küçük site için ideal; her kural otomatik kalıcı, ek save yok.

apt install ufw -y                          # Debian'da elle (Ubuntu'da kurulu)
ufw default deny incoming
ufw default allow outgoing

ufw allow ssh                               # veya: ufw allow 22/tcp
ufw allow 80,443/tcp                        # multiport
ufw allow from 198.51.100.10 to any port 22 # IP-bound izin
ufw deny from 203.0.113.5                   # IP block

ufw limit ssh                               # 6 baglanti/30sn ust ban

ufw enable
ufw status verbose
ufw status numbered
ufw delete 5                                # numarayla sil

Dezavantaj: karmaşık NAT, log filter, custom rate limit için iptables / nftables seviyesine inmeniz gerekir.

ConfigServer Firewall (CSF) — cPanel Standardı

iptables / nftables üzerine WHM GUI + LFD (Login Failure Daemon) ekleyen ücretsiz çözüm; cPanel ile derin entegre. Buyukweb cPanel Hosting paketlerinde önceden yapılandırılmış gelir. Kendi cPanel'iniz varsa:

cd /usr/src && wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz && cd csf && sh install.sh
perl /usr/local/csf/bin/csftest.pl
# /etc/csf/csf.conf -> TESTING = "0"
csf -e && csf -r

csf -d 203.0.113.5 "Brute force"   # ban
csf -dr 203.0.113.5                 # unban
csf -ta 198.51.100.10 1d            # gecici allow

LFD fail2ban'a benzer çalışır: SSH / Exim / Dovecot / cPanel login log'larını okur, eşik aşan IP'yi csf.deny'a yazar.

iptables → nftables Geçiş

Eski iptables script'inizi modern dağıtıma taşıyın:

# 1. Disa al + ceviri
iptables-save > /tmp/old.rules
iptables-restore-translate -f /tmp/old.rules > /tmp/new.nft

# 2. Manuel inceleme (otomatik ceviri kusursuz degil)
less /tmp/new.nft

# 3. Test (staging VDS)
nft -f /tmp/new.nft
nft list ruleset

# 4. Production migration
systemctl disable --now iptables
cp /tmp/new.nft /etc/nftables.conf
systemctl enable --now nftables
reboot && nft list ruleset

Uyarı: iptables-restore-translate mükemmel değil — özel match modülleri (geoip, recent) manuel çevrilmeli veya set / meter ile yeniden yazılmalı. Önce staging'de test edin; aktif SSH oturumunu kaybetmemek için iki sekme açık tutun.

NAT, Port Forwarding, Logging, Rate Limit

Tipik senaryo: dış 8080 → iç 192.168.1.10:80 yönlendirme.

# iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT

# nftables
nft add table ip nat
nft add chain ip nat prerouting { type nat hook prerouting priority dstnat \; }
nft add chain ip nat postrouting { type nat hook postrouting priority srcnat \; }
nft add rule ip nat prerouting tcp dport 8080 dnat to 192.168.1.10:80
nft add rule ip nat postrouting masquerade

# firewalld
firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.10
firewall-cmd --permanent --zone=public --add-masquerade && firewall-cmd --reload

ufw NAT için /etc/ufw/before.rules manuel DNAT yazılır; bu seviyede ufw zayıf.

Logging + rate limit:

# iptables: rate limited LOG, sonra DROP
iptables -A INPUT -m limit --limit 10/sec --limit-burst 30 -j LOG --log-prefix "DROPPED: "

# nftables
nft add rule inet filter input limit rate 10/second burst 30 packets log prefix \"DROPPED: \"

# firewalld
firewall-cmd --set-log-denied=all && firewall-cmd --reload

# Log: /var/log/kern.log (Debian) veya journalctl -k (RHEL)

Rate limit — DDoS basit savunma (Buyukweb veri merkezi ucundaki L3-L4-L7 zaten paketleri filtreler; bu ek katman):

# SSH baglanti hizi 4/dk + 8 burst, asanlar DROP
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 4/min --limit-burst 8 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# Ayni IP'den 50+ HTTP baglantisi -> drop
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP

# nftables esdegeri
nft add rule inet filter input tcp dport 22 ct state new limit rate 25/minute burst 50 packets accept

Sınırı çok düşük tutmayın; gerçek kullanıcı 5 sekme açınca yanlış pozitif olur.

fail2ban Entegrasyonu + Kalıcılık Özeti

fail2ban firewall'ın alt katmanı değil kullanıcısıdır: log dosyalarını okur, eşik aşan IP'yi seçtiğiniz backend (iptables / nftables / firewalld) üzerinde otomatik banlar.

apt install fail2ban -y    # Debian/Ubuntu
dnf install fail2ban -y    # AlmaLinux/Rocky

# /etc/fail2ban/jail.local
[DEFAULT]
banaction = nftables-multiport       # veya iptables-multiport / firewallcmd-rich-rules
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port    = 22
maxretry = 3
bantime  = 86400

# Calistir
systemctl enable --now fail2ban
fail2ban-client status sshd
fail2ban-client set sshd unbanip 198.51.100.99
Frontend Kalıcılık Otomatik
iptables iptables-persistent / service iptables save Hayır
nftables /etc/nftables.conf + systemctl enable nftables Yarı
firewalld --permanent flag Evet
ufw ufw enable Evet
CSF csf.allow / csf.deny Evet

Yeni VDS'te mutlaka reboot testi yapın; nft list ruleset veya iptables -L ile kuralın geri yüklendiğini doğrulayın. Kalıcılığı kanıtlanmamış kural production sayılmaz.

Buyukweb Senaryolarında Hangisi?

  • WordPress + cPanel hosting: CSF + Imunify360 + ModSecurity aktif; kullanıcı dokunmaz. cPanel Web Hosting.
  • Tek VDS, Ubuntu, küçük blog / API: ufw yeterli — 4 satır kural.
  • AlmaLinux 9 VDS, mail + web + DB: firewalld zone'lar; DB portu sadece internal zone.
  • Reverse proxy + 5+ container: nftables, set ile IP grupla, NAT prerouting temiz.
  • 1 Gbps+: nftables + CrowdSec + Suricata IDS.

Sıkça Sorulan Sorular

iptables artık ölü mü?

Hayır — komut hâlâ var, motor değişti. Modern dağıtımlarda iptables çağrısı arka planda nftables'a çevrilir (iptables-nft). 20 yıllık script'leriniz çalışır; yeni script yazıyorsanız doğrudan nftables öğrenin.

firewalld vs ufw — hangisi?

Dağıtıma bakın. RHEL ailesinde firewalld kurulu gelir, zone tabanlı; Ubuntu / Debian'da ufw daha sade. İkisini aynı sunucuda çalıştırmayın — kural çakışır.

Performans farkı gerçekten var mı?

1-100 Mbps trafikte hiçbiri darboğaz değil. 1 Gbps üstü ve 10K+ kural senaryosunda nftables atomic update + set lookup ile iptables'a göre %15-30 düşük CPU. firewalld nftables backend kullandığında bu performansı alır.

Cloudflare proxy arkasındayken sunucu firewall gerekli mi?

Evet, hatta daha sıkı. Cloudflare bypass edilebilir; sunucu 80/443'ü sadece Cloudflare IP aralıklarına açın, SSH sadece sizin IP'nize.

Buyukweb VDS'de varsayılan firewall hangi?

İmaja göre: Ubuntu 22.04 / 24.04 → ufw kurulu ama disable, manuel ufw enable. AlmaLinux 9 / Rocky 9 → firewalld enable, sadece SSH açık. Debian 12 → nftables minimal kural. İlk root SSH'tan sonra firewall-cmd --list-all / ufw status / nft list ruleset ile gözden geçirin.

CSF gerekli mi?

cPanel sunucusunda olgun çözüm — WHM GUI, LFD süreç izleme, hazır script'ler. Buyukweb cPanel paketlerinde zaten kurulu. Plain VDS'te firewalld + fail2ban kombinasyonu da yeterli.

nftables atomic update'i ne işime yarar?

iptables -F + iptables-restore arasında milisaniyelik firewall yok penceresi olur; nftables nft -f file tek transaction uygular, pencere açılmaz. Mission-critical sunucuda fark eder.

Birden fazla firewall aynı anda çalışabilir mi?

Hayır — paralel kural setleri çakışır. Geçişte önce eskiyi disable: systemctl disable --now ufw && systemctl enable --now firewalld.

Sonuç

Linux firewall dünyasında dört araç var, altta tek motor (Netfilter / nf_tables). Doğru seçim dağıtım + senaryoya bağlı: Ubuntu / Debian'da ufw, RHEL ailesinde firewalld, performans-kritik senaryoda nftables, cPanel'de CSF. iptables komutu çalışır ama yeni öğreniyorsanız nftables'a yönelin. Hangi aracı seçerseniz seçin altı disiplin ortak: default policy DROP, ESTABLISHED kuralı önce, kalıcılık kontrolü, reboot testi, log + rate limit, fail2ban entegrasyonu.

Buyukweb E5-V4 VDS (₺250/ay başlangıç) Bursa Tier 3 veri merkezinde L3+L4+L7 DDoS koruması ile ekonomik başlangıç sağlar; cPanel ihtiyacında cPanel Web Hosting paketleri CSF + Imunify360 önceden yapılandırılmış gelir. 7/24 Türkçe destek: 0850 302 60 70.


İlgili Buyukweb Hizmetleri

Sorularınız için 0850 302 60 70 veya iletişim; Bursa Tier 3, 7/24 Türkçe destek.

Linux & Komut Satırı İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#iptables#firewalld#güvenlik#linux#komut satırı#terminal

Bu yazıyı paylaş