nftables Firewall Rehberi: Linux Sunucularda Modern Güvenlik Duvarı Yönetimi
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 ile iptables Arasındaki Farklar
- Temel nftables Kavramları
- Kurulum ve Servis Yönetimi
- Temel Güvenlik Duvarı Kural Seti
- SSH, Web ve Veritabanı Kuralları
- Rate Limit ve Basit DDoS Azaltma
- IPv6 ve Çift Stack Yapılandırma
- Loglama, Test ve Sorun Giderme
- En İyi Uygulamalar
- Sıkça Sorulan Sorular
- Sonuç
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 filtertablosu 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çinoutput, yönlendirilen trafik içinforwardzinciri 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,outputveforwardyaygın hook türleridir. - Policy: Zincirde hiçbir kurala uymayan paketlere uygulanacak varsayılan davranıştır. Güvenli yaklaşım genellikle
dropyani 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 -cile sözdizimi kontrolü yapmadan kural uygulamayın. - Yedek yapılandırma saklayın: Çalışan
/etc/nftables.confdosyası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