nftables Firewall Rehberi: Linux Sunucularda Modern Güvenlik Duvarı Yönetimi

nftables Firewall Rehberi: Linux Sunucularda Modern Güvenlik Duvarı Yönetimi - Corelux
26 Haz 2026
Paylaş:

nftables Firewall Rehberi: Linux Sunucularda Modern Güvenlik Duvarı Yönetimi

Son Güncelleme: Haziran 2026

nftables, Linux sunucularda ağ trafiğini filtrelemek, bağlantıları sınırlandırmak ve servisleri korumak için kullanılan modern bir güvenlik duvarı altyapısıdır. Eski iptables yaklaşımına göre daha sade kural yapısı, daha güçlü performans modeli ve merkezi yönetim mantığı sunar.

Bu rehberde nftables mimarisini, temel kavramları, pratik kurulum adımlarını, VPS/VDS ve kiralık sunucu ortamlarında güvenli firewall kural seti oluşturmayı ayrıntılı şekilde ele alacağız.

İçindekiler

nftables Nedir?

nftables, Linux çekirdeğinde paket filtreleme, ağ adresi çevirisi ve trafik sınırlama gibi işlemleri yönetmek için kullanılan modern bir ağ güvenliği aracıdır. Paket filtreleme, sunucuya gelen veya sunucudan çıkan ağ paketlerinin belirli kurallara göre kabul edilmesi, reddedilmesi ya da düşürülmesi işlemidir.

Bir web sunucusu, e-posta servisi, veritabanı sistemi veya uygulama API altyapısı internete açıldığında sürekli olarak istek alır. Bu isteklerin tamamı güvenilir değildir. Bot taramaları, SSH brute force denemeleri, açık port keşifleri, yetkisiz veritabanı bağlantıları ve anormal trafik dalgalanmaları sunucu güvenliğini tehdit edebilir. nftables bu noktada, sunucunun ağ kapısında çalışan bir denetim katmanı gibi davranır.

nftables yalnızca saldırıları engellemek için değil, aynı zamanda erişim politikası oluşturmak için de kullanılır. Örneğin SSH bağlantılarını yalnızca belirli IP adresleriyle sınırlayabilir, MySQL veya PostgreSQL portlarını dış dünyaya kapatabilir, yalnızca HTTP ve HTTPS servislerini herkese açık bırakabilirsiniz. Corelux üzerinde çalışan Sanal Sunucu, Kiralık Sunucu veya Bulut Sunucu ortamlarında nftables, temel güvenlik katmanlarından biri olarak değerlendirilebilir.

nftables özellikle modern Linux dağıtımlarında tercih edilir çünkü tek bir yapı üzerinden IPv4, IPv6, ARP ve bridge trafiği yönetilebilir. Bu, karmaşık firewall senaryolarında yönetimi kolaylaştırır ve hata riskini azaltır.

nftables ile iptables Arasındaki Farklar

iptables, uzun yıllar boyunca Linux sunucularda güvenlik duvarı yönetiminin temel aracı olarak kullanıldı. Ancak iptables yapısında IPv4 için iptables, IPv6 için ip6tables, Ethernet bridge trafiği için ebtables ve ARP için arptables gibi ayrı araçlar bulunuyordu. nftables ise bu parçalı yapıyı daha bütünleşik bir modelle değiştirir.

nftables tarafında kurallar daha okunabilir, set yapıları daha güçlü ve atomik kural yükleme mantığı daha güvenlidir. Atomik yükleme, kural setinin yarım uygulanması gibi sorunları azaltır. Özellikle uzaktan SSH ile yönetilen bir sunucuda yanlış firewall kuralı uygulamak erişimi kesebilir; bu nedenle kontrollü ve geri alınabilir yapı önemlidir.

Özellik iptables nftables
Yönetim Modeli Ayrı araçlar ve zincirler Tek ve birleşik yapı
IPv4 / IPv6 Ayrı komutlarla yönetilir inet ailesiyle birlikte yönetilebilir
Kural Okunabilirliği Daha uzun ve karmaşık olabilir Daha sade ve ifade gücü yüksek
Set Kullanımı Sınırlı ve ek modüllere bağlı Yerleşik, hızlı ve esnek
Performans Geleneksel zincir tarama yaklaşımı Daha verimli eşleşme ve veri yapıları

Bu farklar, özellikle çok sayıda IP engelleme listesi, servis bazlı kural yönetimi veya çift stack yani IPv4 ve IPv6 birlikte çalışan altyapılarda nftables kullanımını avantajlı hale getirir.

Temel nftables Kavramları

nftables ile çalışmadan önce bazı temel kavramları bilmek gerekir. Bu kavramlar, güvenlik duvarı kurallarının hangi aşamada ve hangi trafiğe uygulanacağını belirler.

  • Table: Kuralların mantıksal olarak toplandığı en üst düzey yapıdır. Örneğin inet filter tablosu hem IPv4 hem IPv6 trafiğini filtreleyebilir.
  • Chain: Paketlerin geçtiği işlem hattıdır. Gelen trafik için input, sunucudan çıkan trafik için output, yönlendirilen trafik için forward zinciri kullanılır.
  • Rule: Belirli bir koşul gerçekleştiğinde uygulanacak eylemi ifade eder. Örneğin TCP 22 portuna gelen bağlantıyı kabul etmek bir kuraldır.
  • Hook: Paketin çekirdek ağ yığını içinde hangi aşamada yakalanacağını belirtir. input, output ve forward yaygın hook türleridir.
  • Policy: Zincirde hiçbir kurala uymayan paketlere uygulanacak varsayılan davranıştır. Güvenli yaklaşım genellikle drop yani düşürme politikasıdır.
  • Set: Birden fazla IP, port veya ağ aralığını tek isim altında toplamak için kullanılır. Bu yapı büyük kural listelerini sadeleştirir.

Bu yapıların doğru anlaşılması, kural seti yazarken büyük kolaylık sağlar. Örneğin herkese açık bir web sunucusunda input zincirinde yalnızca 80 ve 443 portlarını açmak, veritabanı portunu ise sadece uygulama sunucusunun özel IP adresine izin verecek şekilde kısıtlamak yaygın bir senaryodur.

Kurulum ve Servis Yönetimi

Modern Linux dağıtımlarının çoğunda nftables paket depolarında hazır bulunur. Ubuntu ve Debian tabanlı sistemlerde kurulum için aşağıdaki komut kullanılabilir:

apt update
apt install nftables -y
systemctl enable nftables
systemctl start nftables

RHEL, AlmaLinux, Rocky Linux veya benzer sistemlerde paket yöneticisi farklı olabilir:

dnf install nftables -y
systemctl enable nftables
systemctl start nftables

Servisin durumunu kontrol etmek için:

systemctl status nftables

Mevcut kural setini görüntülemek için:

nft list ruleset

Kalıcı yapılandırma genellikle /etc/nftables.conf dosyasında tutulur. Bu dosyada yapılan değişiklikler servisin yeniden yüklenmesiyle aktif hale gelir. Ancak uzaktan erişilen üretim sunucularında kuralları uygulamadan önce mutlaka test yapılmalıdır. Yanlış bir drop politikası SSH erişimini kesebilir ve sunucuya panel, konsol veya KVM üzerinden müdahale gerektirebilir.

Özellikle Türkiye VDS Sunucu veya Türkiye Kiralık Sunucu üzerinde düşük gecikmeli hizmet veren projelerde firewall kuralları hem güvenliği hem de servis sürekliliğini doğrudan etkiler.

Temel Güvenlik Duvarı Kural Seti

Aşağıdaki örnek, tek sunuculu bir web projesi için başlangıç düzeyinde güvenli bir nftables kural setidir. Bu yapı loopback trafiğine izin verir, mevcut bağlantıları kabul eder, SSH, HTTP ve HTTPS portlarını açar, diğer gelen trafiği düşürür.

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0;
        policy drop;

        iif lo accept
        ct state established,related accept
        ct state invalid drop

        tcp dport 22 accept
        tcp dport { 80, 443 } accept

        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept
    }

    chain forward {
        type filter hook forward priority 0;
        policy drop;
    }

    chain output {
        type filter hook output priority 0;
        policy accept;
    }
}

Bu kural setindeki flush ruleset satırı mevcut tüm kuralları temizler. Bu nedenle dosyayı uygulamadan önce içeriğin doğru olduğundan emin olunmalıdır. ct state established,related accept satırı, daha önce başlatılmış ve geçerli olan bağlantıların devam etmesine izin verir. Bu satır olmadan paket dönüşleri engellenebilir ve web istekleri beklenmedik şekilde başarısız olabilir.

Yapılandırmayı kaydetmek için dosyayı /etc/nftables.conf içerisine yerleştirebilir ve ardından aşağıdaki komutla yükleyebilirsiniz:

nft -c -f /etc/nftables.conf
systemctl reload nftables

nft -c parametresi yapılandırmayı uygulamadan önce sözdizimi kontrolü yapar. Bu, özellikle üretim ortamında kritik bir güvenlik adımıdır.

SSH, Web ve Veritabanı Kuralları

Her servisin internete açık olması gerekmez. Güvenli bir sunucu mimarisinde yalnızca gerekli portlar dış dünyaya açılmalı, yönetim ve veritabanı servisleri mümkün olduğunca kısıtlanmalıdır.

SSH Erişimini Belirli IP ile Sınırlama

SSH portunu herkese açmak yerine yalnızca ofis, VPN veya yönetici IP adreslerine izin vermek daha güvenlidir. Örnek olarak yalnızca 203.0.113.10 adresinden SSH erişimine izin verelim:

tcp dport 22 ip saddr 203.0.113.10 accept

Birden fazla yönetici IP adresi için set yapısı kullanılabilir:

set admin_ips {
    type ipv4_addr
    elements = { 203.0.113.10, 198.51.100.25 }
}

tcp dport 22 ip saddr @admin_ips accept

Web Servislerini Açma

Web siteleri için genellikle 80 ve 443 portları gerekir. 80 numaralı port HTTP, 443 numaralı port ise HTTPS trafiği için kullanılır. Eğer sitenizde SSL Sertifikası bulunuyorsa HTTPS trafiği mutlaka açık olmalıdır.

tcp dport { 80, 443 } accept

Veritabanı Portlarını Kısıtlama

MySQL için 3306, PostgreSQL için 5432, Redis için 6379 gibi portların doğrudan internete açılması çoğu senaryoda güvenli değildir. Uygulama ve veritabanı aynı sunucudaysa dış bağlantı izni vermeye gerek yoktur. Ayrı sunucular kullanılıyorsa yalnızca uygulama sunucusunun özel IP adresine izin verilmelidir.

tcp dport 3306 ip saddr 10.10.10.20 accept

Bu yaklaşım, özellikle e-ticaret, CRM, muhasebe veya müşteri paneli gibi hassas veri işleyen projelerde yetkisiz erişim riskini azaltır.

Rate Limit ve Basit DDoS Azaltma

Rate limit, belirli bir süre içinde kabul edilecek bağlantı veya paket sayısını sınırlandırma yöntemidir. nftables ile basit seviyede bağlantı sınırlama yapılabilir. Bu yöntem büyük ölçekli DDoS saldırılarını tek başına durdurmaz; ancak brute force, yoğun port tarama ve düşük hacimli anormal trafiklerde fayda sağlar.

SSH Bağlantı Denemelerini Sınırlama

SSH için dakikada belirli sayıda yeni bağlantıya izin verilebilir:

tcp dport 22 ct state new limit rate 5/minute accept

Bu kural, SSH brute force denemelerini azaltmaya yardımcı olur. Ancak daha güçlü koruma için SSH anahtar tabanlı kimlik doğrulama, parola girişinin kapatılması ve yönetici IP kısıtlaması birlikte kullanılmalıdır.

ICMP Trafiğini Sınırlandırma

Ping istekleri ağ sorunlarını teşhis etmek için faydalıdır; ancak kontrolsüz bırakıldığında gereksiz trafik oluşturabilir. ICMP trafiği tamamen kapatılmak yerine sınırlanabilir:

ip protocol icmp limit rate 10/second accept

Yeni Web Bağlantılarını Yönetme

Yoğun trafikli web sitelerinde bağlantı limitleri dikkatle uygulanmalıdır. Çok düşük limitler gerçek kullanıcıları engelleyebilir. Bu nedenle web trafiğinde uygulama katmanı önbellekleme, reverse proxy, CDN ve izleme sistemleriyle birlikte değerlendirme yapılmalıdır. Corelux Linux Hosting veya yüksek trafikli özel sunucu altyapılarında firewall kuralları, uygulama performansını bozmayacak şekilde planlanmalıdır.

IPv6 ve Çift Stack Yapılandırma

Günümüzde birçok sunucu hem IPv4 hem de IPv6 adresiyle çalışır. Bu yapı çift stack olarak adlandırılır. Güvenlik açısından en sık yapılan hatalardan biri, IPv4 tarafında sıkı firewall kuralları uygulanırken IPv6 trafiğinin unutulmasıdır. Bu durumda servisler IPv6 üzerinden beklenmedik şekilde açık kalabilir.

nftables tarafında inet ailesi kullanıldığında IPv4 ve IPv6 trafiği aynı tablo içinde yönetilebilir. Bu, güvenlik politikasının iki protokol için tutarlı olmasını sağlar.

table inet filter {
    chain input {
        type filter hook input priority 0;
        policy drop;

        iif lo accept
        ct state established,related accept
        tcp dport { 80, 443 } accept
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept
    }
}

IPv6 tarafında ICMPv6 trafiğini tamamen kapatmak önerilmez; çünkü IPv6 komşu keşfi ve bazı temel ağ işlevleri ICMPv6 ile çalışır. Bu nedenle güvenlik kuralı yazarken protokol davranışları dikkate alınmalıdır.

Loglama, Test ve Sorun Giderme

Firewall kuralları yalnızca yazılıp bırakılmamalı, düzenli olarak test edilmelidir. Hatalı kural sırası, yanlış varsayılan politika veya eksik port izni servis kesintisine yol açabilir.

Kural Setini Listeleme

nft list ruleset

Yapılandırma Dosyasını Test Etme

nft -c -f /etc/nftables.conf

Geçici Kural Ekleme

Test amacıyla geçici kural eklemek mümkündür. Ancak kalıcı olması için dosyaya da yazılmalıdır:

nft add rule inet filter input tcp dport 8080 accept

Loglama Kuralı Ekleme

Düşürülen paketleri analiz etmek için loglama yapılabilir. Ancak yoğun trafikte aşırı log üretimi disk alanını doldurabilir. Bu nedenle loglama sınırlı ve kontrollü uygulanmalıdır.

log prefix 'nft-drop: ' flags all counter drop

Logları incelemek için sistem günlüğü kullanılabilir:

journalctl -k | grep nft-drop

Disk alanının dolması, logların kontrolsüz büyümesi veya yanlış yapılandırılmış firewall politikaları, servis sürekliliğini etkileyebilir. Bu nedenle düzenli yedekleme ve geri dönüş planı önemlidir. Kritik sistemlerde Yedekleme Hizmeti kullanmak, yapılandırma hatalarından sonra hızlı toparlanmayı kolaylaştırır.

En İyi Uygulamalar

nftables güçlü bir araçtır; ancak güvenlik seviyesi yalnızca kullanılan araca değil, uygulanan politikaya bağlıdır. Aşağıdaki öneriler, VPS, VDS, bulut sunucu ve fiziksel sunucu ortamlarında daha güvenli bir yapı kurmanıza yardımcı olur.

  • Varsayılan drop politikası kullanın: Gelen trafikte yalnızca ihtiyaç duyulan servisleri açın, diğer tüm bağlantıları varsayılan olarak düşürün.
  • SSH erişimini kısıtlayın: SSH portunu mümkünse yalnızca güvenilir IP adreslerine açın ve parola yerine anahtar tabanlı kimlik doğrulama kullanın.
  • IPv6 trafiğini unutmayın: Sunucuda IPv6 etkinse aynı güvenlik politikasının IPv6 için de geçerli olduğundan emin olun.
  • Kural değişikliklerini test edin: Üretim ortamında nft -c ile sözdizimi kontrolü yapmadan kural uygulamayın.
  • Yedek yapılandırma saklayın: Çalışan /etc/nftables.conf dosyasının yedeğini alın ve değişiklik geçmişini takip edin.
  • Servis portlarını belgeleyin: Hangi portun neden açık olduğunu dokümante edin. Gereksiz portlar zaman içinde güvenlik açığına dönüşebilir.
  • Logları izleyin: Sürekli düşen trafik, port taraması veya beklenmedik bağlantı denemeleri güvenlik olayı belirtisi olabilir.
  • Firewall tek başına yeterli değildir: Güncel yazılımlar, güçlü parolalar, erişim kontrolü, SSL, yedekleme ve izleme süreçleriyle birlikte kullanılmalıdır.

Kurumsal projelerde nftables kuralları, uygulama mimarisiyle birlikte düşünülmelidir. Örneğin bir Coolify Hosting ortamında uygulama container portları, reverse proxy portları ve yönetim paneli erişimi ayrı ayrı planlanmalıdır. Benzer şekilde otomasyon iş akışları için kullanılan N8N Hosting senaryolarında webhook endpointleri ve yönetim arayüzü farklı güvenlik politikalarına ihtiyaç duyabilir.

Sıkça Sorulan Sorular

nftables iptables yerine kullanılmalı mı?

Modern Linux sistemlerde nftables genellikle daha güncel ve esnek bir çözüm olarak tercih edilir. iptables hâlâ birçok sistemde çalışsa da yeni kurulumlarda nftables ile merkezi, okunabilir ve sürdürülebilir bir firewall politikası oluşturmak daha avantajlıdır.

nftables kullanırken SSH erişimimi kaybeder miyim?

Yanlış kural yazılırsa SSH erişimi kesilebilir. Bu nedenle kural setini uygulamadan önce nft -c -f /etc/nftables.conf komutuyla test etmek, mevcut SSH oturumunu kapatmadan yeni bağlantı denemesi yapmak ve mümkünse sağlayıcı konsol erişimini hazır bulundurmak gerekir.

nftables DDoS saldırılarını tamamen engeller mi?

Hayır. nftables düşük ve orta seviyeli anormal trafiklerde yardımcı olabilir, bağlantı sınırlama ve port koruması sağlayabilir. Ancak yüksek hacimli DDoS saldırılarında ağ seviyesinde filtreleme, upstream koruma, CDN ve profesyonel güvenlik çözümleri gerekir.

nftables kuralları kalıcı olarak nerede tutulur?

Çoğu dağıtımda kalıcı yapılandırma /etc/nftables.conf dosyasında tutulur. Servis yeniden başladığında bu dosya yüklenir. Geçici olarak komut satırından eklenen kurallar, yapılandırma dosyasına yazılmadığı sürece yeniden başlatma sonrası kaybolabilir.

IPv6 kullanmıyorsam yine de firewall kuralı yazmalı mıyım?

Sunucuda IPv6 etkinse mutlaka kural yazılmalıdır. IPv6 kullanmadığınızı düşünseniz bile ağ arayüzünde aktif bir IPv6 adresi bulunabilir. Bu durumda IPv4 tarafında kapalı olan bir servis IPv6 üzerinden erişilebilir kalabilir.

Veritabanı portunu internete açmak güvenli mi?

Genellikle güvenli değildir. Veritabanı portları yalnızca uygulama sunucusu, VPN ağı veya belirli yönetici IP adresleriyle sınırlandırılmalıdır. Ek olarak güçlü kimlik doğrulama, TLS bağlantısı ve veritabanı kullanıcı yetki kısıtlamaları uygulanmalıdır.

nftables ile port yönlendirme yapılabilir mi?

Evet. nftables yalnızca filtreleme için değil, NAT yani ağ adresi çevirisi ve port yönlendirme için de kullanılabilir. Ancak bu rehber temel güvenlik duvarı yönetimine odaklandığı için NAT kuralları ayrı bir planlama konusu olarak değerlendirilmelidir.

Sonuç

nftables, Linux sunucularda modern, esnek ve sürdürülebilir bir güvenlik duvarı yönetimi sağlar. Doğru yapılandırıldığında yalnızca gerekli servisleri erişilebilir kılar, SSH ve veritabanı gibi kritik bileşenleri kısıtlar, IPv4 ve IPv6 trafiğini aynı politika altında yönetir ve loglama ile güvenlik görünürlüğünü artırır.

Güvenli bir firewall mimarisi oluştururken tek hedef port kapatmak değildir; servis ihtiyacını anlamak, erişim politikası belirlemek, kural değişikliklerini test etmek, logları izlemek ve düzenli yedek almak gerekir. Corelux Sanal Sunucu, Kiralık Sunucu, Hosting ve Hizmetler çözümleriyle projeleriniz için güvenli, ölçeklenebilir ve yönetilebilir altyapılar oluşturabilirsiniz.

Yazar

Boran BAR

Chat on WhatsApp