Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi


Bölüm 1 — nftables'e Giriş ve Netfilter Mimarisi


Linux sistemlerinin en önemli güvenlik bileşenlerinden biri güvenlik duvarıdır (Firewall). Güvenlik duvarı, yalnızca belirli IP adreslerinden veya ağlardan gelen bağlantılara izin verilmesini, belirli servislerin korunmasını ve zararlı trafiğin engellenmesini sağlar.

Eskiden Linux sistemlerinde iptables, ip6tables, ebtables ve arptables gibi birbirinden bağımsız araçlar kullanılıyordu. Bu araçlar uzun yıllar boyunca güvenlik duvarı yönetiminde standart olsa da, artan ağ hızları, IPv6'nın yaygınlaşması ve daha karmaşık güvenlik politikaları nedeniyle yönetimi zorlaştı.

Bu sorunları çözmek amacıyla Linux çekirdeğinde Netfilter altyapısı geliştirilmiş ve bunun modern kullanıcı alanı (user space) aracı olarak nftables ortaya çıkmıştır.

Pardus 25, Debian tabanlı yapısı sayesinde nftables'i varsayılan ve önerilen güvenlik duvarı çözümü olarak destekler.


Firewall Nedir?

Firewall, ağ trafiğini inceleyen ve belirlenen güvenlik kurallarına göre;

  • izin veren,

  • engelleyen,

  • kaydeden,

  • yönlendiren

bir güvenlik mekanizmasıdır.

En basit haliyle şöyle düşünülebilir:

İnternet
Zararlı Trafik
+----------------+
| Firewall |
+----------------+
│ │
Kabul Reddet
Pardus Sunucusu

Firewall yalnızca paketleri engellemez.

Aynı zamanda;

  • bağlantıları takip eder,

  • saldırıları tespit eder,

  • NAT işlemleri yapar,

  • log oluşturur,

  • hız sınırlaması uygular,

  • brute force saldırılarını azaltabilir.


Neden Firewall Kullanılır?

Bir Linux sunucusunun internete doğrudan açık olduğunu düşünelim.

22 SSH
80 HTTP
443 HTTPS
3306 MySQL
5432 PostgreSQL

Firewall kullanılmıyorsa;

  • herkes SSH denemesi yapabilir

  • port taraması yapılabilir

  • brute force saldırıları uygulanabilir

  • exploit denemeleri gerçekleştirilebilir

  • servisler gereksiz yere görünür olur

Firewall sayesinde yalnızca gerekli portlar açılır.

Örneğin;

22 → sadece yönetim ağı
80 → herkese açık
443 → herkese açık
3306 → sadece uygulama sunucusu
5432 → yalnızca localhost

Bu yaklaşım, saldırı yüzeyini (attack surface) önemli ölçüde azaltır.


Linux'ta Paket Yolculuğu

Bir paket sisteme ulaştığında doğrudan uygulamaya gitmez.

Önce Linux çekirdeğindeki Netfilter tarafından değerlendirilir.

Ethernet Kartı
Linux Kernel
Netfilter Hook
nftables Kuralları
┌────────┴─────────┐
DROP ACCEPT
Program

İşte nftables bu aşamada devreye girer.


Netfilter Nedir?

Netfilter, Linux çekirdeği içerisinde çalışan paket filtreleme altyapısıdır.

nftables ise Netfilter'i yöneten kullanıcı alanı uygulamasıdır.

Basitçe;

nft komutu
nftables
Netfilter
Linux Kernel
Network Stack

şeklinde çalışır.

Yani nft komutu doğrudan ağ kartıyla değil, Netfilter aracılığıyla çekirdekle iletişim kurar.


Eski Sistem: iptables

Yıllarca kullanılan yapı aşağıdaki gibiydi:

iptables
ip6tables
arptables
ebtables

Her biri farklı protokoller için ayrı kurallara sahipti.

Örneğin;

IPv4 için:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

IPv6 için ise tamamen farklı bir komut kullanılırdı:

ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT

Bu durum yönetimi zorlaştırıyordu.


nftables Neden Geliştirildi?

Modern veri merkezlerinde;

  • IPv4

  • IPv6

  • Bridge

  • VLAN

  • NAT

  • Container

  • VPN

aynı anda kullanılmaktadır.

iptables mimarisi bu karmaşık yapıları yönetmekte yetersiz kalmaya başlamıştır.

Bu nedenle nftables geliştirilmiştir.


nftables'in Avantajları

Tek Komut

Eskiden:

iptables
ip6tables
ebtables
arptables

Bugün:

nft

tek komut yeterlidir.


Daha Az Kod

iptables:

iptables -A INPUT -s 192.168.1.15 -p tcp --dport 22 -j ACCEPT

nftables:

nft add rule inet filter input ip saddr 192.168.1.15 tcp dport 22 accept

İlk bakışta benzer görünse de nftables;

  • kümeler (sets),

  • eşlemeler (maps),

  • ifadeler (expressions),

  • zincirleme kurallar

sayesinde büyük yapılandırmalarda çok daha az ve okunabilir kural gerektirir.


Daha Hızlı

iptables kuralları sıralı olarak değerlendirilir.

Rule1
Rule2
Rule3
Rule4
Rule5000

Paket her seferinde baştan sona ilerleyebilir.

nftables ise optimize edilmiş veri yapıları kullanır.

Özellikle:

  • hash tabloları,

  • interval kümeleri,

  • set yapıları

sayesinde binlerce kural daha verimli işlenebilir.


Atomic Güncelleme

iptables'da yeni bir kural eklenirken kısa süreli tutarsızlık oluşabilir.

nftables tüm kural kümesini bellekte hazırlar ve tek seferde uygular.

Bu özellik;

  • servis kesintisini azaltır,

  • yarış durumlarını (race conditions) önler,

  • kurumsal ortamlarda daha güvenli değişiklik yönetimi sağlar.


nftables'in Temel Bileşenleri

nftables üç temel yapıdan oluşur.

Table
Chain
Rule

Örneğin;

Table
├── INPUT Chain
│ │
│ ├── SSH izin ver
│ ├── HTTP izin ver
│ └── diğerlerini engelle
├── OUTPUT Chain
└── FORWARD Chain

Bu hiyerarşi, kuralların düzenli ve yönetilebilir olmasını sağlar.


Paket İşleme Akışı

Bir TCP paketi sunucuya ulaştığında izlediği yol özetle şöyledir:

Internet
+-----------+
| Ağ Kartı |
+-----------+
+-----------+
| Netfilter |
+-----------+
+-----------+
| PREROUTING |
+-----------+
Yönlendirme Kararı
│ │
│ └────────► FORWARD
INPUT
Uygulama (SSH, Nginx, Apache vb.)

Bu akış, ilerleyen bölümlerde ayrıntılı olarak ele alacağımız hook mekanizmasının temelini oluşturur.


Siber Güvenlik Açısından nftables

Modern tehdit ortamında bir güvenlik duvarı yalnızca port açıp kapatan bir araç değildir. Doğru yapılandırılmış nftables ile:

  • Gereksiz servisler dış dünyadan tamamen gizlenebilir.

  • SSH erişimi yalnızca belirli IP adresleri veya yönetim ağlarıyla sınırlandırılabilir.

  • Bağlantı durumları izlenerek yalnızca beklenen yanıt trafiğine izin verilebilir (stateful firewall).

  • Port taramaları ve kaba kuvvet (brute force) girişimleri hız sınırlama ve dinamik kümeler kullanılarak azaltılabilir.

  • NAT ve yönlendirme kuralları tek bir yapı içinde yönetilebilir.

  • Günlükleme (logging) sayesinde olay müdahalesi ve adli analiz için değerli kayıtlar oluşturulabilir.

  • IPv4 ve IPv6 için tek bir kurallar kümesiyle tutarlı güvenlik politikaları uygulanabilir.

Kurumsal ortamlarda en önemli ilke "varsayılan olarak reddet (default deny)" yaklaşımıdır. Bu yaklaşımda yalnızca ihtiyaç duyulan trafiğe izin verilir, diğer tüm paketler engellenir. Bu sayede saldırı yüzeyi önemli ölçüde küçülür.


Bölüm Özeti

Bu bölümde:

  • Güvenlik duvarının temel işlevlerini,

  • Linux çekirdeğindeki Netfilter mimarisini,

  • nftables'in neden geliştirildiğini,

  • iptables ile temel farklarını,

  • Table, Chain ve Rule kavramlarını,

  • Paket işleme sürecinin genel yapısını,

  • nftables'in siber güvenlik açısından sağladığı avantajları

öğrendik.

Bölüm 2 — Pardus 25'te nftables Kurulumu, Yapılandırması ve İlk Güvenlik Politikaları


Bölümün Hedefleri

Bu bölümün sonunda;

  • nftables'in Pardus 25'te nasıl çalıştığını,

  • servis yapısını,

  • yapılandırma dosyalarını,

  • nft komutunun ayrıntılı kullanımını,

  • kuralların nasıl oluşturulduğunu,

  • kuralların kalıcı hale getirilmesini,

  • güvenli test yöntemlerini,

  • iptables ile birlikte kullanım sırasında dikkat edilmesi gereken noktaları

öğrenmiş olacaksınız.


Pardus 25'te nftables Mimarisi

Pardus 25 (Debian tabanlı) sistemlerde firewall mimarisi aşağıdaki şekilde çalışır.

Yönetici
nft komutu
libnftables
Netlink API
Linux Kernel (Netfilter)
Ağ Kartı (NIC)

Burada önemli olan nokta şudur:

nft komutu hiçbir zaman doğrudan firewall değildir.

Firewall;

Linux çekirdeğinde çalışan Netfilter'dır.

nft ise yalnızca onu yönetir.


Paketlerin Çekirdeğe Yolculuğu

Bir paket geldiğinde aşağıdaki sırayı takip eder.

Internet
Ethernet Kartı
Linux Network Stack
Netfilter Hook
nftables Rule Set
┌──────────┴─────────┐
ACCEPT DROP
Uygulamaya İlet

Bu nedenle;

Firewall kapalı değildir.

Firewall her zaman çalışır.

Sadece içinde kural olmayabilir.


nftables Paketinin Kontrolü

Kurulu olup olmadığını kontrol edelim.

dpkg -l | grep nftables

veya

which nft

çıktı örneği

/usr/sbin/nft

Versiyonu öğrenelim.

nft --version

Örneğin

nftables v1.1.x

Servis Durumu

nftables servisini inceleyelim.

systemctl status nftables

örnek çıktı

Loaded: loaded
Active: active (exited)

Buradaki

active (exited)

bir hata değildir.

Çünkü nftables;

arka planda sürekli çalışan bir daemon değildir.

Servis yalnızca boot sırasında kuralları yükler.

Kurallar ise Linux çekirdeğinde yaşamaya devam eder.

Bu durum yeni başlayanların en çok karıştırdığı konulardan biridir.


Servisi Etkinleştirmek

Boot sırasında otomatik başlaması için

sudo systemctl enable nftables

hemen başlatmak için

sudo systemctl start nftables

kontrol

systemctl is-enabled nftables

çıktı

enabled

Yapılandırma Dosyası

Ana yapılandırma dosyası

/etc/nftables.conf

kontrol edelim

ls -l /etc/nftables.conf

örnek

-rw-r--r-- root root

içeriği

cat /etc/nftables.conf

Varsayılan Yapı

Genellikle şöyle görünür.

#!/usr/sbin/nft -f
flush ruleset

Henüz herhangi bir firewall kuralı yoktur.


flush ruleset Ne Demektir?

Bu satır oldukça önemlidir.

flush ruleset

anlamı

Mevcut bütün firewall kurallarını sil.

Ardından dosyanın geri kalanındaki kuralları yükle.

Bu sayede

eski kurallar

silinir

yenileri yüklenir.

Kurumsal sistemlerde oldukça güvenlidir.


Mevcut Kuralları Görüntüleme

En temel komut

sudo nft list ruleset

örnek

table inet filter {
}

Henüz hiçbir kural yok.


Daha Ayrıntılı Görünüm

sudo nft list tables

çıktı

table inet filter

Chain'leri görelim.

sudo nft list chains

nft Komut Yapısı

Genel sözdizimi

nft
Object
Operation
Parameters

örnek

sudo nft add table inet filter

Burada

add
table
inet
filter

her biri ayrı anlam taşır.


Table Oluşturmak

İlk firewall tablomuzu oluşturalım.

sudo nft add table inet filter

kontrol

sudo nft list tables

çıktı

table inet filter

inet Family Nedir?

nftables birçok ağ ailesini destekler.

Family        Açıklama
ip        IPv4
ip6        IPv6
inet        IPv4 + IPv6
arp        ARP
bridge        Bridge
netdev        Ağ kartı seviyesi

Modern sistemlerde

inet

kullanılması önerilir.

Böylece tek kural hem IPv4 hem IPv6 için geçerli olur.


Chain Oluşturmak

Firewall kuralları doğrudan table içine yazılmaz.

Önce chain oluşturulur.

sudo nft add chain inet filter input \
'{ type filter hook input priority 0; policy accept; }'

Burada;

type filter

paket filtreleme yapacağımızı söyler.

hook input

gelen paketler.

priority 0

işlenme sırası.

policy accept

varsayılan davranış.


Chain'i Görüntülemek

sudo nft list chain inet filter input

çıktı

table inet filter {
chain input {
type filter hook input priority filter;
policy accept;
}
}

İlk Kuralımız

SSH izin verelim.

sudo nft add rule inet filter input tcp dport 22 accept

kontrol

sudo nft list ruleset

çıktı

table inet filter {
chain input {
tcp dport 22 accept
}
}

HTTP Açmak

sudo nft add rule inet filter input tcp dport 80 accept

HTTPS

sudo nft add rule inet filter input tcp dport 443 accept

Artık

22

80

443

izinlidir.


ICMP Açmak

Ping'e izin vermek için

sudo nft add rule inet filter input icmp type echo-request accept

IPv6 için

sudo nft add rule inet filter input icmpv6 type echo-request accept

Kuralları Numaralandırarak Görmek

sudo nft -a list ruleset

örnek

handle 15
handle 16
handle 17

Bu handle numaraları;

kural silerken kullanılacaktır.


Kural Silmek

Örneğin

handle 17

ise

sudo nft delete rule inet filter input handle 17

Tüm Kuralları Temizlemek

Sadece test ortamında kullanılmalıdır.

sudo nft flush ruleset

kontrol

sudo nft list ruleset

çıktı

(empty)

Yapılandırmayı Dosyadan Yüklemek

Kuralları uygulamak için

sudo nft -f /etc/nftables.conf

Buradaki

-f

anlamı

File

yani dosyadan oku.


Yapılandırmayı Doğrulamak

Dosyayı yüklemeden önce sözdizimini kontrol etmek iyi bir alışkanlıktır.

sudo nft -c -f /etc/nftables.conf

Burada:

  • -c (check) yalnızca sözdizimini doğrular.

  • Kurallar çekirdeğe uygulanmaz.

  • Yazım hataları varsa güvenle tespit edebilirsiniz.

Örnek başarılı çıktı:

/etc/nftables.conf: OK

Yapılandırmayı Kalıcı Hale Getirmek

Geçici olarak eklenen kurallar yeniden başlatma sonrasında kaybolur.

Mevcut kuralları yapılandırma dosyasına kaydetmek için:

sudo nft list ruleset | sudo tee /etc/nftables.conf

Daha sonra:

sudo systemctl restart nftables

veya sistemi yeniden başlatabilirsiniz.

Not: Kuralları doğrudan /etc/nftables.conf dosyasında yönetmek, özellikle kurumsal ortamlarda sürüm kontrolü (Git) ve değişiklik takibi açısından daha sağlıklı bir yöntemdir.


Uzak Sunucularda Çalışırken Dikkat!

SSH ile bağlı olduğunuz bir sunucuda varsayılan politikayı drop yapıp SSH izni vermeyi unutursanız, kendi bağlantınızı kesebilirsiniz.

Güvenli çalışma sırası:

  1. Loopback (lo) arayüzüne izin verin.

  2. Mevcut SSH bağlantılarını koruyan established, related kuralını ekleyin.

  3. SSH (22/TCP) erişimine izin verin.

  4. Gerekli diğer servisleri açın.

  5. En son varsayılan politikayı drop olarak değiştirin.

Bu sıralama, uzaktan yönetilen sunucularda kilitlenme riskini büyük ölçüde azaltır.


Siber Güvenlik Perspektifi

nftables yapılandırırken en sık yapılan hatalar şunlardır:

  • Her şeyi kabul eden (policy accept) bir yapı bırakmak

  • Gereksiz portları açık tutmak

  • IPv4 kurallarını yazıp IPv6'yı unutmak

  • Günlükleme (logging) yapmamak

  • Yapılandırma dosyasını test etmeden yüklemek

  • SSH erişimini sınırlandırmamak

  • Değişikliklerden önce mevcut kural kümesini yedeklememek

Profesyonel sistem yöneticileri her değişiklikten önce mevcut yapılandırmayı dışa aktarır:

sudo nft list ruleset > nftables-backup.nft

Bu dosya gerektiğinde birkaç saniye içinde geri yüklenebilir:

sudo nft -f nftables-backup.nft

Bölüm Özeti

Bu bölümde:

  • Pardus 25'te nftables servis yapısını,

  • /etc/nftables.conf dosyasını,

  • nft komutunun temel sözdizimini,

  • Table ve Chain oluşturmayı,

  • İlk kuralları eklemeyi ve silmeyi,

  • Kuralları doğrulamayı ve kalıcı hale getirmeyi,

  • Uzak sunucularda güvenli değişiklik yapma yöntemlerini

öğrendik.

Bölüm 3 — Table, Chain, Hook ve Priority Mimarisi (Netfilter'in Kalbi)


Bölümün Hedefleri

Bu bölümün sonunda;

  • Netfilter Hook mimarisini,

  • Paketlerin Linux çekirdeğinde nasıl işlendiğini,

  • Table kavramını,

  • Chain türlerini,

  • Base Chain ve Regular Chain farklarını,

  • Hook noktalarını,

  • Priority (öncelik) mantığını,

  • Paket yaşam döngüsünü,

  • nftables'in çekirdek içinde nasıl çalıştığını

ayrıntılı olarak öğrenmiş olacaksınız.


Neden Hook Mantığını Öğrenmeliyiz?

Çoğu sistem yöneticisi aşağıdaki gibi kurallar yazmayı bilir:

nft add rule inet filter input tcp dport 22 accept

Ancak bu kuralın çekirdeğin tam olarak hangi aşamasında çalıştığını bilmez.

Bu bilgi eksik olduğunda:

  • NAT kuralları çalışmayabilir.

  • Port yönlendirme başarısız olabilir.

  • VPN trafiği beklenmedik şekilde engellenebilir.

  • Docker veya Podman ağlarıyla çakışmalar yaşanabilir.

  • Gereksiz performans kayıpları oluşabilir.

Profesyonel bir sistem yöneticisi için yalnızca kural yazmak yeterli değildir; kuralın ne zaman ve nerede çalıştığını da bilmek gerekir.


Linux Ağ Yığını (Network Stack)

Bir ağ paketi fiziksel ağ kartına ulaştığında doğrudan uygulamaya gitmez.

Aşağıdaki aşamalardan geçer:

                İnternet
                    │
                    ▼
          Ethernet / Wi-Fi Kartı
                    │
                    ▼
         Linux Ağ Sürücüsü (Driver)
                    │
                    ▼
          Linux Network Stack
                    │
                    ▼
             Netfilter Hook
                    │
          nftables Kuralları
                    │
        Routing (Yönlendirme)
                    │
          Uygulama veya İleri Yönlendirme

İşte nftables kuralları Netfilter Hook adı verilen noktalarda değerlendirilir.


Netfilter Hook Nedir?

Hook, Linux çekirdeğinin ağ trafiğini işlemek için belirlediği kontrol noktasıdır.

Bir paketin yolculuğu sırasında çekirdek belirli noktalarda durur ve şöyle der:

"Bu paket hakkında karar vermek isteyen bir firewall var mı?"

İşte nftables burada devreye girer.


Beş Temel Hook

Linux çekirdeğinde en önemli beş hook vardır.

                 İnternet
                     │
                     ▼
               PREROUTING
                     │
          ┌──────────┴──────────┐
          │                     │
          ▼                     ▼
       INPUT                FORWARD
          │                     │
          ▼                     ▼
      Yerel Süreç          Başka Sisteme
          │               Yönlendirilecek
          ▼
       OUTPUT
          │
          ▼
      POSTROUTING
          │
          ▼
        Ağ Kartı

Bu diyagramı anlamak, nftables'in büyük kısmını anlamak demektir.


PREROUTING

Paket sisteme ulaştığı anda çalışan ilk hook'tur.

İnternet

↓

Ethernet

↓

PREROUTING

Henüz;

  • hedef belirlenmemiştir,

  • uygulama seçilmemiştir,

  • yönlendirme yapılmamıştır.

Burada genellikle:

  • DNAT

  • Port Forwarding

  • Paket işaretleme (mark)

  • QoS hazırlıkları

yapılır.


Örnek

Kullanıcı;

203.0.113.10:8080

adresine bağlanıyor.

Firewall bu paketi şu adrese çevirebilir:

192.168.1.25:80

Bu işlem PREROUTING aşamasında gerçekleşir.


INPUT Hook

Paket bu makinenin kendisine geliyorsa INPUT çalışır.

SSH

↓

Sunucu

↓

INPUT

↓

sshd

Örneğin;

  • SSH

  • Apache

  • Nginx

  • Samba

  • PostgreSQL

servisleri burada değerlendirilir.


INPUT İçin Örnek

tcp dport 22 accept

Bu kural yalnızca bu sunucunun SSH servisini etkiler.

Başka makinelere yönlendirilen paketlerle ilgisi yoktur.


FORWARD Hook

Firewall aynı zamanda router ise,

paket başka bir makineye gönderiliyorsa

FORWARD çalışır.

Örneğin;

İnternet

↓

Firewall

↓

192.168.10.15

Firewall yalnızca geçiş yapıyorsa

INPUT kullanılmaz.

FORWARD kullanılır.


Nerelerde Kullanılır?

  • Router

  • Gateway

  • VPN Sunucusu

  • Docker Host

  • Kubernetes

  • Sanallaştırma Sunucuları

  • Güvenlik Duvarı Cihazları


OUTPUT Hook

Bu kez paket sunucunun kendisinden çıkmaktadır.

Örneğin;

apt update

↓

OUTPUT

↓

İnternet

veya

curl

↓

OUTPUT

↓

Web Sunucusu

Sunucunun dışarı gönderdiği trafik burada filtrelenebilir.


Güvenlik Açısından Önemi

Bir sunucu ele geçirildiğinde,

zararlı yazılım dışarı bağlantı kurmak isteyebilir.

OUTPUT zinciriyle:

  • sadece DNS

  • sadece HTTP

  • sadece HTTPS

izin verilebilir.

Böylece veri sızdırma (Data Exfiltration) önemli ölçüde zorlaştırılır.


POSTROUTING

Paket artık çıkış yapacaktır.

Son kontrol noktasıdır.

OUTPUT

↓

POSTROUTING

↓

Ethernet

↓

İnternet

Burada çoğunlukla:

  • SNAT

  • Masquerade

  • Trafik işaretleme

işlemleri yapılır.


Hook Özeti

HookÇalışma ZamanıKullanım Amacı
PREROUTING        Paket sisteme girerken        DNAT, Port Forwarding
INPUT        Yerel uygulamaya giderken        Firewall
FORWARD        Başka makineye giderken        Router
OUTPUT        Yerel süreçten çıkarken        Çıkış filtreleme
POSTROUTING        Ağ kartından çıkmadan önce        SNAT, Masquerade

Table Nedir?

Table;

aynı amaca hizmet eden chain'lerin bulunduğu mantıksal konteynerdir.

Örneğin

table inet filter

içinde

INPUT

OUTPUT

FORWARD

bulunabilir.


Birden fazla table olabilir.

filter

nat

mangle

security

Ancak nftables'de isimler tamamen yöneticinin tercihine bağlıdır.

Örneğin;

table inet webserver

oluşturabilirsiniz.


Chain Nedir?

Chain,

kuralların bulunduğu listedir.

Örneğin

INPUT

↓

SSH

↓

HTTP

↓

HTTPS

↓

DROP

Bir paket yukarıdan aşağıya doğru değerlendirilir.


Base Chain

Base Chain,

çekirdeğin hook noktalarına bağlı zincirdir.

Örneğin

add chain inet filter input \
{ type filter hook input priority 0; }

Buradaki

hook input

ifadesi nedeniyle

çekirdek bu zinciri otomatik çalıştırır.


Regular Chain

Regular Chain ise

hook içermez.

Kendiliğinden çalışmaz.

Örneğin

add chain inet filter ssh_rules

Bu chain'e

INPUT içerisinden

jump ssh_rules

komutuyla geçilir.


Avantajı

Kurallar bölünmüş olur.

Örneğin

INPUT

↓

jump ssh

↓

jump web

↓

jump vpn

↓

jump mail

Böylece binlerce kural yerine modüler ve okunabilir bir yapı elde edilir.


Priority Nedir?

Aynı hook üzerinde birden fazla chain olabilir.

Hangisi önce çalışacak?

Bunu Priority belirler.

Priority -300

↓

Priority -150

↓

Priority 0

↓

Priority 50

↓

Priority 100

Küçük sayı önce çalışır.


Örnek

priority -100
priority 0

önce hangisi?

Elbette

-100

Filtreleme Sırası

Packet

↓

Chain A priority -100

↓

Chain B priority 0

↓

Chain C priority 50

Verdict (Karar)

Bir kural sonunda mutlaka bir karar üretir.

Başlıca kararlar şunlardır:

VerdictAçıklama
acceptPakete izin ver
dropPaketi sessizce yok et
rejectPaketi reddet ve karşı tarafa hata bildir
jumpBaşka chain'e git
gotoZinciri değiştir, geri dönme
continueSonraki kuralla devam et
returnÇağıran chain'e geri dön

jump ve goto Arasındaki Fark

Bu iki kavram sıkça karıştırılır.

INPUT
   │
   ├── jump ssh_rules
   │        │
   │        └── return
   │
   └── Sonraki kurallar

jump kullanıldığında return ile geri dönülür ve INPUT zincirindeki sonraki kurallar çalışmaya devam eder.

goto ise çağrıyı kalıcı olarak başka zincire aktarır; geri dönüş yapılmaz. Büyük kural kümelerinde akışı dikkatli tasarlamak gerekir.


Kurumsal Ortamlarda Önerilen Yapı

table inet filter

│

├── input

│     ├── jump loopback

│     ├── jump established

│     ├── jump ssh

│     ├── jump web

│     ├── jump monitoring

│     └── drop

│

├── output

│

├── forward

│

├── ssh

├── web

├── monitoring

└── loopback

Bu yapı;

  • okunabilirliği artırır,

  • bakım maliyetini azaltır,

  • ekip çalışmasını kolaylaştırır,

  • değişikliklerin daha güvenli yapılmasını sağlar.


Siber Güvenlik Perspektifi

Hook mimarisini anlamadan yazılan kurallar çoğu zaman beklenen sonucu vermez. Örneğin:

  • DNAT kuralını INPUT zincirine yazmak yerine PREROUTING aşamasında tanımlamak gerekir.

  • İnternetten gelen saldırıları filtrelemek için INPUT, ağ geçidi olarak çalışan bir sunucuda ise çoğu zaman FORWARD zinciri hedeflenmelidir.

  • Sunucudan dışarı çıkan trafiği denetlemek için OUTPUT zincirinin ihmal edilmesi, kötü amaçlı yazılımların komuta-kontrol (C2) sunucularına erişmesini kolaylaştırabilir.

  • NAT işlemlerinin yanlış hook'ta yapılması bağlantı sorunlarına yol açabilir.

Kuralları yalnızca doğru yazmak değil, doğru hook'ta uygulamak güvenli ve kararlı bir firewall tasarımının temelidir.


Bölüm Özeti

Bu bölümde;

  • Netfilter Hook mimarisini,

  • PREROUTING, INPUT, FORWARD, OUTPUT ve POSTROUTING aşamalarını,

  • Table ve Chain kavramlarını,

  • Base Chain ile Regular Chain farklarını,

  • Priority mekanizmasını,

  • jump, goto ve diğer verdict türlerini,

  • Kurumsal ortamlarda önerilen zincir organizasyonunu

ayrıntılı olarak öğrendik.


Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 4 — Stateful Firewall ve Connection Tracking (Conntrack) Mimarisi

Bu bölüm, modern Linux güvenlik duvarlarının en önemli konularından biridir. Günümüzde kurumsal ağlarda kullanılan güvenlik duvarlarının neredeyse tamamı durum tabanlı (stateful) çalışır. nftables'in en büyük gücü de Linux çekirdeğinin Connection Tracking (conntrack) altyapısıyla bütünleşik çalışmasıdır.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Stateless ve Stateful Firewall arasındaki farkı,

  • Connection Tracking (conntrack) mekanizmasını,

  • ct state ifadelerini,

  • new, established, related, invalid durumlarını,

  • Conntrack tablosunun nasıl çalıştığını,

  • Performans etkilerini,

  • Güvenli SSH erişim kurallarını,

  • Siber saldırılar karşısında conntrack kullanımını,

  • Gerçek sistemlerde en iyi uygulamaları

öğreneceksiniz.


Firewall'lar İkiye Ayrılır

1. Stateless Firewall

En eski firewall mantığıdır.

Her paket birbirinden bağımsız değerlendirilir.

Firewall şu soruyu sorar:

"Bu paketin portu nedir?"

Başka hiçbir şeyle ilgilenmez.

Örneğin:

TCP 80

↓

İzin ver

Paket daha önce gelmiş mi?

Bağlantının devamı mı?

Yanıt paketi mi?

Firewall bunu bilmez.


Stateless Firewall Sorunu

Bir kullanıcı web sunucusuna bağlanıyor.

İstemci

↓

HTTP GET

↓

Sunucu

Sunucu cevap veriyor.

Sunucu

↓

HTTP Response

↓

İstemci

Stateless firewall ikinci paketi tanımadığı için onu tekrar baştan değerlendirir.

Bu hem:

  • yavaştır,

  • hem de güvenliği azaltabilir.


Stateful Firewall

Stateful firewall bağlantının tamamını takip eder.

Artık yalnızca paket değil,

bağlantı (connection) önemlidir.

Firewall şöyle düşünür:

Bu paket

mevcut bağlantının devamı mı?

Eğer cevap evetse,

yeniden tüm kuralları incelemek zorunda kalmaz.


Gerçek Hayattan Örnek

Bir otelin resepsiyonunu düşünelim.

Stateless sistem:

Her girişte tekrar kimlik sorar.

Stateful sistem:

Bir kez kayıt olursunuz.

Sonra oda kartınız sizi tanımlar.

İşte conntrack tam olarak bunu yapar.


Connection Tracking (Conntrack) Nedir?

Linux çekirdeği;

aktif bağlantıları bellekte tutar.

Bu listeye

Connection Tracking Table

adı verilir.

Bağlantı Geldi

↓

Conntrack

↓

Tabloya Kaydet

↓

Sonraki Paketlerde

Tekrar Kontrol Et

Conntrack Tablosu

Örneğin;

192.168.1.20

↓

Google

↓

HTTPS

Bağlantısı oluştu.

Tabloda şu kayıt oluşur.

Kaynak IP

192.168.1.20

Hedef IP

142.250.x.x

Port

443

Durum

ESTABLISHED

Artık aynı bağlantının devamı olan paketler tekrar analiz edilmez.


Conntrack Nerede Çalışır?

                Paket

                   │

                   ▼

           Linux Network Stack

                   │

                   ▼

              Conntrack

                   │

                   ▼

             nftables Rule

                   │

          ACCEPT veya DROP

Conntrack,

Netfilter ile birlikte Linux çekirdeğinde çalışır.


Conntrack'in Avantajları

  • Daha hızlıdır.

  • Güvenlidir.

  • NAT işlemlerini kolaylaştırır.

  • VPN bağlantılarını takip eder.

  • FTP gibi karmaşık protokolleri yönetebilir.

  • Bağlantı tabanlı güvenlik sağlar.


ct State Nedir?

nftables içinde

ct state

ifadesi

Connection Tracking bilgisini okur.

Örneğin;

ct state established accept

anlamı

Mevcut bağlantının devamıysa izin ver.


En Önemli Durumlar

NEW

Bağlantı ilk kez geliyor.

İstemci

↓

İlk SYN Paketi

↓

NEW

Henüz bağlantı kurulmamıştır.


Örnek

ct state new

ESTABLISHED

Bağlantı kurulmuş.

Artık veri aktarılıyor.

SYN

↓

SYN ACK

↓

ACK

↓

ESTABLISHED

Artık bütün veri paketleri

ESTABLISHED durumundadır.


Örnek

ct state established

RELATED

Bu durum yeni başlayanların en zorlandığı konudur.

Bağlantı yeni değildir.

Ama mevcut bağlantıyla ilişkilidir.

Örneğin

FTP

Kontrol bağlantısı

Veri bağlantısı

Bu veri bağlantısı

RELATED olur.


Başka örnek

ICMP

Destination Unreachable

paketi.

Bu paket

ilgili bağlantıyla bağlantılıdır.


Örnek

ct state related

INVALID

Conntrack paketi anlamlandıramamıştır.

Sebepleri

  • bozuk paket

  • eksik TCP oturumu

  • saldırı

  • timeout

  • hatalı checksum

olabilir.


INVALID paketler çoğunlukla

engellenmelidir.

ct state invalid drop

Dört Durum Birlikte

En çok kullanılan kural

ct state established,related accept

Bu,

profesyonel firewall'ların

ilk kurallarından biridir.


Neden İlk Kural Budur?

SSH ile sunucuya bağlandınız.

İlk paket

NEW

olur.

Bağlantı kurulduktan sonra

binlerce paket

ESTABLISHED

olacaktır.

Firewall bunları tekrar tekrar incelemek yerine

tek satırla geçirir.


Örnek INPUT Zinciri

ct state invalid drop

ct state established,related accept

tcp dport 22 accept

tcp dport 80 accept

tcp dport 443 accept

Bu sıralama önemlidir.


Yanlış Sıralama

tcp dport 22 accept

tcp dport 80 accept

tcp dport 443 accept

ct state established accept

Bu yapı gereksiz işlem oluşturur.


Doğru Sıralama

ct state invalid drop

ct state established,related accept

iif lo accept

tcp dport 22 accept

tcp dport 80 accept

tcp dport 443 accept

drop

İlk olarak geçersiz paketler elenir, ardından mevcut bağlantılar hızlıca kabul edilir. Böylece yalnızca yeni bağlantılar ayrıntılı kurallardan geçer.


Loopback Trafiği

Yerel sistem süreçleri birbirleriyle lo (loopback) arayüzü üzerinden haberleşir.

Bu nedenle çoğu sistemde aşağıdaki kural en başlarda yer alır:

iif lo accept

Bu kural olmadan bazı yerel servisler beklenmedik şekilde çalışmayabilir.


Gerçek SSH Senaryosu

SSH bağlantısı şu şekilde ilerler:

Kullanıcı

↓

SYN

↓

NEW

↓

ACCEPT

↓

SYN ACK

↓

ESTABLISHED

↓

Terminal Trafiği

↓

ESTABLISHED

↓

ESTABLISHED

↓

ESTABLISHED

Bağlantı kurulduktan sonra tüm terminal trafiği ESTABLISHED olarak değerlendirilir ve çok daha hızlı işlenir.


Conntrack Tablosunu Görüntüleme

Bağlantıları incelemek için conntrack aracı kullanılabilir. Öncelikle paket kurulu olmalıdır:

sudo apt install conntrack

Mevcut bağlantıları listelemek:

sudo conntrack -L

Örnek çıktı:

tcp      6 431999 ESTABLISHED src=192.168.1.20 dst=142.250.190.78 sport=52984 dport=443

Belirli Bağlantıları Filtreleme

Sadece SSH bağlantılarını görmek:

sudo conntrack -L -p tcp --dport 22

Sadece HTTPS oturumlarını görmek:

sudo conntrack -L -p tcp --dport 443

Bu komutlar özellikle yoğun sunucularda olay analizi yaparken oldukça faydalıdır.


Conntrack İstatistikleri

Çekirdeğin conntrack kullanımını görmek için:

cat /proc/sys/net/netfilter/nf_conntrack_count

Mevcut aktif bağlantı sayısını gösterir.

Maksimum bağlantı kapasitesi:

cat /proc/sys/net/netfilter/nf_conntrack_max

Örnek:

262144

Bu sistem aynı anda yaklaşık 262 bin bağlantıyı takip edebilir.


Conntrack ve NAT İlişkisi

NAT işlemleri conntrack olmadan düşünülemez.

Örneğin:

192.168.1.25

↓

203.0.113.5

↓

İnternet

Geri dönen paketin hangi istemciye ait olduğunu conntrack bilir.

Bu nedenle:

  • SNAT

  • DNAT

  • Masquerade

  • Port Forwarding

işlemlerinin tamamı conntrack bilgilerini kullanır.


Performans Açısından Değerlendirme

Durum tabanlı filtreleme ilk bakışta ek yük oluşturuyor gibi görünse de pratikte çoğu senaryoda performansı artırır.

Avantajları:

  • Mevcut bağlantılar tekrar ayrıntılı filtrelenmez.

  • Kural zincirlerinde gereksiz dolaşım azalır.

  • NAT işlemleri doğru eşleştirilir.

  • Büyük kural kümelerinde işlem maliyeti düşer.

Dikkat edilmesi gereken nokta ise conntrack tablosunun dolmamasıdır. Yoğun DDoS saldırılarında tablo kapasitesi aşılırsa yeni bağlantılar kurulamayabilir.


Siber Güvenlik Perspektifi

Connection Tracking yalnızca performans için değil, güvenlik için de kritik öneme sahiptir.

Kurumsal firewall'larda yaygın olarak kullanılan ilk kurallar şunlardır:

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

Bu üç kural sayesinde:

  • Bozuk ve şüpheli paketler erken aşamada engellenir.

  • Mevcut oturumlar kesintisiz çalışır.

  • Yerel servisler güvenli şekilde haberleşir.

Ayrıca yalnızca NEW durumundaki SSH bağlantılarına izin vererek kaba kuvvet saldırılarının analizini kolaylaştırabilir ve daha sonraki bölümlerde göreceğimiz hız sınırlama (rate limiting) kurallarıyla bunları birleştirebilirsiniz.


En Sık Yapılan Hatalar

HataSonuç
ct state established,related accept kuralını yazmamakPerformans düşer, bazı yanıt paketleri engellenebilir
invalid paketleri filtrelememekŞüpheli veya bozuk trafik sisteme ulaşabilir
Loopback (iif lo) kuralını unutmakYerel servisler sorun yaşayabilir
Varsayılan politikayı drop yapıp gerekli kuralları eklememekUzak bağlantılar kesilebilir
Conntrack tablosunu izlememekYoğun trafik altında yeni bağlantılar başarısız olabilir

Bölüm Özeti

Bu bölümde:

  • Stateless ve Stateful Firewall farkını,

  • Linux Connection Tracking altyapısını,

  • ct state kullanımını,

  • new, established, related ve invalid durumlarını,

  • Conntrack tablosunun çalışma mantığını,

  • NAT ile ilişkisini,

  • Performans ve güvenlik açısından en iyi uygulamaları

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 5 — Profesyonel Firewall Kuralları Yazma ve Paket Eşleştirme (Packet Matching)

Bu bölümde nftables'in gerçek gücünü keşfedeceğiz. Artık yalnızca port açıp kapatmayacağız; IP adresleri, ağlar, protokoller, arayüzler, bağlantı durumları, zaman damgaları ve daha birçok kritere göre profesyonel güvenlik politikaları oluşturacağız.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Paket eşleştirme (Packet Matching) mantığını,

  • Kaynak ve hedef IP filtrelemeyi,

  • TCP, UDP ve ICMP filtrelemeyi,

  • Port bazlı kuralları,

  • Arayüz (Interface) filtrelemeyi,

  • MAC adresi filtrelemeyi,

  • Yorum (comment) eklemeyi,

  • Sayaç (counter) kullanımını,

  • Günlükleme (log) ile birlikte kural yazmayı,

  • En iyi uygulamaları

öğrenmiş olacaksınız.


Paket Eşleştirme (Packet Matching) Nedir?

Firewall'a gelen her paket onlarca farklı özelliğe sahiptir.

Örneğin;

Kaynak IP

192.168.1.25

Hedef IP

10.0.0.5

Protokol

TCP

Kaynak Port

50124

Hedef Port

443

Interface

eth0

MAC Adresi

00:11:22:33:44:55

Connection State

ESTABLISHED

nftables bu alanların tamamını okuyabilir.

Sonra;

Eşleşiyor mu?

↓

EVET

↓

Kuralı Uygula

Bir Firewall Kuralı Nasıl Çalışır?

Örneğin;

tcp dport 22 accept

Firewall şu sırayı izler.

Paket Geldi

↓

TCP mi?

↓

Port 22 mi?

↓

EVET

↓

ACCEPT

Paket Başlığı (Packet Header)

Bir TCP paketi aşağıdaki bilgileri içerir.

+----------------------+

Kaynak IP

Hedef IP

TTL

Protocol

Checksum

+----------------------+

TCP Header

Kaynak Port

Hedef Port

Flags

Window

+----------------------+

nftables bu alanların tamamını değerlendirebilir.


Kaynak IP Filtreleme

Belirli IP adresine izin vermek:

sudo nft add rule inet filter input ip saddr 192.168.1.25 accept

Anlamı:

Kaynak IP

↓

192.168.1.25

↓

İzin Ver

Hedef IP Filtreleme

Sunucunun belirli IP adresine gelen trafiği filtrelemek mümkündür.

sudo nft add rule inet filter input ip daddr 192.168.1.100 accept

Ağ (Subnet) Filtreleme

Tek IP yerine bütün ağı kabul edebiliriz.

sudo nft add rule inet filter input ip saddr 192.168.10.0/24 accept

Anlamı

192.168.10.1

↓

192.168.10.255

↓

Hepsi Kabul

Birden Fazla Ağ

sudo nft add rule inet filter input ip saddr \
{192.168.1.0/24,10.10.0.0/16} accept

Bu yöntem, uzun uzun ayrı ayrı kural yazmaktan daha verimlidir.


IPv6 Filtreleme

sudo nft add rule inet filter input ip6 saddr 2001:db8::/32 accept

TCP Filtreleme

sudo nft add rule inet filter input tcp accept

Artık yalnızca TCP paketleri eşleşecektir.


UDP Filtreleme

sudo nft add rule inet filter input udp accept

ICMP Filtreleme

Ping isteklerine izin vermek:

sudo nft add rule inet filter input icmp type echo-request accept

Ping cevapları:

sudo nft add rule inet filter input icmp type echo-reply accept

ICMPv6

IPv6 için farklı protokol kullanılır.

sudo nft add rule inet filter input icmpv6 accept

IPv6 ağlarında özellikle Neighbor Discovery Protocol (NDP) için ICMPv6 kritik öneme sahiptir. ICMPv6'yı tamamen engellemek, IPv6 iletişimini bozabilir.


Port Filtreleme

SSH

tcp dport 22 accept

HTTP

tcp dport 80 accept

HTTPS

tcp dport 443 accept

DNS

udp dport 53 accept

Birden Fazla Port

tcp dport {22,80,443} accept

Bu yöntem üç ayrı kural yerine tek bir kural kullanır.


Port Aralığı

tcp dport 10000-10100 accept

Kaynak Port

Çoğu zaman hedef port filtrelenir.

Ancak gerekirse:

tcp sport 443 accept

şeklinde kaynak port da kontrol edilebilir.


Interface Filtreleme

Gelen Arayüz

iif "eth0" accept

Yalnızca eth0 üzerinden gelen paketler eşleşir.


Giden Arayüz

oif "eth1" accept

Loopback

iif lo accept

Bu kural hemen her Linux sisteminde bulunmalıdır.


MAC Adresi Filtreleme

Yerel ağlarda belirli istemcileri MAC adresine göre filtrelemek mümkündür.

ether saddr 08:00:27:11:22:33 accept

Not: MAC adresleri yalnızca aynı yerel ağ (Layer 2) içinde anlamlıdır. İnternet üzerinden gelen paketlerde MAC adresi değiştiği için bu yöntem uzaktaki istemcileri tanımlamak için kullanılamaz.


TCP Bayrakları (TCP Flags)

SYN paketlerini yakalamak:

tcp flags syn accept

Yalnızca yeni TCP bağlantılarının başlangıcında SYN bayrağı bulunur.

SYN Flood koruma kurallarını ilerleyen bölümlerde bu özellik üzerine kuracağız.


Arayüz ve IP Birlikte

iif eth0 ip saddr 192.168.1.0/24 accept

Anlamı

eth0

+

192.168.1.0/24

↓

Kabul

Birden fazla koşul aynı kural içinde kullanılabilir.


Connection Tracking ile Birlikte

ct state established,related accept

ve

tcp dport 22 accept

birlikte kullanılabilir.

Profesyonel firewall'lar çoğunlukla çoklu eşleştirme yapar.


Counter Kullanımı

Bir kuralın kaç kez çalıştığını görmek için:

counter

Örneğin:

tcp dport 22 counter accept

Kuralları sayaçlarla birlikte görüntülemek:

sudo nft list ruleset

Örnek:

counter packets 253 bytes 18932

Bu bilgi özellikle performans analizi ve saldırı tespiti için çok değerlidir.


Comment Kullanımı

Kuralların ne amaçla yazıldığını belgelemek için açıklama eklenebilir.

tcp dport 22 accept comment "SSH Yönetim Erişimi"

Kurumsal ortamlarda yüzlerce kural bulunduğundan, açıklamalar bakım ve denetim süreçlerini büyük ölçüde kolaylaştırır.


Log ile Birlikte Kullanım

tcp dport 22 log prefix "SSH Attempt: " accept

Böylece hem günlük kaydı oluşturulur hem de bağlantıya izin verilir.

Daha ayrıntılı log yönetimini ilerleyen bölümlerde inceleyeceğiz.


Birden Fazla Koşul

Aşağıdaki örnek yalnızca yönetim ağından gelen SSH bağlantılarına izin verir:

ip saddr 192.168.1.0/24 tcp dport 22 ct state new accept

Firewall şu sırayla değerlendirir:

Kaynak Ağ Doğru mu?

↓

TCP mi?

↓

Port 22 mi?

↓

Yeni Bağlantı mı?

↓

ACCEPT

Güvenli SSH Kuralı

Kurumsal sunucular için önerilen örnek:

ct state established,related accept

iif lo accept

ip saddr 192.168.10.0/24 tcp dport 22 ct state new accept

ct state invalid drop

counter drop

Bu yapı;

  • yalnızca yönetim ağına izin verir,

  • mevcut oturumları korur,

  • geçersiz paketleri engeller,

  • reddedilen paketleri sayar.


Kural Sıralamasının Önemi

Yanlış sıralama:

DROP

↓

SSH

↓

HTTP

Bu durumda SSH ve HTTP kurallarına hiçbir zaman ulaşılamaz.

Doğru sıralama:

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

SSH

↓

HTTP

↓

HTTPS

↓

DROP

Firewall kuralları ilk eşleşmede (first match) sonlanacak şekilde tasarlanmalıdır.


Gerçek Kurumsal Senaryo

Bir kurumun aşağıdaki güvenlik politikası olsun:

  • Yönetim ağı: 192.168.10.0/24

  • Web sunucusu herkese açık

  • SSH yalnızca sistem yöneticileri için

  • MySQL dış ağdan erişilemez

  • Yerel süreçler serbest

Kurallar şu mantıkla oluşturulabilir:

ct state invalid drop

ct state established,related accept

iif lo accept

ip saddr 192.168.10.0/24 tcp dport 22 accept

tcp dport {80,443} accept

tcp dport 3306 drop

counter drop

Bu yapı hem okunabilir hem de genişletilebilir.


Performans İpuçları

Profesyonel firewall tasarımında şu ilkeler önerilir:

  • En sık eşleşen kuralları üst sıralara yerleştirin.

  • established,related kuralını her zaman başlarda kullanın.

  • Gereksiz tekrar eden kurallardan kaçının.

  • Aynı işlemi yapan kuralları kümeler (sets) ile birleştirin.

  • Sayaç (counter) kullanımını kritik kurallarla sınırlandırarak yoğun sistemlerde ek yükü azaltın.


Siber Güvenlik Perspektifi

Firewall yalnızca "izin ver" veya "engelle" mantığıyla kullanılmamalıdır.

İyi tasarlanmış kurallar sayesinde:

  • Yönetim servisleri yalnızca güvenilir ağlardan erişilebilir.

  • Veritabanı servisleri dış dünyaya tamamen kapatılabilir.

  • Yanlış yapılandırmalar daha kolay tespit edilir.

  • Günlükleme ve sayaçlar sayesinde saldırılar erken fark edilir.

  • Kurallar açıklamalarla belgelenerek denetim süreçleri kolaylaştırılır.

Kurumsal ortamlarda okunabilirlik ve sürdürülebilirlik, yalnızca güvenlik kadar önemlidir.


Bölüm Özeti

Bu bölümde;

  • Paket eşleştirme mantığını,

  • IP, ağ ve port filtrelemeyi,

  • TCP, UDP ve ICMP kurallarını,

  • Arayüz ve MAC adresi filtrelemeyi,

  • counter ve comment kullanımını,

  • Çoklu koşullarla profesyonel kurallar yazmayı,

  • Kural sıralamasının önemini,

  • Kurumsal firewall tasarım ilkelerini

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 6 — Sets, Maps ve Verdict Maps ile Yüksek Performanslı Kural Yönetimi

Bu bölüm nftables'in iptables'a göre en büyük avantajını anlatmaktadır. Büyük ölçekli kurumlarda binlerce IP adresi, yüzlerce port ve onlarca ağ bloğunu tek tek kurallarla yönetmek hem performans kaybına hem de bakım zorluklarına neden olur. nftables'in Sets, Maps ve Verdict Maps yapıları bu sorunu çözer.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Set kavramını,

  • Anonymous Set ve Named Set farkını,

  • Interval Set kullanımını,

  • Timeout özellikli dinamik kümeleri,

  • Map ve Verdict Map yapılarını,

  • Büyük IP kara listelerini yönetmeyi,

  • Beyaz liste (Whitelist) oluşturmayı,

  • Tehdit istihbaratı (Threat Intelligence) beslemelerini kullanmayı,

  • Performans avantajlarını

öğreneceksiniz.


Büyük Firewall'ların En Büyük Sorunu

Bir kurumun;

  • 120 şubesi

  • 800 sunucusu

  • 4500 istemcisi

olsun.

Sadece SSH erişimi için izin verilen IP listesi:

192.168.1.10

192.168.1.11

192.168.1.12

192.168.1.13

...

192.168.1.300

iptables yaklaşımı:

Rule 1

Rule 2

Rule 3

Rule 4

...

Rule 300

Bu hem okunabilirliği azaltır hem de her paketin uzun bir kural listesinden geçmesine neden olabilir.


nftables Çözümü

nftables bunu tek satırda yapabilir.

SET

↓

Yüzlerce IP

↓

Tek Kural

Bu nedenle büyük veri merkezlerinde nftables çok daha ölçeklenebilir bir çözüm sunar.


Set Nedir?

Set, aynı türdeki verilerin tutulduğu bir koleksiyondur.

Örneğin:

IP Adresleri

↓

Set

veya

Portlar

↓

Set

ya da

MAC Adresleri

↓

Set

Anonymous Set

En basit kullanım şeklidir.

sudo nft add rule inet filter input tcp dport {22,80,443} accept

Burada:

{22,80,443}

bir Anonymous Set'tir.

Geçici olarak oluşturulur.

İsmi yoktur.


Anonymous Set Avantajı

Bunun yerine üç ayrı kural yazabilirdik.

22

↓

80

↓

443

Tek satır daha hızlıdır.


Named Set

Kurumsal sistemlerde önerilen yöntem budur.

Önce set oluşturulur.

sudo nft add set inet filter trusted_hosts \
'{ type ipv4_addr; }'

Artık elimizde

trusted_hosts

isimli bir küme vardır.


Set'e Eleman Eklemek

sudo nft add element inet filter trusted_hosts \
{192.168.1.10}

Birden fazla IP

sudo nft add element inet filter trusted_hosts \
{192.168.1.10,192.168.1.11,192.168.1.12}

Set Kullanımı

sudo nft add rule inet filter input \
ip saddr @trusted_hosts accept

Artık

trusted_hosts

içindeki bütün IP'ler

SSH erişebilir.


Kurumsal Avantaj

Yarın yeni sistem yöneticisi geldi.

iptables

Yeni kural ekle

Firewall yeniden düzenlenir.

nftables

Sadece sete yeni IP eklenir.

Firewall kuralları değişmez.


Set İçeriğini Görüntülemek

sudo nft list set inet filter trusted_hosts

örnek çıktı

elements = {

192.168.1.10,

192.168.1.11,

192.168.1.12

}

Set'ten Eleman Silmek

sudo nft delete element inet filter trusted_hosts \
{192.168.1.11}

Interval Set

En güçlü özelliklerden biridir.

Tek tek IP yerine

IP aralıkları saklanabilir.

sudo nft add set inet filter office \
'{ type ipv4_addr; flags interval; }'

Eleman ekleyelim.

sudo nft add element inet filter office \
{192.168.10.0/24}

veya

sudo nft add element inet filter office \
{10.10.0.0-10.10.255.255}

Bu milyonlarca IP'yi birkaç satırda temsil edebilir.


Port Set

Sadece IP değil,

portlar da tutulabilir.

sudo nft add set inet filter webports \
'{ type inet_service; }'

Ekleyelim.

sudo nft add element inet filter webports \
{80,443,8080}

Kural

tcp dport @webports accept

MAC Address Set

type ether_addr

ile

MAC adresleri de tutulabilir.

AA:BB:CC:DD:EE:FF

gibi.

Bu özellikle aynı yerel ağdaki cihazları gruplamak için faydalıdır.


Timeout Destekli Set

Dinamik engelleme için kullanılabilir.

sudo nft add set inet filter blacklist \
'{ type ipv4_addr; timeout 1h; }'

Bir IP ekleyelim.

sudo nft add element inet filter blacklist \
{203.0.113.25 timeout 30m}

30 dakika sonra

otomatik silinir.


Neden Önemli?

Brute Force

IP Kara Listeye Al

30 dakika bekle

Otomatik kaldır

Bu yapı, manuel müdahaleye gerek kalmadan geçici engellemeler oluşturur.


Map Nedir?

Map,

bir değeri başka bir değere dönüştürür.

80

↓

HTTP

443

↓

HTTPS

veya

IP

↓

Port

Map tanımlayalım.

sudo nft add map inet filter service_map \
'{ type inet_service : verdict; }'

Burada:

  • Anahtar türü: inet_service (port)

  • Değer türü: verdict (karar)


Verdict Map

Verdict Map, eşleşen değere göre farklı kararlar verebilir.

Örneğin:

22

↓

accept

23

↓

drop

25

↓

accept

3306

↓

drop

Tek bir kural içinde farklı davranışlar tanımlanabilir.


Verdict Map Kullanımı

tcp dport vmap {
22 : accept,
80 : accept,
443 : accept,
23 : drop,
3306 : drop
}

Bu yapı, uzun if-else benzeri kural dizilerinin yerini alır.


Gerçek Kurumsal Senaryo

Bir üniversitede:

  • Öğretim üyeleri

  • Öğrenciler

  • Sunucular

  • Misafir ağı

farklı IP bloklarında olsun.

10.1.0.0/16

↓

Akademik Personel

10.2.0.0/16

↓

Öğrenciler

10.3.0.0/16

↓

Sunucular

10.4.0.0/16

↓

Misafir

Bunlar ayrı setlerde tutulabilir.

faculty

students

servers

guests

Kurallar ise sadece bu setleri referans alır.

Bu yaklaşım hem okunabilirliği artırır hem de yönetimi kolaylaştırır.


Threat Intelligence Entegrasyonu

Birçok kurum, zararlı IP listelerini düzenli olarak günceller.

Örneğin:

threat-feed.txt

içeriğinde:

203.0.113.15

198.51.100.20

192.0.2.45

bulunabilir.

Bir betik (script) bu IP'leri belirli aralıklarla blacklist setine ekleyebilir.

Firewall kurallarını değiştirmeden yalnızca set güncellenir.

Bu yöntem:

  • Tehdit istihbaratı (Threat Intelligence)

  • IOC (Indicator of Compromise)

  • CERT uyarıları

  • Kurumsal kara listeler

ile entegrasyon için idealdir.


Performans Analizi

Geleneksel Yaklaşım

IP1

↓

IP2

↓

IP3

↓

IP4

↓

...

↓

IP1000

Her paket sırayla kontrol edilir.


Set Kullanımı

Hash Lookup

↓

IP bulundu mu?

↓

Evet

↓

ACCEPT

Hash tabanlı arama sayesinde büyük kümelerde arama süresi önemli ölçüde azalır.


Siber Güvenlik Perspektifi

Modern saldırılar tek bir IP adresinden gelmez.

Örneğin:

  • Botnet'ler

  • Dağıtık kaba kuvvet (Distributed Brute Force)

  • Tarama altyapıları

  • Tehdit aktörlerinin dinamik IP havuzları

sürekli değişen adresler kullanır.

Bu nedenle:

  • Kara listeler (blacklist)

  • Beyaz listeler (whitelist)

  • Dinamik timeout setleri

  • Threat Intelligence beslemeleri

günümüz firewall mimarisinin vazgeçilmez bileşenleridir.

Kuralları değiştirmek yerine yalnızca kümelerin güncellenmesi, hem hata riskini azaltır hem de değişikliklerin daha güvenli uygulanmasını sağlar.


En Sık Yapılan Hatalar

HataSonuç
Her IP için ayrı kural yazmakPerformans ve yönetilebilirlik azalır
Named Set yerine sürekli Anonymous Set kullanmakBakım zorlaşır
Dinamik kara listelerde timeout kullanmamakEski engellemeler kalıcı hale gelir
Büyük ağ bloklarını yanlış tanımlamakYetkisiz erişim oluşabilir
Threat Intelligence beslemelerini doğrulamadan uygulamakMeşru istemciler yanlışlıkla engellenebilir

Bölüm Özeti

Bu bölümde;

  • Sets kavramını,

  • Anonymous ve Named Set farklarını,

  • Interval Set kullanımını,

  • Timeout özellikli dinamik kümeleri,

  • Port ve MAC adresi kümelerini,

  • Maps ve Verdict Maps yapılarını,

  • Kurumsal ağlarda set kullanımını,

  • Threat Intelligence entegrasyonunu,

  • Performans avantajlarını

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 7 — NAT (Network Address Translation) ve Port Yönlendirme (Port Forwarding)

Bu bölüm, yönlendirici (router), internet ağ geçidi (gateway), sanallaştırma sunucuları, Docker/Podman hostları ve VPN sunucuları yöneten sistem yöneticileri için en önemli bölümlerden biridir. NAT, yalnızca adres çevirme değil, aynı zamanda güvenlik, ağ tasarımı ve kaynak yönetimi açısından da kritik bir teknolojidir.


Bölümün Hedefleri

Bu bölümün sonunda;

  • NAT'ın çalışma mantığını,

  • SNAT, DNAT ve Masquerade arasındaki farkları,

  • Port Forwarding yapılandırmasını,

  • Hairpin NAT (NAT Loopback),

  • Çoklu WAN senaryolarını,

  • Docker ve Podman ile NAT ilişkisini,

  • VPN sunucularında NAT kullanımını,

  • NAT ile Connection Tracking ilişkisini,

  • Kurumsal ağ senaryolarını

ayrıntılı olarak öğrenmiş olacaksınız.


NAT Nedir?

Network Address Translation (NAT), ağ paketlerinin kaynak (Source) veya hedef (Destination) IP adreslerini Linux çekirdeği tarafından değiştirme işlemidir.

En basit haliyle:

Önce

192.168.1.25

↓

Sonra

203.0.113.10

İnternette görülen IP ile yerel ağdaki gerçek IP farklı olabilir.


NAT Neden Kullanılır?

Örneğin bir okul laboratuvarını düşünelim.

Akıllı Tahta 1

192.168.10.10

Akıllı Tahta 2

192.168.10.11

Öğretmen Bilgisayarı

192.168.10.20

Pardus Sunucusu

192.168.10.100

Bu cihazların tamamı internete çıkacaktır.

Ancak servis sağlayıcı yalnızca bir adet genel IP vermektedir.

Örneğin:

203.0.113.50

İşte NAT burada devreye girer.


NAT Olmadan

192.168.10.20

↓

İnternet

İnternet yönlendiricileri özel IP adreslerini yönlendirmez.

Bu nedenle bağlantı başarısız olur.


NAT ile

192.168.10.20

↓

203.0.113.50

↓

İnternet

Sunucu özel IP'yi genel IP'ye çevirir.


NAT Türleri

Linux'ta temel olarak üç NAT yöntemi kullanılır.

NAT TürüAmaç
SNATKaynak IP değiştirme
DNATHedef IP değiştirme
MasqueradeDinamik SNAT

SNAT (Source NAT)

Kaynak IP değiştirilir.

192.168.1.20

↓

203.0.113.5

Paket internete çıkarken kaynak adres değiştirilir.


SNAT Akışı

İstemci

192.168.1.20

↓

Firewall

↓

203.0.113.5

↓

İnternet

nftables'de SNAT

Önce NAT tablosu oluşturulur.

sudo nft add table ip nat

POSTROUTING zinciri:

sudo nft add chain ip nat postrouting \
'{ type nat hook postrouting priority srcnat; }'

Kural:

sudo nft add rule ip nat postrouting \
ip saddr 192.168.1.0/24 snat to 203.0.113.5

Artık bu ağdan çıkan tüm paketler belirtilen genel IP ile internete çıkar.


Masquerade Nedir?

Masquerade, SNAT'ın dinamik IP kullanan sürümüdür.

Örneğin:

  • PPPoE

  • DSL

  • Fiber

  • Mobil İnternet

  • DHCP

ile alınan IP adresleri sürekli değişebilir.

SNAT kullanırsanız:

203.0.113.5

değiştiğinde kurallar bozulur.

Masquerade ise çıkış arayüzünün güncel IP adresini otomatik kullanır.


Masquerade Kuralı

sudo nft add rule ip nat postrouting \
oif "eth0" masquerade

Burada:

eth0

üzerindeki güncel IP otomatik seçilir.


SNAT ve Masquerade Karşılaştırması

ÖzellikSNATMasquerade
Sabit IP
Dinamik IP
PerformansDaha yüksekBir miktar daha düşük
Veri MerkeziGenellikle kullanılmaz
Ev/Okul İnternetiKullanılabilirEn uygun seçim

En iyi uygulama: Statik genel IP'ye sahip kurumsal sunucularda SNAT, DHCP veya PPPoE kullanan ortamlarda Masquerade tercih edilir.


DNAT (Destination NAT)

Bu kez hedef adres değiştirilir.

İnternet

↓

203.0.113.5

↓

192.168.1.100

Yani dışarıdan gelen trafik iç ağdaki başka bir sunucuya yönlendirilir.


DNAT Akışı

İnternet

↓

Firewall

↓

Web Sunucusu

PREROUTING Zinciri

DNAT her zaman yönlendirme kararı verilmeden önce uygulanmalıdır.

Bu nedenle:

PREROUTING

hook'u kullanılır.


NAT Zinciri

sudo nft add chain ip nat prerouting \
'{ type nat hook prerouting priority dstnat; }'

Web Sunucusuna Yönlendirme

sudo nft add rule ip nat prerouting \
tcp dport 80 dnat to 192.168.1.100

Artık internetten gelen:

203.0.113.5:80

istekleri

192.168.1.100:80

sunucusuna aktarılır.


Port Forwarding

Dışarıdaki port ile içerideki port farklı olabilir.

8080

↓

80

Kural:

sudo nft add rule ip nat prerouting \
tcp dport 8080 dnat to 192.168.1.100:80

SSH Port Yönlendirme

2222

↓

22

Kural:

sudo nft add rule ip nat prerouting \
tcp dport 2222 dnat to 192.168.1.50:22

Bu yöntem, standart portu değiştirmek yerine yönlendirme amacıyla kullanılabilir. Ancak tek başına bir güvenlik önlemi değildir; SSH erişimi yine IP kısıtlamaları, anahtar tabanlı kimlik doğrulama ve hız sınırlama ile korunmalıdır.


Hairpin NAT (NAT Loopback)

Yerel ağdaki bir istemci, sunucuya genel IP adresi üzerinden erişmek isterse Hairpin NAT gerekir.

192.168.1.20

↓

203.0.113.5

↓

192.168.1.100

Hairpin NAT yapılandırılmazsa bağlantı başarısız olabilir.

Bu özellik özellikle:

  • Yerel DNS kullanılmayan ortamlarda

  • Web sunucularında

  • Reverse Proxy senaryolarında

önem kazanır.


NAT ve Conntrack

NAT işlemleri Connection Tracking ile birlikte çalışır.

İlk paket:

NEW

olarak değerlendirilir ve eşleştirme tablosuna kaydedilir.

Dönüş paketi geldiğinde:

ESTABLISHED

durumu sayesinde doğru istemciye geri yönlendirilir.

Bu nedenle NAT, conntrack olmadan düşünülemez.


NAT Tablosu ve Filtre Tablosu

Yeni başlayanların sık yaptığı bir hata:

filter

↓

DNAT

DNAT kurallarını filter tablosunda yazmaya çalışmaktır.

Doğru yapı:

table ip nat

↓

PREROUTING

↓

DNAT

POSTROUTING

↓

SNAT

Filtreleme (accept, drop) ise filter tablosunda yapılmalıdır.


NAT Sonrası Filtreleme

Port yönlendirme yaptığınızda yalnızca NAT kuralı yeterli değildir.

Örneğin:

203.0.113.5:80

↓

192.168.1.100

DNAT uygulanmış olsa bile, hedef sunucuya iletilecek paketlerin FORWARD zincirinde de kabul edilmesi gerekir.

Örnek:

sudo nft add rule inet filter forward \
ip daddr 192.168.1.100 tcp dport 80 ct state new,established accept

Ve dönüş trafiği için:

sudo nft add rule inet filter forward \
ct state established,related accept

Gerçek Kurumsal Senaryo

Bir okul ağı düşünelim:

İnternet
      │
Genel IP
203.0.113.10
      │
Pardus Gateway
      │
──────────────────────────
192.168.10.10  Moodle
192.168.10.20  Nextcloud
192.168.10.30  Samba
192.168.10.40  Git Sunucusu

İstenen politika:

Dış Portİç Sunucu
80Moodle
443Moodle
8443Nextcloud
2222Git Sunucusu (SSH)

Her servis için ayrı DNAT kuralı tanımlanır ve FORWARD zincirinde yalnızca gerekli trafiğe izin verilir.


Docker ve Podman

Docker ve Podman varsayılan ağlarında NAT kullanırlar.

Örneğin:

Container

172.17.0.5

↓

Masquerade

↓

eth0

↓

İnternet

Bu nedenle:

  • Docker'ın otomatik oluşturduğu kuralları

  • Kendi yazdığınız nftables kurallarıyla

çakıştırmamaya dikkat etmelisiniz.

Özellikle üretim ortamlarında container ağ politikalarını planlarken hangi yazılımın NAT kurallarını yönettiği net olarak belirlenmelidir.


VPN Sunucularında NAT

VPN istemcileri çoğunlukla özel IP adresleri kullanır.

Örneğin:

10.8.0.0/24

Bu istemcilerin internete çıkabilmesi için çoğu senaryoda Masquerade gerekir.

Örnek:

sudo nft add rule ip nat postrouting \
ip saddr 10.8.0.0/24 oif "eth0" masquerade

Performans İpuçları

  • Gereksiz NAT kurallarından kaçının.

  • Statik IP ortamlarında Masquerade yerine SNAT tercih edin.

  • DNAT kurallarını mümkün olduğunca spesifik yazın (IP + port).

  • NAT ve filtreleme kurallarını farklı tablolarda yönetin.

  • Port yönlendirmesi yapılan servisler için yalnızca gerekli FORWARD kurallarını ekleyin.


Siber Güvenlik Perspektifi

NAT, bir güvenlik mekanizması değildir.

Sık yapılan yanlış inanışlardan biri:

"İç ağ NAT arkasında olduğu için güvende."

Gerçekte:

  • NAT yalnızca adres çevirir.

  • Erişim kontrolünü filter tablosundaki kurallar sağlar.

  • Yanlış yapılandırılmış DNAT kuralları, iç ağdaki kritik sunucuları doğrudan internete açabilir.

  • Port yönlendirmesi yapılan her servis ayrıca güncellenmeli, izlenmeli ve erişim kurallarıyla korunmalıdır.

Kurumsal ortamlarda "en az ayrıcalık" ilkesi gereği yalnızca gerçekten gerekli portlar yönlendirilmelidir.


En Sık Yapılan Hatalar

HataSonuç
DNAT kuralını filter tablosunda yazmakKural çalışmaz
DNAT yapıp FORWARD zincirini unutmakTrafik hedefe ulaşamaz
Masquerade'i statik IP ortamında gereksiz kullanmakKüçük de olsa performans kaybı
Tüm portları iç ağa yönlendirmekBüyük güvenlik riski
Hairpin NAT ihtiyacını göz ardı etmekYerel kullanıcılar genel IP ile erişemez

Bölüm Özeti

Bu bölümde:

  • NAT'ın çalışma mantığını,

  • SNAT, DNAT ve Masquerade farklarını,

  • Port Forwarding yapılandırmasını,

  • Hairpin NAT kullanımını,

  • NAT ile Connection Tracking ilişkisini,

  • Docker, Podman ve VPN senaryolarını,

  • Kurumsal ağ geçitlerinde doğru NAT tasarımını,

  • NAT'ın güvenlik açısından doğru konumunu

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 8 — Logging, Monitoring ve Debugging (Günlükleme, İzleme ve Hata Ayıklama)

Firewall yalnızca paketleri engellemek için değildir. Aynı zamanda sistem yöneticisine neler olduğunu gösterebilmelidir. Bir paketin neden engellendiğini, hangi IP adresinden geldiğini, hangi kuralla eşleştiğini veya bir saldırının ne zaman başladığını göremiyorsanız, güvenlik duvarınız yalnızca "engel koyan" bir mekanizma olur. Gerçek kurumsal ortamlarda ise firewall aynı zamanda bir gözlem ve olay müdahale (Incident Response) aracıdır.


Bölümün Hedefleri

Bu bölümün sonunda;

  • nftables logging mimarisini,

  • log ifadesini,

  • Log seviyelerini (severity),

  • journalctl ile log analizini,

  • nft monitor kullanımını,

  • Rule Counter (Sayaçlar),

  • nftrace ile paket takibini,

  • Gerçek zamanlı izleme yöntemlerini,

  • Performans ve log optimizasyonunu,

  • SIEM sistemleri ile entegrasyonu

öğreneceksiniz.


Firewall Logları Neden Önemlidir?

Bir güvenlik yöneticisinin en önemli sorularından bazıları şunlardır:

  • Sunucuya kim bağlanmaya çalıştı?

  • Hangi IP adresleri sürekli SSH denemesi yapıyor?

  • Hangi servis hedef alınıyor?

  • Firewall hangi paketleri engelledi?

  • Hangi kural en çok çalışıyor?

  • Bir saldırı ne zaman başladı?

Bu soruların cevabı log kayıtlarında bulunur.


Firewall Log Akışı

                Paket

                  │

                  ▼

            nftables Rule

                  │

          LOG oluştur

                  │

                  ▼

         Linux Kernel Log

                  │

                  ▼

             systemd-journald

                  │

                  ▼

          journalctl

Burada dikkat edilmesi gereken nokta:

nftables kendi log dosyasını oluşturmaz.

Loglar Linux çekirdeği üzerinden sistem günlüklerine gönderilir.


İlk Log Kuralı

SSH bağlantı denemelerini kaydedelim.

sudo nft add rule inet filter input \
tcp dport 22 \
log \
accept

Artık her SSH bağlantısı kayıt altına alınacaktır.


Prefix Kullanımı

Loglara açıklama eklemek oldukça önemlidir.

sudo nft add rule inet filter input \
tcp dport 22 \
log prefix "SSH Attempt: " \
accept

Örnek log:

SSH Attempt:
SRC=203.0.113.25
DST=192.168.1.10
PROTO=TCP
DPT=22

Kurumsal ortamlarda prefix kullanmak analiz süresini önemli ölçüde azaltır.


DROP Logları

En sık kullanılan senaryolardan biri:

sudo nft add rule inet filter input \
log prefix "DROP: " \
drop

Artık reddedilen tüm paketler kaydedilir.


Ancak Dikkat!

Şu kural:

log drop

Yoğun saldırı altında milyonlarca log üretebilir.

Sonuç:

  • Disk dolar.

  • SSD ömrü azalır.

  • journald aşırı yüklenir.

  • CPU kullanımı artabilir.

Bu nedenle her paketi kaydetmek yerine yalnızca anlamlı olayları loglamak daha doğru bir yaklaşımdır.


Log Seviyeleri

Linux log sistemi farklı önem derecelerini destekler.

emerg

alert

crit

err

warning

notice

info

debug

Örneğin:

log level warning

veya

log level info

Log Flags

Ek bilgi almak için çeşitli bayraklar kullanılabilir.

Örneğin:

log flags tcp sequence

veya

log flags ip options

veya

log flags all

Bu bilgiler özellikle adli analizlerde (forensics) faydalıdır.


journalctl Kullanımı

Firewall loglarını görmek:

journalctl -k

Buradaki:

-k

Kernel loglarını gösterir.


Gerçek Zamanlı İzleme

journalctl -kf

Bu komut, yeni logları anlık olarak ekrana getirir.

Firewall kurallarını test ederken en çok kullanılan yöntemlerden biridir.


Prefix ile Filtreleme

Örneğin:

SSH Attempt:

kullanıyorsak:

journalctl -k | grep "SSH Attempt"

yalnızca SSH loglarını görüntüler.


Zaman Aralığına Göre

Son bir saatteki loglar:

journalctl --since "1 hour ago"

Belirli tarih:

journalctl --since "2026-07-08 09:00"

Belirli aralık:

journalctl \
--since "09:00" \
--until "11:00"

Bu özellik olay müdahalesi sırasında büyük kolaylık sağlar.


Counter (Sayaçlar)

Her kuralın kaç kez çalıştığını görmek mümkündür.

tcp dport 22 counter accept

Daha sonra:

sudo nft list ruleset

Örnek çıktı:

counter packets 254

bytes 19824

Counter Neden Önemlidir?

Bir kuralın:

0 packet

olması

o kuralın hiç çalışmadığını gösterir.

Bu durum:

  • yanlış sıralama,

  • yanlış IP,

  • yanlış port,

  • gereksiz kural

olduğunu gösterebilir.


nft Monitor

Gerçek zamanlı firewall değişikliklerini görmek için:

sudo nft monitor

Örneğin başka bir terminalde:

sudo nft add rule ...

çalıştırırsanız,

anında görüntülenir.


Rule Monitor

Yalnızca kuralları izlemek:

sudo nft monitor rules

Table Monitor

sudo nft monitor tables

Element Monitor

Dinamik setleri izlemek:

sudo nft monitor elements

Bu özellik özellikle timeout kullanılan kara listelerinde oldukça faydalıdır.


Trace (nftrace)

Bir paketin hangi kurallardan geçtiğini görebiliriz.

Önce ilgili paket için izleme etkinleştirilir:

sudo nft add rule inet filter input \
tcp dport 22 \
meta nftrace set 1

Daha sonra:

sudo nft monitor trace

Örnek çıktı:

trace id ...

packet ...

rule ...

accept

Artık paketin hangi zincirlerde dolaştığını adım adım görebilirsiniz.


Debug İçin Harika Bir Araç

Bir paket neden DROP oluyor?

Tahmin etmeye gerek yok.

nftrace bunu gösterir.

INPUT

↓

Rule 1

↓

Rule 2

↓

Rule 3

↓

DROP

Böylece hatalı kuralları hızlıca tespit edebilirsiniz.


Rule Handle

Kuralları handle numarasıyla görelim.

sudo nft -a list ruleset

Örnek:

handle 17

handle 18

handle 19

Bu numaralar hem hata ayıklama hem de belirli kuralları silmek için kullanılır.


Sayaçları Sıfırlamak

Test ortamlarında sayaçları temizlemek faydalı olabilir.

sudo nft reset counters

Ardından yeni testler daha doğru ölçülebilir.


Gerçek Kurumsal Senaryo

Bir web sunucusunda:

  • SSH brute force

  • HTTP taraması

  • Port taraması

olduğunu düşünelim.

Kurallar:

ct state invalid \
log prefix "INVALID " \
drop

tcp dport 22 \
log prefix "SSH " \
accept

tcp dport 80 \
counter \
accept

counter \
drop

Böylece:

  • Geçersiz paketler loglanır.

  • SSH denemeleri izlenir.

  • HTTP trafiği sayaçlarla ölçülür.

  • Diğer tüm reddedilen paketler sayılır.


SIEM Entegrasyonu

Kurumsal yapılarda loglar yalnızca sunucuda tutulmaz.

Genellikle:

Firewall

↓

journald

↓

rsyslog

↓

Syslog Sunucusu

↓

SIEM

Örneğin:

  • Wazuh

  • Graylog

  • ELK Stack

  • Splunk

  • QRadar

gibi platformlara aktarılır.

Bu sayede:

  • Korelasyon kuralları oluşturulabilir.

  • Alarm üretilebilir.

  • Anormal davranışlar otomatik tespit edilebilir.


Performans Açısından Logging

Yanlış:

Her paketi logla

Doğru:

  • Yeni SSH bağlantılarını logla.

  • INVALID paketleri logla.

  • DROP edilen kritik trafiği logla.

  • Brute Force denemelerini logla.

  • Normal HTTP trafiğini loglama.

Bu yaklaşım hem disk kullanımını azaltır hem de olay analizini kolaylaştırır.


Siber Güvenlik Perspektifi

Firewall logları, güvenlik operasyon merkezlerinin (SOC) en önemli veri kaynaklarından biridir.

Loglar sayesinde:

  • Brute force saldırıları tespit edilir.

  • Port taramaları belirlenebilir.

  • Zararlı IP adresleri kara listeye alınabilir.

  • Olay zaman çizelgesi (timeline) oluşturulabilir.

  • Dijital adli analiz için kanıt niteliğinde kayıtlar elde edilir.

Ancak logların güvenilirliği de korunmalıdır. Günlüklerin merkezi bir sunucuya aktarılması, yetkisiz değişikliklere karşı korunması ve düzenli olarak arşivlenmesi kurumsal güvenlik politikalarının önemli bir parçasıdır.


En Sık Yapılan Hatalar

HataSonuç
Her paketi loglamakDisk ve CPU yükü artar
Prefix kullanmamakAnaliz zorlaşır
Sayaçları hiç kontrol etmemekEtkisiz kurallar fark edilmez
journalctl -kf ile test yapmamakSorunların teşhisi gecikir
nftrace kullanmamakPaketin neden engellendiği anlaşılmaz
Logları merkezi sisteme aktarmamakOlay analizi zorlaşır

Laboratuvar Uygulaması

Senaryo

Bir Pardus 25 sunucusunda:

  • SSH erişimleri kayıt altına alınacak.

  • Geçersiz paketler loglanacak.

  • HTTP trafiği sayılacak.

  • Tüm reddedilen paketler izlenecek.

Örnek kurallar

ct state invalid log prefix "INVALID: " drop

ct state established,related accept

iif lo accept

tcp dport 22 ct state new \
log prefix "SSH LOGIN: " \
accept

tcp dport {80,443} counter accept

counter log prefix "DROP: " drop

Test

Başka bir bilgisayardan:

ssh kullanıcı@sunucu

veya:

curl http://sunucu

Aynı anda sunucuda:

journalctl -kf

ve

sudo nft list ruleset

komutlarını çalıştırarak logları ve sayaçları gözlemleyebilirsiniz.


Bölüm Özeti

Bu bölümde;

  • nftables logging mimarisini,

  • log ifadesini,

  • Prefix ve log seviyelerini,

  • journalctl ile analiz yapmayı,

  • nft monitor ve nftrace kullanımını,

  • Sayaçlarla kural etkinliğini ölçmeyi,

  • SIEM entegrasyonunu,

  • Performans odaklı günlükleme stratejilerini

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 9 — Rate Limiting, Anti-Brute Force, Port Tarama ve DDoS Saldırılarına Karşı Koruma

Bu bölüm, internete açık Pardus 25 sunucuları için en kritik güvenlik bölümlerinden biridir. İnternete bağlanan her SSH, web, e-posta veya VPN sunucusu, kısa süre içinde otomatik tarama botlarının ve kaba kuvvet (Brute Force) saldırılarının hedefi hâline gelir. nftables; bağlantı hızı sınırlama (Rate Limiting), dinamik kümeler (Dynamic Sets), zaman aşımı (Timeout), bağlantı sayısı kontrolü ve Connection Tracking altyapısı ile bu saldırılara karşı etkili koruma sağlayabilir.

Önemli Not: nftables, temel ve orta ölçekli ağ saldırılarını azaltmada güçlüdür. Ancak çok büyük hacimli dağıtık hizmet engelleme (DDoS) saldırılarında tek başına yeterli olmayabilir. Böyle durumlarda ağ servis sağlayıcısı, yük dengeleyiciler ve özel DDoS koruma çözümleriyle birlikte kullanılmalıdır.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Rate Limiting mantığını,

  • SSH Brute Force saldırılarını engellemeyi,

  • Dinamik IP kara listeleri oluşturmayı,

  • Timeout kullanan güvenlik politikalarını,

  • SYN Flood saldırılarına karşı korumayı,

  • ICMP Flood saldırılarını sınırlandırmayı,

  • Port taramalarını yavaşlatmayı,

  • Web sunucularını korumayı,

  • Gerçek kurumsal senaryoları

öğreneceksiniz.


İnternete Açık Bir Sunucuya Neler Olur?

Sunucu internete bağlandıktan birkaç dakika sonra otomatik taramalar başlar.

Örneğin:

203.0.113.21

↓

SSH Denemesi

↓

Başarısız

↓

Tekrar

↓

Tekrar

↓

Tekrar

Bir süre sonra farklı IP'lerden yeni denemeler gelir.


Gerçek Dünya

Bir VPS veya fiziksel sunucu internete açıldığında genellikle aşağıdaki portlar taranır.

22 SSH

23 Telnet

80 HTTP

443 HTTPS

3389 RDP

3306 MySQL

5432 PostgreSQL

Bu taramaların büyük kısmı otomatik botlar tarafından gerçekleştirilir.


Brute Force Nedir?

Bir saldırganın çok sayıda kullanıcı adı ve parola denemesi yapmasıdır.

Örneğin:

root

123456

↓

Başarısız

↓

root

password

↓

Başarısız

↓

root

admin

↓

Başarısız

Bu işlem dakikada binlerce kez tekrarlanabilir.


Rate Limiting Nedir?

Bir istemcinin belirli süre içinde oluşturabileceği bağlantı sayısını sınırlandırır.

Örneğin:

Dakikada

5 SSH

↓

İzin Ver

6. bağlantı

↓

DROP

Basit Rate Limit

SSH için:

sudo nft add rule inet filter input \
tcp dport 22 \
ct state new \
limit rate 5/minute \
accept

Anlamı:

  • Dakikada en fazla 5 yeni SSH bağlantısı kabul edilir.

  • Daha fazlası bu kuralla eşleşmez.

Not: Bu kural tek başına "her IP için 5 bağlantı" anlamına gelmez. Toplam akışı sınırlar. IP bazlı sınırlandırma için dinamik kümeler kullanılmalıdır.


Burst Nedir?

Kısa süreli yoğunluğu tolere eder.

limit rate 10/minute burst 5

Anlamı:

Normal

10 bağlantı

+

İlk anda

5 ek bağlantı

↓

Toplam

15

Bu özellik, kullanıcıların kısa süreli yoğun bağlantılarında yanlış engellemeleri azaltır.


ICMP Flood Koruması

Ping saldırılarını azaltmak için:

icmp type echo-request \
limit rate 10/second \
accept

Saniyede yalnızca 10 ping isteği kabul edilir.


Web Sunucusu

HTTP için:

tcp dport 80 \
limit rate 100/second \
accept

HTTPS:

tcp dport 443 \
limit rate 100/second \
accept

Bu kurallar yoğun fakat normal kullanıcı trafiğini engellemeden aşırı bağlantıları sınırlamaya yardımcı olur.


Dynamic Set

Şimdi gerçek güvenlik başlıyor.

Önce set oluşturalım.

sudo nft add set inet filter ssh_blacklist \
'{ type ipv4_addr; timeout 30m; }'

Bu kümedeki IP'ler

30 dakika sonra

otomatik silinecektir.


Kara Listeyi Kullanmak

İlk kural

ip saddr @ssh_blacklist drop

Artık listedeki bütün IP'ler

engellenmektedir.


Şüpheli IP Eklemek

Örneğin

203.0.113.20

adresini ekleyelim.

sudo nft add element inet filter ssh_blacklist \
{203.0.113.20}

30 dakika sonra

otomatik silinir.


Dinamik Kara Liste

Yeni SSH bağlantıları sırasında belirli bir eşiği aşan IP'ler otomatik olarak kümeye eklenebilir.

Kavramsal akış:

SSH

↓

Çok Fazla Deneme

↓

Set'e Ekle

↓

30 Dakika Engelle

↓

Otomatik Sil

Bu yöntem, uzun süreli manuel kara listeler yerine daha esnek bir savunma sağlar.


Connection Limit

Aynı IP'nin aynı anda çok sayıda bağlantı açmasını sınırlandırabiliriz.

Örnek:

ct count over 10 drop

Bu kural, belirli bağlamlarda aynı istemcinin aşırı bağlantı açmasını engellemek için kullanılabilir. Kullanım şekli senaryoya göre değişebilir ve laboratuvar ortamında test edilmelidir.


TCP SYN Flood

TCP bağlantısı şu şekilde başlar:

SYN

↓

SYN ACK

↓

ACK

Saldırgan:

SYN

SYN

SYN

SYN

SYN

gönderip

ACK göndermez.

Sunucu yarım açık bağlantılarla meşgul olur.


SYN Paketlerini Sınırlandırmak

tcp flags syn \
limit rate 20/second \
accept

Bu kural yalnızca yeni TCP bağlantılarının başlangıç paketlerini sınırlar.


INVALID Paketler

Her zaman ilk sıralarda olmalıdır.

ct state invalid drop

Established

Her zaman üst sıralarda bulunmalıdır.

ct state established,related accept

SSH Koruma Sırası

Önerilen yapı:

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

BLACKLIST

↓

RATE LIMIT

↓

SSH

↓

DROP

Bu sıra hem performans hem de güvenlik açısından uygundur.


Port Taraması (Port Scan)

Bir saldırgan:

22

23

25

53

80

110

139

443

445

3306

gibi çok sayıda porta kısa sürede istek gönderebilir.

Amaç:

hangi servislerin açık olduğunu öğrenmektir.


Port Scan'i Zorlaştırmak

Yeni bağlantıları sınırlandırabiliriz.

ct state new \
limit rate 30/minute \
accept

Bu yaklaşım hızlı taramaların etkisini azaltır.

Not: Port taramalarını tamamen engellemek mümkün değildir. Ancak hızlarını düşürmek ve günlükleyerek tespit etmek mümkündür.


SSH Brute Force Koruması

Örnek politika:

ct state invalid drop

ct state established,related accept

iif lo accept

ip saddr @ssh_blacklist drop

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

counter log prefix "SSH DROP: " drop

Bu yapı:

  • Geçersiz paketleri engeller.

  • Mevcut bağlantıları korur.

  • Kara listedeki IP'leri reddeder.

  • SSH bağlantı hızını sınırlar.

  • Reddedilen denemeleri kaydeder.


Web Sunucusu Koruması

ct state established,related accept

tcp dport {80,443} \
limit rate 200/second \
accept

Yoğun ama normal web trafiği için uygun bir başlangıç politikasıdır.


Yönetim Ağı Kısıtlaması

SSH yalnızca yönetim ağına açık olsun.

ip saddr 192.168.10.0/24 \
tcp dport 22 \
accept

Bu, kaba kuvvet saldırılarının büyük bölümünü daha başlamadan engeller.


Gerçek Kurumsal Senaryo

Bir okul sunucusu:

  • Moodle

  • Samba

  • Nextcloud

  • SSH

servisleri sunuyor.

Politika:

ServisKoruma
SSHSadece yönetim ağı + rate limit
HTTPRate limit
HTTPSRate limit
SambaSadece yerel ağ
Diğer tüm trafikDrop + Log

Bu yaklaşım, "en az ayrıcalık" ilkesine uygundur.


Log ile Birlikte

Şüpheli SSH denemelerini kaydedelim.

tcp dport 22 \
log prefix "SSH ATTACK: " \
limit rate 5/minute \
accept

Ardından:

journalctl -k | grep SSH

ile analiz edilebilir.


Fail2ban ve nftables

Birçok kurum Fail2ban ile nftables'i birlikte kullanır.

Çalışma mantığı:

SSH Logları

↓

Fail2ban

↓

Şüpheli IP

↓

nftables Set

↓

DROP

Bu entegrasyon sayesinde başarısız oturum açma denemeleri otomatik analiz edilir ve saldırgan IP'ler belirli sürelerle engellenebilir.


Performans Açısından

En hızlı kurallar:

ct state established
iif lo
set lookup

En maliyetli işlemler:

  • Her paketi loglamak

  • Çok fazla ayrı kural yazmak

  • Gereksiz karmaşık ifadeler

  • Yanlış sıralanmış zincirler

Bu nedenle sık eşleşen kurallar her zaman üst sıralarda yer almalıdır.


Siber Güvenlik Perspektifi

Firewall'un amacı yalnızca saldırıları engellemek değildir.

İyi tasarlanmış bir nftables politikası:

  • Brute Force saldırılarını yavaşlatır.

  • Port taramalarını tespit eder.

  • Bot trafiğini filtreler.

  • Loglar sayesinde olay müdahalesini kolaylaştırır.

  • Dinamik kara listeler ile saldırganların tekrar deneme süresini uzatır.

Ancak unutulmamalıdır ki:

  • SSH için anahtar tabanlı kimlik doğrulama,

  • Çok faktörlü kimlik doğrulama (MFA),

  • Güçlü parola politikaları,

  • Düzenli güvenlik güncellemeleri

gibi önlemler firewall'u tamamlayan güvenlik katmanlarıdır.


En Sık Yapılan Hatalar

HataSonuç
Rate limit değerlerini çok düşük belirlemekMeşru kullanıcılar da engellenebilir
Kara listeleri hiç temizlememekGereksiz engellemeler oluşur
Her paketi loglamakDisk ve CPU yükü artar
SSH'yi tüm internete açmakBrute force riski artar
Rate limiting'i tek güvenlik önlemi sanmakGelişmiş saldırılar yine başarılı olabilir

Laboratuvar Uygulaması

Senaryo

Bir Pardus 25 sunucusunda:

  • SSH yalnızca dakikada 5 yeni bağlantı kabul edecek.

  • Ping istekleri saniyede 10 ile sınırlandırılacak.

  • Kara listedeki IP'ler 30 dakika engellenecek.

  • Reddedilen SSH denemeleri loglanacak.

Örnek kurallar

ct state invalid drop

ct state established,related accept

iif lo accept

ip saddr @ssh_blacklist drop

icmp type echo-request limit rate 10/second accept

tcp dport 22 ct state new \
limit rate 5/minute \
log prefix "SSH: " \
accept

counter drop

Bu yapı küçük ve orta ölçekli sunucular için iyi bir başlangıç güvenlik politikasıdır.


Bölüm Özeti

Bu bölümde:

  • Rate Limiting mekanizmasını,

  • SSH Brute Force korumasını,

  • Dinamik kara listeleri,

  • Timeout kullanan setleri,

  • SYN Flood ve ICMP Flood azaltma yöntemlerini,

  • Port taramalarını yavaşlatmayı,

  • Fail2ban ile entegrasyonu,

  • Kurumsal güvenlik politikalarını

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 10 — IPv6 Güvenliği ve Dual Stack Firewall Tasarımı

IPv6 artık geleceğin değil, bugünün ağ teknolojisidir. Birçok sistem yöneticisi IPv4 güvenliğine önem verirken IPv6'yı devre dışı bırakmayı veya tamamen görmezden gelmeyi tercih etmektedir. Ancak modern Linux çekirdeğinde IPv6 çoğu zaman varsayılan olarak etkindir ve yanlış yapılandırılmış bir IPv6 firewall politikası, IPv4 tarafı güvenli olsa bile sistemi savunmasız bırakabilir.

Önemli Not: IPv6 güvenliği, IPv4 kurallarının birebir kopyalanması değildir. Özellikle ICMPv6, Neighbor Discovery Protocol (NDP) ve Router Advertisement (RA) gibi protokoller IPv6'nın çalışması için gereklidir. Bunların tamamını engellemek ağın çalışmasını bozabilir.


Bölümün Hedefleri

Bu bölümün sonunda;

  • IPv6'nın temel mimarisini,

  • IPv4 ve IPv6 firewall farklarını,

  • ICMPv6'nın önemini,

  • Neighbor Discovery (NDP),

  • Router Advertisement (RA),

  • SLAAC ve DHCPv6,

  • IPv6 filtreleme kurallarını,

  • IPv6'ya özgü saldırıları,

  • Dual Stack firewall tasarımını,

  • Kurumsal IPv6 güvenlik politikalarını

öğreneceksiniz.


IPv4 ve IPv6 Arasındaki Temel Fark

IPv4 adresi:

192.168.1.25

IPv6 adresi:

2001:db8:abcd:100::25

IPv6'nın en önemli özellikleri:

  • Çok daha geniş adres alanı (128 bit)

  • NAT'a ihtiyaç duymayan mimari

  • Yerleşik multicast desteği

  • Neighbor Discovery (NDP)

  • SLAAC (Stateless Address Autoconfiguration)

  • Daha sade paket başlığı


Dual Stack Nedir?

Kurumsal ağların büyük bölümü halen hem IPv4 hem de IPv6'yı birlikte kullanmaktadır.

                Sunucu
                  │
        ┌─────────┴─────────┐
        │                   │
     IPv4                IPv6
192.168.10.20     2001:db8:100::20

Bu yapıya Dual Stack denir.

En sık yapılan hata: Yalnızca IPv4 için firewall kuralları yazıp IPv6'yı tamamen açık bırakmaktır.


nftables ve inet Tablosu

nftables'in en büyük avantajlarından biri inet ailesidir.

Örneğin:

sudo nft add table inet filter

Bu tablo:

  • IPv4

  • IPv6

trafiğini aynı zincir içinde yönetebilir.

Bu sayede iki farklı firewall politikası yazmaya gerek kalmaz.


IPv6 Paket Akışı

İstemci

↓

IPv6 Paket

↓

INPUT

↓

Firewall

↓

Accept / Drop

İşleyiş IPv4'e benzer olsa da kullanılan protokoller farklıdır.


ICMPv6 Neden Çok Önemlidir?

IPv4'te birçok yönetici:

Ping

↓

Engelle

şeklinde düşünür.

IPv6'da bu yaklaşım doğru değildir.

Çünkü ICMPv6 yalnızca ping değildir.

Aynı zamanda:

  • Neighbor Discovery

  • Path MTU Discovery

  • Router Discovery

  • Address Resolution

gibi temel işlevleri de sağlar.


ICMPv6 Tamamen Engellenirse

IPv6 Ağ

↓

Komşu Bulunamaz

↓

İletişim Kesilir

Bu nedenle ICMPv6 için seçici kurallar yazılmalıdır.


Neighbor Discovery (NDP)

IPv4'te:

ARP

kullanılır.

IPv6'da ise:

Neighbor Solicitation

Neighbor Advertisement

mesajları kullanılır.

Firewall bunlara izin vermelidir.


Gerekli ICMPv6 Türleri

Çoğu kurumsal ağ için aşağıdaki mesajlara izin verilmelidir:

TürAmaç
echo-requestPing isteği (isteğe bağlı)
echo-replyPing cevabı
destination-unreachableUlaşılamayan hedef
packet-too-bigMTU keşfi
time-exceededSüre aşımı
neighbor-solicitationKomşu sorgulama
neighbor-advertisementKomşu cevabı
router-solicitationYönlendirici sorgulama
router-advertisementYönlendirici duyurusu (ihtiyaca göre)

ICMPv6 Kuralı

Temel örnek:

sudo nft add rule inet filter input \
icmpv6 type {
echo-request,
echo-reply,
destination-unreachable,
packet-too-big,
time-exceeded,
neighbor-solicitation,
neighbor-advertisement
} accept

Kurumsal ortamlarda Router Advertisement mesajlarının kabul edilip edilmeyeceği ağ tasarımına göre belirlenmelidir.


SLAAC Nedir?

IPv6 istemcileri IP adresini otomatik alabilir.

Router Advertisement

↓

İstemci

↓

IPv6 Adresi Oluştur

Bu yapıya:

SLAAC

denir.


DHCPv6

IPv4'te olduğu gibi DHCP sunucusu kullanılabilir.

DHCPv6

↓

IPv6 Adresi

↓

DNS

↓

Gateway

Bazı ağlarda SLAAC ve DHCPv6 birlikte kullanılabilir.


Router Advertisement (RA)

Yönlendiriciler belirli aralıklarla RA paketleri gönderir.

Router

↓

RA

↓

İstemciler

Yanlış RA paketleri ağ trafiğini farklı bir yönlendiriciye aktarabilir.

Bu durum Rogue Router Advertisement saldırısı olarak bilinir.


Rogue RA Saldırısı

Saldırgan:

Sahte Router

↓

Router Advertisement

↓

İstemciler

↓

Trafik Saldırgana Gider

Sonuç:

  • Man-in-the-Middle

  • Trafik dinleme

  • Hizmet kesintisi

oluşabilir.

Bu nedenle istemci ağlarında RA filtreleme veya anahtar (switch) seviyesinde RA Guard gibi mekanizmalar değerlendirilebilir.


IPv6 Firewall Kuralları

Her zamanki gibi:

ct state established,related accept

Loopback:

iif lo accept

ICMPv6:

icmpv6 accept

ve ardından servis kuralları.


SSH

tcp dport 22 accept

Bu kural hem IPv4 hem IPv6 için çalışabilir.


IPv6 Adres Filtreleme

ip6 saddr 2001:db8:100::/64 accept

Yalnızca belirtilen IPv6 ağından gelen bağlantılar kabul edilir.


IPv6 Set Kullanımı

sudo nft add set inet filter trusted_ipv6 \
'{ type ipv6_addr; }'

Eleman ekleme:

sudo nft add element inet filter trusted_ipv6 \
{2001:db8:100::10}

Kullanım:

ip6 saddr @trusted_ipv6 accept

Bu yöntem büyük IPv6 ağlarının yönetimini kolaylaştırır.


IPv6 ve NAT

IPv6 tasarımında NAT zorunlu değildir.

İstemci

↓

Gerçek IPv6

↓

İnternet

Bu nedenle güvenlik:

  • Firewall

  • ACL

  • Segmentasyon

ile sağlanmalıdır.

"NAT güvenlik sağlar" yaklaşımı IPv6 için geçerli değildir.


IPv6 Rate Limit

ICMP Flood azaltmak için:

icmpv6 type echo-request \
limit rate 10/second \
accept

IPv6 Loglama

icmpv6 \
log prefix "IPv6 ICMP: " \
accept

veya

tcp dport 22 \
log prefix "IPv6 SSH: " \
accept

Gerçek Kurumsal Senaryo

Bir üniversite ağı:

IPv4

192.168.10.0/24

IPv6

2001:db8:100::/64

Politika:

ServisIPv4IPv6
SSHYönetim ağıYönetim ağı
HTTPAçıkAçık
HTTPSAçıkAçık
SambaYerel ağYerel ağ
MySQLKapalıKapalı

Firewall kuralları inet tablosunda tek bir politika altında yönetilebilir.


Güvenli Dual Stack Politikası

Önerilen sıralama:

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

ICMPv6

↓

SSH

↓

HTTP

↓

HTTPS

↓

DROP

Bu yapı hem IPv4 hem de IPv6 trafiği için tutarlı bir güvenlik politikası oluşturur.


Siber Güvenlik Perspektifi

IPv6'nın etkin olduğu ancak firewall kurallarının yalnızca IPv4 için yazıldığı sistemler, saldırganlar için kolay hedef olabilir.

Kurumsal ortamlarda:

  • IPv6 gerçekten kullanılmıyorsa kontrollü şekilde devre dışı bırakılması değerlendirilebilir.

  • Kullanılıyorsa IPv4 ile aynı güvenlik standartları uygulanmalıdır.

  • ICMPv6 tamamen engellenmemeli, gerekli türlere seçici olarak izin verilmelidir.

  • Rogue RA ve NDP tabanlı saldırılara karşı ağ altyapısı da korunmalıdır.

  • Firewall, anahtar güvenliği ve izleme mekanizmaları birlikte düşünülmelidir.


En Sık Yapılan Hatalar

HataSonuç
Sadece IPv4 firewall yazmakIPv6 üzerinden yetkisiz erişim
ICMPv6'yı tamamen engellemekIPv6 iletişiminin bozulması
IPv6 adreslerini loglamamakOlay analizinin zorlaşması
Dual Stack'te farklı güvenlik politikaları uygulamakTutarsız güvenlik seviyesi
Router Advertisement mesajlarını kontrol etmemekRogue RA saldırıları

Laboratuvar Uygulaması

Senaryo

Bir Pardus 25 sunucusunda:

  • IPv4 ve IPv6 birlikte kullanılacak.

  • SSH yalnızca yönetim ağlarından erişilebilir olacak.

  • HTTP ve HTTPS herkese açık olacak.

  • Gerekli ICMPv6 mesajlarına izin verilecek.

  • Diğer tüm yeni bağlantılar reddedilecek.

Örnek kurallar

ct state invalid drop

ct state established,related accept

iif lo accept

icmpv6 type {
echo-request,
echo-reply,
destination-unreachable,
packet-too-big,
neighbor-solicitation,
neighbor-advertisement
} accept

ip saddr 192.168.10.0/24 tcp dport 22 accept

ip6 saddr 2001:db8:100::/64 tcp dport 22 accept

tcp dport {80,443} accept

counter drop

Bu yapı, Dual Stack çalışan bir Pardus 25 sunucusu için güvenli ve genişletilebilir bir temel politika sağlar.


Bölüm Özeti

Bu bölümde:

  • IPv6 mimarisini,

  • IPv4 ve IPv6 arasındaki güvenlik farklarını,

  • ICMPv6'nın kritik rolünü,

  • Neighbor Discovery ve Router Advertisement mekanizmalarını,

  • Dual Stack firewall tasarımını,

  • IPv6 filtreleme kurallarını,

  • IPv6'ya özgü saldırıları,

  • Kurumsal IPv6 güvenlik yaklaşımlarını

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 11 — Kurumsal nftables Mimarisi, En İyi Uygulamalar (Best Practices) ve Yönetim Standartları

Bu bölüm profesyonel sistem yöneticileri, siber güvenlik uzmanları ve SOC ekipleri için hazırlanmıştır. Küçük sistemlerde birkaç firewall kuralı yeterli olabilir. Ancak yüzlerce sunucunun bulunduğu kurumsal yapılarda firewall yönetimi; planlama, standartlaştırma, sürüm kontrolü, otomasyon ve değişiklik yönetimi (Change Management) gerektirir. Başarılı bir firewall mimarisi yalnızca doğru kurallardan değil, doğru yönetim süreçlerinden de oluşur.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Kurumsal firewall mimarisi tasarlamayı,

  • Modüler nftables yapılarını,

  • include kullanımını,

  • /etc/nftables.conf dosyasının profesyonel organizasyonunu,

  • Değişiklik yönetimini (Change Management),

  • Yedekleme ve geri dönüş stratejilerini,

  • Ansible ile otomasyonu,

  • Sanallaştırma ve konteyner ortamlarında nftables kullanımını,

  • Yüksek erişilebilirlik (High Availability),

  • Güvenlik standartlarını

öğreneceksiniz.


Küçük Sistem ile Kurumsal Sistem Arasındaki Fark

Küçük Ofis

Tek Sunucu

↓

20 Firewall Kuralı

↓

Tek nftables.conf

Yönetmesi kolaydır.


Kurumsal Veri Merkezi

200 Sunucu

↓

10.000+

Firewall Kuralı

↓

Merkezi Yönetim

Artık tek dosya yeterli değildir.


Kurumsal Firewall Tasarım İlkeleri

Profesyonel firewall'larda temel ilkeler:

  • En az ayrıcalık (Least Privilege)

  • Varsayılan engelle (Default Deny)

  • Açık dokümantasyon

  • Modüler yapı

  • Sürüm kontrolü

  • Düzenli gözden geçirme

  • Otomasyon

  • Merkezi loglama

  • Sürekli denetim


Tek Dosya Kullanmanın Sorunları

Büyük bir yapı:

/etc/nftables.conf

↓

5000 satır

olursa;

  • okunması zorlaşır,

  • hata yapma ihtimali artar,

  • ekip çalışması zorlaşır,

  • değişiklik takibi güçleşir.


Modüler Yapı

Profesyonel yaklaşım:

/etc/nftables/

├── main.nft
├── tables/
├── chains/
├── rules/
├── sets/
├── nat/
├── logging/
├── ipv6/
└── services/

Her konu kendi dosyasında tutulur.


include Kullanımı

Ana dosya:

include "/etc/nftables/tables/*.nft"

include "/etc/nftables/chains/*.nft"

include "/etc/nftables/rules/*.nft"

Artık tüm yapı otomatik yüklenir.


Örnek Dosya Yapısı

rules/

ssh.nft

web.nft

smtp.nft

dns.nft

vpn.nft

SSH değişirse

yalnızca

ssh.nft

güncellenir.


Servislere Göre Ayrım

Örneğin;

services/

ssh.nft

apache.nft

nginx.nft

mysql.nft

postgresql.nft

Bu yöntem bakım kolaylığı sağlar.


Ağ Segmentlerine Göre Ayrım

network/

dmz.nft

internal.nft

guest.nft

vpn.nft

Kurumsal ağlarda yaygın kullanılan yöntemlerden biridir.


Ortak Set Dosyaları

sets/

blacklist.nft

whitelist.nft

management.nft

servers.nft

Firewall kuralları

yalnızca

setleri kullanır.


Açıklama (Comment)

Her önemli kural açıklanmalıdır.

Örneğin:

tcp dport 22 \
accept \
comment "SSH Yönetim Ağı"

Büyük ekiplerde yorum satırları bakım süresini önemli ölçüde azaltır.


İsimlendirme Standardı

Önerilen yapı:

fw_input

fw_output

fw_forward

trusted_admins

blocked_hosts

web_servers

Anlaşılır isimler tercih edilmelidir.


Sürüm Kontrolü

Firewall dosyaları mutlaka Git gibi bir sürüm kontrol sistemi ile yönetilmelidir.

Örnek yapı:

Firewall

↓

Git

↓

Commit

↓

Review

↓

Production

Böylece:

  • Kim değiştirdi?

  • Ne değişti?

  • Ne zaman değişti?

soruları kolayca cevaplanabilir.


Değişiklik Yönetimi (Change Management)

Kurumsal ortamlarda önerilen süreç:

Talep

↓

Risk Analizi

↓

Test

↓

Onay

↓

Canlı Ortam

↓

İzleme

↓

Dokümantasyon

Firewall kuralları doğrudan üretim ortamında değiştirilmemelidir.


Test Ortamı

Her zaman önce:

Development

↓

Test

↓

Production

sırası izlenmelidir.


nft -c Kullanımı

Kuralları uygulamadan önce sözdizimini kontrol edin.

sudo nft -c -f /etc/nftables.conf

Bu komut:

  • Dosyayı çalıştırmaz.

  • Sadece hata olup olmadığını kontrol eder.


Atomik Güncelleme

nftables'in önemli avantajlarından biri:

Eski Kurallar

↓

Yeni Kurallar

↓

Tek Seferde Değiştir

Kurallar atomik olarak yüklenir.

Yarı uygulanmış bir yapı oluşmaz.


Yedekleme

Her değişiklikten önce:

sudo nft list ruleset > backup.nft

Geri Dönüş

sudo nft -f backup.nft

Bu nedenle her değişiklik öncesinde yedek alınmalıdır.


Ansible ile Yönetim

Kurumsal yapılarda yüzlerce sunucu olabilir.

Ansible

↓

Firewall Dosyası

↓

100 Sunucu

Tek komutla güncellenebilir.


Puppet / Salt / Chef

Benzer şekilde;

  • Puppet

  • SaltStack

  • Chef

ile de merkezi firewall yönetimi yapılabilir.


Sanallaştırma Ortamları

Örneğin:

KVM

↓

Bridge

↓

VM1

VM2

VM3

Firewall

host üzerinde

çalışabilir.


Docker

Docker

çoğu zaman

kendi firewall kurallarını oluşturur.

Docker

↓

nftables

↓

Bridge

Kuralların çakışmamasına dikkat edilmelidir.


Podman

Podman da benzer şekilde nftables altyapısını kullanabilir.

Kurumsal sistemlerde container ağlarının güvenlik politikaları ayrıca planlanmalıdır.


Kubernetes

Kubernetes ortamlarında:

  • CNI eklentileri

  • kube-proxy

  • Ağ politikaları (Network Policies)

nftables ile etkileşime girebilir.

Firewall tasarlanırken kümenin ağ mimarisi göz önünde bulundurulmalıdır.


High Availability

Firewall tek noktadan oluşmamalıdır.

Firewall A

↓

Firewall B

↓

VRRP

↓

Sanal IP

Bir cihaz arızalandığında

diğeri devreye girer.

Linux ortamlarında bu senaryolarda sıklıkla Keepalived (VRRP) gibi çözümler kullanılır.


Merkezi Loglama

Firewall

↓

journald

↓

rsyslog

↓

SIEM

Örneğin:

  • Wazuh

  • Graylog

  • ELK Stack

  • Splunk

ile analiz yapılabilir.


Performans İlkeleri

En sık kullanılan kurallar

üstte olmalıdır.

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

SET LOOKUP

↓

SSH

↓

HTTP

↓

DROP

Bu sıralama gereksiz işlem yükünü azaltır.


Düzenli Denetim

Ayda en az bir kez:

  • Kullanılmayan kurallar

  • Gereksiz portlar

  • Eski whitelist kayıtları

  • Süresi dolmuş geçici izinler

  • Dinamik setler

gözden geçirilmelidir.


Dokümantasyon

Her firewall için:

  • Amaç

  • Ağ diyagramı

  • Açık portlar

  • Yönetim ağı

  • Acil durum prosedürü

  • Geri dönüş planı

hazırlanmalıdır.


Gerçek Kurumsal Mimari

                    İnternet
                        │
                  Border Firewall
                        │
                ┌───────┴────────┐
                │                │
              DMZ             İç Ağ
                │                │
      Web / Mail Sunucuları   Kullanıcılar
                │                │
          İç Firewall       Yönetim Ağı
                │                │
          Veritabanı Sunucuları

Her ağ segmenti için farklı nftables kuralları uygulanmalıdır.


Güvenlik Kontrol Listesi

Her yeni sunucu devreye alınmadan önce:

  • Varsayılan politika drop mı?

  • Loopback açık mı?

  • ct state established,related tanımlı mı?

  • ct state invalid drop mevcut mu?

  • SSH yalnızca yönetim ağına açık mı?

  • Gereksiz servisler kapalı mı?

  • Loglama etkin mi?

  • Sayaçlar (counter) kullanılıyor mu?

  • IPv6 kuralları tanımlandı mı?

  • Yapılandırma nft -c ile doğrulandı mı?

  • Kurallar yedeklendi mi?

  • Değişiklik dokümante edildi mi?


Siber Güvenlik Perspektifi

Kurumsal firewall yönetimi yalnızca teknik bir konu değildir; aynı zamanda yönetişim (governance), risk yönetimi ve denetim süreçlerinin de bir parçasıdır.

Başarılı bir nftables mimarisi:

  • En az ayrıcalık ilkesini uygular.

  • Güvenlik politikalarını standartlaştırır.

  • İnsan hatasını azaltır.

  • Değişiklikleri izlenebilir hâle getirir.

  • Olay müdahalesini hızlandırır.

  • Denetimlerde kanıt sunmayı kolaylaştırır.

Firewall'un etkinliği, yalnızca yazılan kurallarla değil; bu kuralların nasıl yönetildiği, test edildiği ve sürdürüldüğü ile ölçülmelidir.


En Sık Yapılan Hatalar

HataSonuç
Tüm kuralları tek dosyada tutmakYönetim zorlaşır
Sürüm kontrolü kullanmamakGeri dönüş imkânı azalır
Test etmeden canlıya almakServis kesintisi riski
Yedek almamakKurtarma süresi uzar
Dokümantasyon hazırlamamakBilgi kaybı ve bakım zorluğu
IPv6 kurallarını ihmal etmekGüvenlik açığı oluşabilir

Bölüm Özeti

Bu bölümde:

  • Kurumsal nftables mimarisini,

  • Modüler yapı ve include kullanımını,

  • Dosya organizasyonunu,

  • Değişiklik yönetimini,

  • Yedekleme ve geri dönüş stratejilerini,

  • Otomasyon araçlarını,

  • Sanallaştırma ve konteyner ortamlarını,

  • Yüksek erişilebilirlik yaklaşımlarını,

  • Güvenlik standartlarını

ayrıntılı olarak öğrendik.



Pardus 25'te nftables ile Güvenlik Duvarı Yönetimi

Bölüm 12 — Gerçek Kurumsal Güvenlik Duvarı Projesi (Production Ready Firewall)

Bu bölüm, kitabın zirve noktasıdır. Önceki bölümlerde öğrendiğimiz tüm kavramları tek bir profesyonel projede birleştireceğiz. Amacımız yalnızca çalışan bir firewall oluşturmak değil; güvenli, sürdürülebilir, yönetilebilir ve kurumsal standartlara uygun bir güvenlik mimarisi tasarlamaktır.

Bu bölümde hazırlanacak yapı;

  • ✅ Pardus 25 Sunucuları

  • ✅ Okul Ağları (MEB ETAP)

  • ✅ Üniversiteler

  • ✅ Kamu Kurumları

  • ✅ KOBİ'ler

  • ✅ Veri Merkezleri

  • ✅ Sanallaştırma Sunucuları (KVM/Proxmox)

  • ✅ Docker / Podman Sunucuları

için örnek alınabilecek profesyonel bir referans mimari olacaktır.


Bölümün Hedefleri

Bu bölümün sonunda;

  • Kurumsal firewall mimarisi oluşturmayı,

  • Ağ segmentlerini ayırmayı,

  • NAT ve Port Forwarding yapılandırmayı,

  • IPv4 ve IPv6 (Dual Stack) desteği sağlamayı,

  • Güvenli SSH erişimi oluşturmayı,

  • DMZ tasarlamayı,

  • Merkezi loglama yapısını kurmayı,

  • Dinamik kara listeler kullanmayı,

  • Fail2ban entegrasyonunu planlamayı,

  • Felaket kurtarma (Disaster Recovery) yaklaşımını uygulamayı

öğreneceksiniz.


Senaryo

Bir eğitim kurumunun veri merkezi düşünelim.

Ağ Topolojisi

                        İnternet
                            │
                    ISP Modem / Router
                            │
                    WAN : 203.0.113.10
                            │
                   ┌─────────────────┐
                   │ Pardus 25 Gateway│
                   │     nftables     │
                   └─────────────────┘
                            │
        ┌────────────┬────────────┬────────────┐
        │            │            │
      Yönetim       DMZ        İç Ağ
 192.168.1.0/24 192.168.10.0/24 192.168.20.0/24
        │            │            │
  Admin PC      Web Sunucu    Kullanıcılar
                Moodle
                Nextcloud

Ağ Segmentleri

Amaç
WANİnternet
ManagementSistem yöneticileri
DMZİnternete açık sunucular
InternalKullanıcı bilgisayarları
ServerVeritabanı ve dosya sunucuları
VPNUzaktan erişim kullanıcıları

Her segment için farklı güvenlik politikası uygulanacaktır.


Varsayılan Güvenlik Politikası

Temel ilke:

Her şeyi engelle

↓

Sadece gerekli olanlara izin ver

Bu yaklaşım Default Deny olarak adlandırılır.


Dosya Yapısı

/etc/nftables/

main.nft

tables/
chains/
sets/
rules/
nat/
logging/
ipv6/
services/

Ana Yapı

main.nft

↓

include tables

↓

include sets

↓

include chains

↓

include services

↓

include logging

INPUT Politikası

Sıralama:

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

MANAGEMENT

↓

SSH

↓

HTTP

↓

HTTPS

↓

ICMP

↓

DROP

FORWARD Politikası

VPN

↓

DMZ

↓

Internal

↓

Internet

↓

DROP

OUTPUT Politikası

DNS

NTP

HTTP

HTTPS

↓

Accept

Sunucunun dış dünyaya yalnızca ihtiyaç duyduğu bağlantıları kurmasına izin verilir.


SSH Güvenliği

Kurallar:

  • Yönetim ağı dışından erişim yok.

  • Rate Limit.

  • Fail2ban.

  • Loglama.

  • Anahtar tabanlı kimlik doğrulama.

  • Root ile doğrudan oturum açma kapalı.

Firewall tarafında yalnızca yönetim ağına izin verilmesi önerilir.


DMZ

DMZ'de bulunan sunucular:

Moodle

Nextcloud

Reverse Proxy

Mail Gateway

DMZ

İç ağa

Doğrudan erişemez.

Bu ayrım, bir DMZ sunucusu ele geçirilse bile iç ağın korunmasına yardımcı olur.


NAT

İç ağ:

192.168.20.0/24

Masquerade

İnternet

DMZ servisleri için yalnızca gerekli portlar dış dünyaya yönlendirilir.


Port Forwarding

Dış Portİç Sunucu
80Reverse Proxy
443Reverse Proxy
25Mail Gateway
1194VPN
51820WireGuard

Veritabanı servisleri doğrudan internete açılmaz.


IPv6

IPv6 etkinse;

  • Dual Stack kuralları yazılır.

  • Gerekli ICMPv6 mesajlarına izin verilir.

  • IPv4 ve IPv6 güvenlik politikaları eşit seviyede uygulanır.


Loglama

Loglanacak olaylar:

  • Başarısız SSH denemeleri

  • Geçersiz paketler (INVALID)

  • Kara listeye alınan IP'ler

  • Port tarama belirtileri

  • Kritik servis erişimleri

Loglar merkezi syslog/SIEM altyapısına gönderilir.


Fail2ban Entegrasyonu

Çalışma mantığı:

SSH Logları

↓

Fail2ban

↓

Şüpheli IP

↓

nftables Dynamic Set

↓

DROP

Geçici engelleme süreleri güvenlik politikasına göre belirlenebilir.


Dinamik Kara Liste

SSH

↓

10 başarısız deneme

↓

1 Saat Engelle

↓

Otomatik Sil

Dinamik setler sayesinde manuel müdahale ihtiyacı azalır.


Yedekleme

Her değişiklikten önce:

sudo nft list ruleset > firewall-backup.nft

Haftalık otomatik yedekleme önerilir.


Güncelleme Süreci

Geliştirme

↓

Test

↓

Onay

↓

Üretim

↓

İzleme

Canlı sistemde doğrudan değişiklik yapılmamalıdır.


Yüksek Erişilebilirlik (HA)

                İnternet
                    │
         ┌──────────┴──────────┐
         │                     │
  Firewall A            Firewall B
         │                     │
      Keepalived (VRRP)
         │
      Sanal IP

Firewall A devre dışı kalırsa Firewall B hizmet vermeye devam eder.


Performans

Kurallar şu sırada değerlendirilmelidir:

INVALID

↓

ESTABLISHED

↓

LOOPBACK

↓

SET

↓

MANAGEMENT

↓

SERVICES

↓

LOG

↓

DROP

Bu sıralama paket işleme süresini azaltır.


İzleme

Düzenli olarak kontrol edilmelidir:

  • journalctl

  • nft monitor

  • nft list ruleset

  • Sayaçlar (counter)

  • Dinamik setler

  • Disk kullanımı

  • CPU kullanımı


Acil Durum Planı

Firewall değişikliği sonrası erişim kaybedildiğinde:

  1. Konsol veya KVM erişimi kullanın.

  2. Son yedeği geri yükleyin.

  3. Kuralları nft -c ile doğrulayın.

  4. Tekrar uygulayın.

  5. Olayı dokümante edin.


Güvenlik Kontrol Listesi

  • ✅ Gereksiz portlar kapalı

  • ✅ Segmentasyon uygulanmış

  • ✅ DMZ ayrılmış

  • ✅ Yönetim ağı izole edilmiş

Firewall

  • ✅ Default Drop

  • ✅ Established/Related

  • ✅ Invalid Drop

  • ✅ Loopback açık

  • ✅ IPv6 kuralları tanımlı

Servisler

  • ✅ SSH yalnızca yönetim ağına açık

  • ✅ HTTP/HTTPS gerekli sunuculara yönlendiriliyor

  • ✅ Veritabanı internete kapalı

Günlükleme

  • ✅ SSH logları

  • ✅ DROP logları

  • ✅ INVALID logları

  • ✅ Merkezi log sunucusu

Güvenlik

  • ✅ Fail2ban

  • ✅ Güçlü SSH yapılandırması

  • ✅ Düzenli güncelleme

  • ✅ Yedekleme


Kurumsal Güvenlik İlkeleri

Bir firewall;

  • yalnızca paket filtreleyen bir sistem değildir.

  • kurumun ilk savunma hattıdır.

  • güvenlik politikasının teknik uygulamasıdır.

  • olay müdahalesinin veri kaynağıdır.

  • denetim süreçlerinin önemli bir bileşenidir.

Başarılı bir firewall yönetimi için:

  • Düzenli bakım yapılmalı,

  • Kurallar sade tutulmalı,

  • Gereksiz izinler kaldırılmalı,

  • Loglar analiz edilmeli,

  • Güvenlik testleri düzenli uygulanmalıdır.


Kitabın Genel Özeti

Bu eğitim boyunca aşağıdaki konuları ayrıntılı olarak ele aldık:

  1. nftables mimarisi ve temel kavramlar

  2. Tablolar, zincirler ve hook mekanizması

  3. Temel filtreleme kuralları

  4. Connection Tracking (Conntrack)

  5. Setler, map yapıları ve performans optimizasyonu

  6. Kalıcı yapılandırma ve servis yönetimi

  7. NAT, Masquerade ve Port Forwarding

  8. Loglama, izleme ve hata ayıklama

  9. Rate Limiting, Brute Force ve Port Tarama koruması

  10. IPv6 güvenliği ve Dual Stack

  11. Kurumsal mimari ve en iyi uygulamalar

  12. Üretim ortamına uygun profesyonel firewall tasarımı


Sonuç

nftables, Linux çekirdeğinin modern paket filtreleme altyapısı olarak iptables'ın yerini almış; daha performanslı, daha okunabilir ve daha esnek bir güvenlik duvarı çözümü sunmaktadır. Pardus 25 üzerinde doğru planlanmış bir nftables mimarisi ile;

  • yüksek performans,

  • güçlü erişim kontrolü,

  • gelişmiş loglama,

  • kolay yönetim,

  • IPv4/IPv6 desteği,

  • otomasyon,

  • kurumsal ölçeklenebilirlik

aynı anda sağlanabilir.

Güvenlik duvarı hiçbir zaman tek başına yeterli değildir. Güçlü bir güvenlik mimarisi; güncel sistemler, sağlam kimlik doğrulama, ağ segmentasyonu, merkezi loglama, düzenli denetim ve kullanıcı farkındalığı ile birlikte anlam kazanır.



Harika bir fikir. Bu konu için tek bir laboratuvar yeterli olmaz. Ben bunu başlangıç → orta → ileri → uzman seviyelerinde ilerleyen 25 uygulamalı laboratuvar şeklinde hazırlardım. Böylece okuyucu her bölüm sonunda gerçek bir senaryo üzerinde çalışabilir.


EK BÖLÜM

Laboratuvar Senaryoları (25 Uygulamalı Çalışma)

Amaç

Bu laboratuvarların amacı;

  • nftables komutlarını uygulamalı öğrenmek

  • Gerçek firewall senaryoları oluşturmak

  • Siber saldırıları analiz etmek

  • Güvenli firewall politikaları geliştirmek

  • Kurumsal sistemlerde kullanılan yöntemleri uygulamak


Laboratuvar Ortamı

Önerilen Sanal Makine Yapısı

                    INTERNET

                        |

               10.10.10.1 Router

                        |

          -----------------------------

          |                           |

      Pardus 25 Firewall         Kali Linux

      10.10.10.10                10.10.10.20

          |

-------------------------------

|               |             |

Ubuntu         Windows      Rocky Linux

Server          Client        Server

10.10.10.30    10.10.10.40   10.10.10.50

Kullanılacak İşletim Sistemleri

  • Pardus 25

  • Kali Linux

  • Ubuntu Server

  • Debian

  • Rocky Linux

  • Windows 11


Kullanılacak Araçlar

Firewall

  • nft

  • journalctl

  • systemctl

Ağ Analizi

  • tcpdump

  • Wireshark

  • ss

  • ip

Test

  • curl

  • nc

  • nmap

  • hping3

  • ping

Saldırı

  • Hydra

  • Medusa

  • Nmap NSE

  • Netcat

  • Scapy


Seviye 1

Temel Laboratuvarlar


LAB-1

nftables Kurulumu

Amaç

Firewall servisini kurmak.

Görevler

  • nftables kur

  • servisi başlat

  • enable et

  • ruleset görüntüle

Beklenen Sonuç

sudo systemctl status nftables

ACTIVE olmalıdır.


LAB-2

İlk Firewall Kuralı

Amaç

SSH erişimine izin vermek.

Görev

INPUT zinciri oluştur.

SSH aç.

HTTP kapalı olsun.

Test

ssh user@server

Başarılı olmalı.


LAB-3

Ping Yönetimi

Görev

Ping açık.

Diğer ICMP türleri kapalı.

Test

ping server

LAB-4

Loopback Koruması

Loopback kapatıldığında

hangi servisler bozuluyor?

Gözlemle.

Sonra düzelt.


LAB-5

Default Drop

Amaç

Her şeyi engelle.

Sadece SSH açık olsun.

Test

Kali'den

curl

başarısız olmalı.

SSH başarılı olmalı.


Seviye 2

Orta Düzey Laboratuvarlar


LAB-6

HTTP Sunucusu Koruma

Apache kur.

80 aç.

443 kapalı.

Test

Tarayıcıdan bağlan.


LAB-7

HTTPS

443 aç.

Let's Encrypt kullan.

Firewall'u güncelle.


LAB-8

Connection Tracking

Görev

Established

Related

Invalid

kuralları oluştur.

tcpdump ile incele.


LAB-9

SSH Güvenliği

Yalnızca

192.168.1.0/24

erişebilsin.

Diğer ağlardan erişim engellensin.


LAB-10

Counter

Her HTTP isteğini say.

100 istek gönder.

Sayaçları incele.


Seviye 3

NAT Laboratuvarları


LAB-11

Masquerade

İç ağ

İnternet

çıkışı sağla.

Test

Ubuntu Server

Google DNS

ping 8.8.8.8

LAB-12

Port Forwarding

80

Ubuntu Server

Apache

Test

Tarayıcıdan aç.


LAB-13

SSH Port Forward

2222

22

Test

ssh -p 2222

LAB-14

Hairpin NAT

Yerel ağdan

Genel IP

üzerinden

Web Sunucusuna eriş.


LAB-15

Çoklu NAT

İki farklı WAN bağlantısı oluştur.

Hangi trafik hangi WAN'dan çıkıyor?

Analiz et.


Seviye 4

Güvenlik Laboratuvarları


LAB-16

Brute Force

Hydra kullan.

SSH saldırısı gerçekleştir.

Firewall loglarını incele.

Rate Limit uygula.

Tekrar test et.


LAB-17

Port Scan

Nmap

nmap -Pn server

Firewall loglarını incele.


LAB-18

SYN Flood

hping3 ile

SYN Flood oluştur.

Firewall nasıl davranıyor?


LAB-19

ICMP Flood

ping -f

Rate limit çalışıyor mu?


LAB-20

Dynamic Set

Saldırgan IP

Blacklist

30 dakika engelle

Otomatik sil


Seviye 5

Uzman Laboratuvarları


LAB-21

IPv6 Firewall

IPv6 ağı oluştur.

SSH aç.

HTTP aç.

ICMPv6 çalışıyor mu?


LAB-22

Docker

Docker kur.

Container oluştur.

Firewall kurallarını incele.

Docker'ın oluşturduğu kuralları analiz et.


LAB-23

WireGuard VPN

WireGuard kur.

VPN istemcisi bağla.

Firewall politikası oluştur.


LAB-24

SIEM

Wazuh veya Graylog kur.

Firewall loglarını gönder.

Dashboard oluştur.

En çok saldırı yapan IP'leri listele.


LAB-25

Gerçek Kurumsal Proje

Bir okul ağı tasarla.

İçinde;

  • Öğretmen VLAN

  • Öğrenci VLAN

  • Misafir VLAN

  • Sunucu VLAN

  • DMZ

  • VPN

  • IPv6

  • NAT

  • Port Forwarding

  • SSH Güvenliği

  • Fail2ban

  • Dynamic Sets

  • Merkezi Loglama

bulunsun.

Firewall'u sıfırdan yaz.

Tüm laboratuvar boyunca öğrendiğin teknikleri kullan.


Bonus Laboratuvarlar

BONUS-1

Firewall Performans Testi

100.000 paket üret.

CPU kullanımını ölç.


BONUS-2

Firewall Failover

Keepalived kur.

Ana firewall'u kapat.

Yedek devralıyor mu?


BONUS-3

Ansible ile 50 Sunucuyu Yönet

Tek komutla

50 Pardus sunucusunun firewall'unu güncelle.


BONUS-4

iptables → nftables Geçişi

Eski iptables kurallarını

nftables'e taşı.


BONUS-5

Olay Müdahalesi (Incident Response)

Bir saldırı senaryosu oluştur:

  • SSH brute force

  • Port taraması

  • Web uygulamasına yetkisiz erişim denemeleri

  • ICMP flood

Ardından:

  1. journalctl ve nft monitor ile olayları inceleyin.

  2. Saldırgan IP'leri tespit edin.

  3. Dinamik set kullanarak IP'leri geçici olarak engelleyin.

  4. Gerekirse Fail2ban entegrasyonunu doğrulayın.

  5. Olay raporu hazırlayın (zaman çizelgesi, etkilenen servisler, alınan önlemler).


Sonuç

Bu 25 temel + 5 bonus laboratuvar, kitabın teorik anlatımını uygulamayla pekiştirir. Baştan sona tamamlayan bir okuyucu:

  • nftables'i güvenle yönetebilir,

  • gerçek saldırıları analiz edebilir,

  • kurumsal firewall politikaları geliştirebilir,

  • Pardus 25 sistemlerinde üretim ortamına uygun güvenlik duvarı yapılandırmaları oluşturabilir.

Bu laboratuvarlar, eğitim kurumlarında ders materyali, kurum içi teknik eğitim veya sertifikasyon hazırlığı için de kullanılabilecek kapsamlı bir uygulama seti sunar.


EK BÖLÜM

Gerçek Siber Saldırı Simülasyonları ve Firewall Analizi

(Pardus 25 + nftables Uygulamalı Güvenlik Laboratuvarı)


Giriş

Bu bölümde, kontrollü bir laboratuvar ortamında gerçekleştirilebilecek gerçekçi siber saldırı senaryoları üzerinden nftables güvenlik duvarının davranışı incelenecektir.

Amaç saldırı gerçekleştirmeyi öğretmek değil; saldırıları tespit etmeyi, analiz etmeyi ve uygun firewall politikalarıyla etkilerini azaltmayı öğrenmektir.

Her laboratuvar aşağıdaki bölümlerden oluşmaktadır:

  • Senaryo

  • Amaç

  • Laboratuvar Topolojisi

  • Saldırı Simülasyonu

  • Firewall Analizi

  • Beklenen Loglar

  • Olay Müdahalesi (Incident Response)

  • İyileştirme Önerileri

Etik Uyarı: Bu laboratuvarlar yalnızca size ait veya açıkça yetkilendirildiğiniz sistemlerde uygulanmalıdır.


Laboratuvar Ortamı

                    Internet (Simülasyon)

                           |

                    Kali Linux

                 192.168.100.20

                           |

                 -------------------

                 |                 |

          Pardus 25 Firewall    Ubuntu Server

          192.168.100.10       192.168.100.30

SENARYO 1

SSH Brute Force Saldırısı

Amaç

SSH servisine yönelik yoğun parola denemelerinin firewall tarafından nasıl algılandığını incelemek.


Hedef Sistem

Ubuntu Server

SSH Portu

22/TCP


Normal Trafik

SSH

↓

Kimlik Doğrulama

↓

Başarılı

Saldırı Akışı

Kali

↓

SSH

↓

1000 parola denemesi

↓

Firewall

↓

Ubuntu

Firewall'da İzlenecek Noktalar

  • Rate Limiting

  • Counter

  • Log

  • Dynamic Set

  • Fail2ban entegrasyonu


Beklenen journalctl Çıktısı

SSH ATTACK:
SRC=192.168.100.20
PROTO=TCP
DPT=22

Olay Müdahalesi

  1. Kaynak IP belirlenir.

  2. Loglar doğrulanır.

  3. Aynı IP'nin tekrar eden denemeleri incelenir.

  4. IP geçici olarak kara listeye alınır.

  5. SSH anahtar tabanlı kimlik doğrulama gözden geçirilir.


SENARYO 2

Port Taraması (Reconnaissance)

Amaç

Bir saldırganın sistemde hangi servislerin açık olduğunu öğrenmeye çalışmasını analiz etmek.


Saldırı Akışı

Kali

↓

22

↓

80

↓

443

↓

3306

↓

5432

↓

8080

Firewall Davranışı

  • Açık portlar

  • Kapalı portlar

  • DROP edilen paketler

  • Sayaç artışı

  • Log kayıtları


Analiz

İncelenecek sorular:

  • Aynı IP kaç porta erişmeye çalıştı?

  • İstekler hangi zaman aralığında geldi?

  • Olağan dışı bağlantı hızı var mı?


SENARYO 3

SYN Flood

Amaç

TCP bağlantı kuyruğunun nasıl etkilendiğini gözlemlemek.


Normal TCP

SYN

↓

SYN ACK

↓

ACK

Saldırı

SYN

SYN

SYN

SYN

SYN

ACK gönderilmez.


Firewall Analizi

İncelenecekler:

  • Yeni bağlantı sayısı

  • ct state

  • Rate limit

  • CPU yükü

  • Paket sayaçları


SENARYO 4

ICMP Flood

Amaç

Yoğun ping trafiğinin firewall üzerindeki etkisini gözlemlemek.


Analiz

İzlenecek değerler

  • Ping sayısı

  • Rate limit

  • CPU

  • Ağ kullanımı

  • Log yoğunluğu


SENARYO 5

HTTP Enumeration

Amaç

Web sunucusuna yönelik yoğun bilgi toplama girişimlerini incelemek.


Tipik İstekler

/

↓

/robots.txt

↓

/admin

↓

/backup

↓

/login

↓

/phpinfo.php

Firewall Analizi

  • Aynı IP'nin istek sıklığı

  • HTTP bağlantı sayısı

  • Log kayıtları

  • Rate limiting davranışı


SENARYO 6

Web Dizini Taraması

Amaç

Yaygın dizin ve dosya isimlerinin yoğun şekilde denenmesini gözlemlemek.


Beklenen Davranış

Firewall:

  • Bağlantı sayısını kaydeder.

  • Aşırı yeni bağlantıları sınırlar.

  • Gerekirse dinamik kümeye ekleme yapılmasını sağlar.


SENARYO 7

DNS Servisine Yetkisiz Erişim

Amaç

DNS sunucusuna dış ağdan yapılan yetkisiz erişim denemelerini analiz etmek.


Kontrol Edilecekler

  • UDP 53

  • TCP 53

  • Log kayıtları

  • DROP sayaçları


SENARYO 8

SMB Servisi Taraması

Hedef

Dosya paylaşım sunucusu


Kontrol

  • 139/TCP

  • 445/TCP

Firewall yalnızca yerel ağdan erişime izin vermelidir.


SENARYO 9

Veritabanı Sunucusuna Doğrudan Erişim

Amaç

İnternetten gelen MySQL/PostgreSQL bağlantı denemelerini incelemek.


Açık Olmaması Gereken Portlar

  • 3306

  • 5432

  • 6379

  • 27017

Bu portlara gelen yeni bağlantılar kaydedilip reddedilmelidir.


SENARYO 10

Rogue IPv6 Router Advertisement

Amaç

IPv6 ağlarında sahte yönlendirici duyurularının etkisini anlamak.


İncelenecekler

  • Router Advertisement

  • Neighbor Discovery

  • IPv6 logları

  • ICMPv6 trafiği


SENARYO 11

VPN Servisine Yetkisiz Erişim

İncelenecekler

  • WireGuard

  • OpenVPN

  • IPsec

Firewall:

  • Yönetim ağı

  • VPN istemcileri

  • Yetkisiz IP'ler

arasında ayrım yapmalıdır.


SENARYO 12

Docker Container Kaçış Denemesi

Analiz

  • Bridge ağı

  • NAT

  • Container IP'leri

  • Host erişimleri


SENARYO 13

Log Analizi

İncelenecek araçlar

  • journalctl

  • nft monitor

  • nft list ruleset

  • Counter

  • nftrace


SENARYO 14

Fail2ban Entegrasyonu

Akış

Başarısız SSH

↓

Fail2ban

↓

Dynamic Set

↓

DROP

İncelenecekler

  • Yasaklanan IP

  • Engelleme süresi

  • Log kayıtları


SENARYO 15

Tam Ölçekli Siber Saldırı

Aşama 1

Keşif

Port Scan

Aşama 2

SSH Denemeleri


Aşama 3

HTTP Taraması


Aşama 4

Yoğun ICMP


Aşama 5

Yoğun TCP


Firewall Analizi

Her aşamada;

  • Hangi kurallar çalıştı?

  • Hangi sayaç arttı?

  • Hangi log oluştu?

  • Hangi IP engellendi?

  • Hangi servis etkilendi?

tek tek analiz edilir.


Olay Müdahale Kontrol Listesi

Bir saldırı tespit edildiğinde aşağıdaki adımlar izlenebilir:

  1. Olayın başlangıç zamanı belirlenir.

  2. Kaynak IP adresleri tespit edilir.

  3. Hedef servis belirlenir.

  4. Firewall logları incelenir.

  5. Dinamik set ve kara listeler kontrol edilir.

  6. Gerekirse geçici erişim engellemesi uygulanır.

  7. Etkilenen sistemlerde ek inceleme yapılır.

  8. Olay raporu hazırlanır.


Olay Raporu Şablonu

AlanAçıklama
Olay Tarihi
Olay Saati
Kaynak IP
Hedef Sunucu
Hedef Servis
Tespit Yöntemi
Firewall Logları
Alınan Önlemler
Sonuç
İyileştirme Önerileri

Bölüm Özeti

Bu bölümde;

  • SSH kaba kuvvet saldırıları,

  • Port taramaları,

  • SYN Flood ve ICMP Flood,

  • HTTP bilgi toplama girişimleri,

  • SMB ve veritabanı servislerine yönelik yetkisiz erişim denemeleri,

  • IPv6 Router Advertisement tehditleri,

  • VPN ve konteyner ağlarına yönelik senaryolar,

  • Firewall log analizi,

  • Olay müdahalesi ve raporlama süreçleri

uygulamalı olarak ele alındı.

Bu laboratuvarlar, Pardus 25 üzerinde çalışan nftables güvenlik duvarının gerçek dünyadaki tehditlere karşı nasıl yapılandırılacağını ve güvenlik olaylarının nasıl analiz edileceğini öğrenmek için kapsamlı bir uygulama rehberi niteliğindedir.


Bence bu kitabı profesyonel seviyeye taşıyacak en önemli eklerden biri bu olacaktır. Özellikle Pardus 25, nftables, MITRE ATT&CK, SOC ve Blue Team bakış açısını bir araya getiren Türkçe kaynak sayısı oldukça az.

Aşağıdaki bölüm, kitabın sonuna "Ek Bölüm: Blue Team Laboratuvarları" olarak eklenebilir.


EK BÖLÜM

MITRE ATT&CK Tabanlı Blue Team Laboratuvarları

Pardus 25 + nftables + SOC Analizi


Amaç

Bu laboratuvarlarda amaç saldırı yapmak değildir.

Amaç;

  • saldırıyı tanımak,

  • firewall üzerinde görmek,

  • logları analiz etmek,

  • IOC (Indicator of Compromise) çıkarmak,

  • olay müdahalesi yapmak,

  • firewall kurallarını geliştirmektir.

Her laboratuvar aşağıdaki yapıda hazırlanacaktır.

MITRE ATT&CK Tekniği

↓

Senaryo

↓

Saldırı Belirtileri

↓

Firewall Analizi

↓

SOC Analizi

↓

IOC

↓

Müdahale

↓

İyileştirme

LAB BT-01

Active Scanning

MITRE

T1595

Amaç

Saldırgan

ağdaki açık servisleri keşfetmeye çalışıyor.

22

80

443

3306

5432

8080

Firewall

DROP

LOG

COUNTER

incele.

SOC

  • Kaynak IP

  • Tarama süresi

  • Taranan port sayısı

raporla.


LAB BT-02

Network Service Discovery

MITRE

T1046

İncelenecek

  • SYN paketleri

  • FIN Scan

  • NULL Scan

  • Xmas Scan

Firewall

hangi paketleri

nasıl görüyor?


LAB BT-03

SSH Brute Force

MITRE

T1110

İncele

  • Log

  • Rate Limit

  • Dynamic Set

  • Fail2ban

IOC

100 başarısız oturum

↓

1 IP

LAB BT-04

Password Spraying

MITRE

T1110.003

Bu kez

aynı parola

100 kullanıcı.

Firewall

görebiliyor mu?

SOC

nasıl anlayabilir?


LAB BT-05

Valid Accounts

MITRE

T1078

Bu saldırıda

parola doğrudur.

Firewall

neden durduramaz?

Bunun cevabı

kitabın en önemli güvenlik derslerinden biridir.

Firewall

Kimlik doğrulama yapmaz.


LAB BT-06

Web Enumeration

MITRE

T1595.002
/admin

/login

/phpmyadmin

/config

/backup

Firewall

Rate Limit

Log

Counter

analizi.


LAB BT-07

Exploit Public Facing Application

MITRE

T1190

Firewall

tek başına yeterli mi?

Hayır.

Neden?

WAF gerekir mi?

Reverse Proxy gerekir mi?


LAB BT-08

Data Exfiltration

MITRE

T1041

Sunucu

çok büyük veri göndermeye başladı.

Firewall

Output Chain

nasıl izlenebilir?


LAB BT-09

Command and Control

MITRE

T1071

Sunucu

şüpheli IP'lere

HTTPS bağlantısı açıyor.

Output Chain

inceleniyor.


LAB BT-10

Lateral Movement

MITRE

T1021

Bir istemci

başka sunuculara

SSH deniyor.

Firewall

segmentasyonu

çalışıyor mu?


LAB BT-11

SMB Yayılımı

MITRE

T1021.002

Samba

yalnızca

Server VLAN

erişebilsin.


LAB BT-12

Rogue DHCP

MITRE

T1557

Firewall

neden çözemez?

Switch

DHCP Snooping

gerekir.


LAB BT-13

Rogue Router Advertisement

MITRE

T1557

IPv6

RA

inceleniyor.


LAB BT-14

DNS Tunneling

MITRE

T1071.004

Firewall

UDP 53

trafiğini

nasıl analiz eder?


LAB BT-15

ICMP Tunneling

MITRE

T1095

Ping

ile

veri kaçırılıyor.

Firewall

Rate Limit

yeterli mi?


LAB BT-16

Reverse Shell

MITRE

T1059

Sunucu

beklenmeyen

TCP bağlantısı açıyor.

Output Chain

inceleniyor.


LAB BT-17

Botnet Trafiği

MITRE

T1584

Bir makine

100 farklı IP

ile konuşuyor.

IOC üret.


LAB BT-18

DDoS

MITRE

T1498

Firewall

CPU

Counter

Log

incele.


LAB BT-19

Container Escape

MITRE

T1611

Docker

Host

Firewall

analizi.


LAB BT-20

Insider Threat

MITRE

T1078

İç ağdaki kullanıcı

yasaklı sunucuya erişmeye çalışıyor.

Firewall

Log

SOC Alarmı


Her Laboratuvarda Bulunacak Bölümler

1 Senaryo

2 MITRE Tekniği

3 Ağ Topolojisi

4 Kullanılan Sistemler

5 Firewall Yapısı

6 Beklenen Trafik

7 Şüpheli Trafik

8 IOC

9 Firewall Analizi

10 journalctl Analizi

11 nft Monitor

12 Counter

13 Log Analizi

14 Olay Müdahalesi

15 İyileştirme

16 SOC Alarmı

17 Raporlama

SOC Analisti İçin Kontrol Listesi

Her olay sonunda analist şu soruları cevaplamalıdır:

SoruAçıklama
İlk anormal aktivite ne zaman başladı?Olay zaman çizelgesi
Kaynak IP adresleri hangileri?İç ve dış istemciler
Hangi servis hedef alındı?SSH, HTTP, SMB vb.
Hangi nftables kuralı eşleşti?İlgili zincir ve kural
Loglarda tekrar eden desen var mı?Brute force, tarama, flood
Hangi IOC'ler elde edildi?IP, port, zaman, kullanıcı, protokol
Etki alanı nedir?Tek sunucu mu, tüm ağ mı?
Hangi karşı önlemler uygulandı?Rate limit, set, engelleme
Olay tamamen sona erdi mi?Doğrulama ve izleme

MITRE ATT&CK Eşleştirme Tablosu

LaboratuvarMITRE TekniğiAna Amaç
BT-01T1595Active Scanning
BT-02T1046Network Service Discovery
BT-03T1110Brute Force
BT-04T1110.003Password Spraying
BT-05T1078Valid Accounts
BT-06T1595.002Web Enumeration
BT-07T1190Public-Facing Application Exploitation
BT-08T1041Data Exfiltration
BT-09T1071Command and Control
BT-10T1021Remote Services
BT-11T1021.002SMB/Windows Admin Shares
BT-12T1557Rogue DHCP / Adversary-in-the-Middle (ilişkili senaryo)
BT-13T1557Rogue Router Advertisement (ilişkili senaryo)
BT-14T1071.004DNS Protocol
BT-15T1095Non-Application Layer Protocol
BT-16T1059Command and Scripting Interpreter
BT-17T1584Botnet Altyapısı Senaryosu
BT-18T1498Network Denial of Service
BT-19T1611Escape to Host
BT-20T1078Insider Threat / Valid Accounts

Not: MITRE ATT&CK zaman içinde güncellenebilir. Kitabın yayımlanmasından önce teknik kimliklerinin güncel ATT&CK sürümüyle doğrulanması önerilir.

Kitabı Profesyonel Seviyeye Taşıyacak Son Üç Ek Bölüm

Bu iki ekten sonra kitabı gerçekten referans eser seviyesine çıkaracak üç bölüm daha öneririm:

  1. Pardus 25 Sunucularını Güvenlik Açısından Sıkılaştırma (Hardening) Kontrol Rehberi
    CIS Benchmark, SSH, sysctl, AppArmor, systemd, auditd, çekirdek (kernel) ayarları ve nftables'i tek bir güvenlik standardında birleştiren kapsamlı bir rehber.

  2. Gerçek Bir SOC'da nftables Log Analizi ve Olay Müdahalesi
    Wazuh, Graylog veya ELK Stack üzerinde dashboard oluşturma, korelasyon kuralları, uyarı üretimi ve adli analiz süreçleri.

  3. 100 Senaryoluk nftables Komut ve Çözüm Rehberi (Cheat Sheet + Cookbook)
    Günlük yönetimde en sık karşılaşılan problemlere yönelik kısa, uygulanabilir çözümler. Örneğin:

    • Belirli bir IP'yi 1 saat engelleme

    • Belirli ülke IP bloklarını filtreleme

    • SSH'yi sadece VPN kullanıcılarına açma

    • Docker ile çakışan kuralları yönetme

    • IPv6 ICMPv6 kurallarını güvenli şekilde yapılandırma

    • Dinamik set temizleme ve izleme

    • NAT ve port yönlendirme sorunlarını giderme

Bu eklerle birlikte eseriniz, eğitim makalesi olmanın ötesine geçerek sistem yöneticileri, siber güvenlik uzmanları ve eğitim kurumları tarafından başvuru kaynağı olarak kullanılabilecek kapsamlı bir nftables ve Pardus 25 güvenlik el kitabı niteliğine ulaşacaktır.


Bu kesinlikle eklenmesi gereken bir bölüm. Özellikle Pardus 25 kullanan kurumlar (MEB okulları, kamu kurumları, üniversiteler ve KOBİ'ler) için VPN artık isteğe bağlı değil, temel bir güvenlik bileşenidir. Üstelik WireGuard ve OpenVPN'i sadece kurmak yeterli değildir; bunların nftables ile güvenli şekilde entegre edilmesi gerekir.

Ben bu bölümü yalnızca VPN kurulumu olarak değil, "VPN Güvenlik Mimarisi ve Firewall Politikaları" olarak hazırlardım.


EK BÖLÜM

WireGuard ve OpenVPN Güvenlik Politikaları

Pardus 25 + nftables ile Güvenli VPN Altyapısı


Bölümün Hedefleri

Bu bölümün sonunda;

  • VPN güvenlik mimarisini

  • WireGuard ve OpenVPN farklarını

  • VPN'e özel nftables kurallarını

  • VPN kullanıcı segmentasyonunu

  • VPN istemci izolasyonunu

  • Split Tunnel ve Full Tunnel yapılarını

  • MFA (Çok Faktörlü Kimlik Doğrulama) entegrasyonunu

  • VPN log analizi ve olay müdahalesini

  • Gerçek kurumsal VPN senaryolarını

öğreneceksiniz.


VPN Neden Gereklidir?

İnternete doğrudan SSH, RDP veya yönetim arayüzlerini açmak ciddi bir güvenlik riskidir.

          İnternet
              │
      SSH 22 Açık ❌
              │
          Sunucu

Daha güvenli yaklaşım:

        İnternet
            │
      WireGuard VPN
            │
      Kimliği Doğrulanmış
         VPN Kullanıcısı
            │
         SSH Sunucusu

Temel ilke: Yönetim servisleri yalnızca VPN üzerinden erişilebilir olmalıdır.


WireGuard ve OpenVPN Karşılaştırması

ÖzellikWireGuardOpenVPN
PerformansÇok yüksekOrta
Kod tabanıKüçük (~4.000 satır kernel modülü)Çok büyük
ProtokolUDPUDP/TCP
ŞifrelemeModern ve sabit algoritmalarEsnek yapı
YapılandırmaBasitDaha ayrıntılı
PerformansÇok iyiİyi
Mobil destekÇok iyiÇok iyi
Kurumsal kullanımYaygınÇok yaygın

Kurumsal VPN Mimarisi

                    İnternet
                        │
                203.0.113.10
                        │
                 Pardus 25 Gateway
              nftables + WireGuard
                        │
        ┌───────────────┼───────────────┐
        │               │               │
   Yönetim Ağı       Sunucu Ağı       DMZ
 192.168.1.0/24    192.168.10.0/24 192.168.20.0/24
                        │
              VPN İstemcileri
                10.100.0.0/24

Güvenlik İlkesi 1

Yönetim Erişimi Sadece VPN'den

Yanlış yaklaşım:

İnternet
    │
SSH (22)
    │
Sunucu

Doğru yaklaşım:

İnternet
    │
WireGuard
    │
10.100.0.0/24
    │
SSH

Örnek nftables kuralı:

ip saddr 10.100.0.0/24 tcp dport 22 accept
tcp dport 22 drop

Güvenlik İlkesi 2

VPN Kullanıcılarını Segmentlere Ayırma

Her VPN kullanıcısı aynı yetkilere sahip olmamalıdır.

Kullanıcı GrubuYetki
Sistem YöneticisiTüm sunucular
Ağ YöneticisiAğ cihazları
Yazılım EkibiUygulama sunucuları
Destek PersoneliBelirli istemciler
MisafirSadece internet

Güvenlik İlkesi 3

Least Privilege

VPN bağlantısı kuruldu diye tüm ağa erişim verilmemelidir.

Örnek:

VPN Kullanıcısı

↓

Web Sunucusu

✓

↓

Veritabanı

✗

Split Tunnel

Yalnızca kurumsal trafik VPN üzerinden geçer.

İnternet Trafiği ─────────► ISP

Kurumsal Trafik ─────────► VPN

Avantajları:

  • Daha az bant genişliği kullanımı

  • Daha düşük gecikme

Dezavantajı:

  • Kullanıcının yerel ağı güvenli değilse risk oluşturabilir.


Full Tunnel

Tüm trafik VPN üzerinden geçer.

İstemci

↓

VPN

↓

İnternet

Avantajları:

  • Merkezi güvenlik denetimi

  • Web filtreleme

  • Loglama

  • DLP uygulanabilir


VPN İstemci İzolasyonu

Varsayılan olarak VPN istemcilerinin birbirine erişmesi önerilmez.

VPN Client 1  ✗  VPN Client 2

Bu, istemciler arası yatay hareket (Lateral Movement) riskini azaltır.


Çok Faktörlü Kimlik Doğrulama (MFA)

Parola veya anahtar tek başına yeterli değildir.

Önerilen ikinci faktörler:

  • TOTP (Authenticator uygulamaları)

  • Donanım anahtarı (FIDO2/U2F)

  • Akıllı kart

  • Sertifika tabanlı doğrulama


VPN Loglama

İzlenmesi gereken olaylar:

  • Başarılı bağlantılar

  • Başarısız kimlik doğrulamalar

  • Uzun süre açık oturumlar

  • Aynı kullanıcıyla eşzamanlı bağlantılar

  • Olağan dışı veri transferi

Bu loglar merkezi SIEM altyapısına gönderilmelidir.


nftables ile VPN Koruması

Korunması gereken servisler:

  • WireGuard UDP portu (varsayılan 51820)

  • OpenVPN UDP/TCP portu (kuruluma göre değişebilir)

  • SSH

  • Yönetim panelleri

Kurallar:

  • ct state established,related accept

  • ct state invalid drop

  • VPN portuna yalnızca gerekli protokollere izin

  • Yönetim servislerine yalnızca VPN ağından erişim


Rate Limiting

VPN uç noktasına yönelik yoğun istekleri sınırlamak için yeni bağlantılara hız sınırı uygulanabilir.

Örnek politika:

  • Aynı IP'den saniyede belirli sayıda yeni bağlantıya izin ver.

  • Aşan bağlantıları logla ve reddet.


Dinamik Kara Liste

Tekrarlayan başarısız bağlantılar tespit edildiğinde:

Başarısız Denemeler

↓

Dinamik Set

↓

Geçici Engelleme

↓

Süre Dolunca Otomatik Çıkış

Bu mekanizma Fail2ban ile birlikte kullanılabilir.


VPN Sunucusu İçin Güvenlik Kontrol Listesi

  • SSH yalnızca VPN ağından erişilebilir.

  • Root ile doğrudan giriş kapalı.

  • Anahtar tabanlı kimlik doğrulama etkin.

  • MFA uygulanıyor.

  • Gereksiz portlar kapalı.

  • IPv6 politikaları tanımlı.

  • Loglar merkezi sisteme aktarılıyor.

  • Dinamik kara liste kullanılıyor.

  • Düzenli yedek alınıyor.

  • Yapılandırmalar sürüm kontrolünde tutuluyor.


Gerçek Kurumsal Senaryo

Bir okul veya kurumun yapısı:

  • Yönetim Ağı: 192.168.1.0/24

  • Sunucu Ağı: 192.168.10.0/24

  • Öğrenci Ağı: 192.168.20.0/24

  • VPN Ağı: 10.100.0.0/24

Politika:

  • Sistem yöneticileri VPN üzerinden tüm sunuculara SSH ile erişebilir.

  • Destek personeli yalnızca belirli istemcilere erişebilir.

  • Öğrenci ağına VPN üzerinden erişim yoktur.

  • Veritabanı sunucuları yalnızca uygulama sunucularından bağlantı kabul eder.

  • Tüm VPN bağlantıları loglanır ve SIEM'e gönderilir.


En Sık Yapılan Hatalar

HataSonuç
SSH'yi internete açık bırakmakBrute force ve parola denemeleri
VPN kullanıcılarına tüm ağı açmakYetki aşımı ve yatay hareket
MFA kullanmamakHesap ele geçirilme riski
VPN istemcilerini izole etmemekBir istemcinin ele geçirilmesi diğerlerini etkileyebilir
VPN loglarını izlememekOlayların geç fark edilmesi
IPv6 VPN trafiğini göz ardı etmekGüvenlik politikalarının atlatılması

Bölüm Özeti

Bu bölümde WireGuard ve OpenVPN'in yalnızca kurulumu değil, kurumsal ölçekte güvenli kullanımı ele alındı. nftables ile doğru tasarlanmış bir VPN güvenlik politikası sayesinde:

  • Yönetim servisleri internete açılmadan güvenle erişilebilir.

  • Ağ segmentasyonu korunur.

  • Yetkisiz erişim riski azaltılır.

  • Olaylar merkezi olarak izlenebilir.

  • Kurumun uzaktan erişim altyapısı güvenlik ilkeleriyle uyumlu hâle gelir.

Not: Kitabın uygulamalı değerini artırmak için bu teorik bölümün ardından "WireGuard Laboratuvarı (10 Senaryo)" ve "OpenVPN Laboratuvarı (10 Senaryo)" eklenmesi çok faydalı olacaktır. Bu laboratuvarlarda kurulum, istemci yapılandırması, nftables entegrasyonu, hata analizi ve saldırı simülasyonları adım adım uygulanabilir.


Kesinlikle eklenmeli. Hatta ben bunu kitapta ayrı iki ek bölüm olarak hazırlardım. Böylece okuyucu yalnızca VPN kurmayı değil, kurumsal ölçekte güvenli VPN altyapısı kurmayı, test etmeyi ve saldırılara karşı analiz yapmayı öğrenir.


EK BÖLÜM A

WireGuard Laboratuvarı (10 Uygulamalı Senaryo)

Pardus 25 + nftables + WireGuard

Amaç: WireGuard VPN'in sıfırdan kurulması, nftables ile güvenli şekilde entegre edilmesi, kurumsal güvenlik politikalarının uygulanması ve saldırı senaryolarının analiz edilmesi.


Laboratuvar Topolojisi

                         İnternet
                              │
                     203.0.113.10
                              │
                  Pardus 25 VPN Gateway
             nftables + WireGuard Server
                LAN: 192.168.10.1
                VPN: 10.100.0.1
                              │
          ┌───────────────────┴───────────────────┐
          │                                       │
     Ubuntu Server                          Windows 11
    192.168.10.20                         192.168.10.30

                VPN İstemcileri
       Laptop (10.100.0.2)
       Telefon (10.100.0.3)

LAB WG-01

WireGuard Kurulumu

Amaç

WireGuard sunucusunu kurmak.

Yapılacaklar

  • WireGuard paketlerini kur.

  • Anahtar çifti oluştur.

  • Sunucu yapılandırmasını hazırla.

  • Servisi başlat.

  • Bağlantıyı doğrula.

Kontrol

  • Servis çalışıyor mu?

  • VPN arayüzü (wg0) oluştu mu?

  • IP adresi atandı mı?


LAB WG-02

İlk VPN Bağlantısı

Amaç

Bir istemciyi VPN'e bağlamak.

Testler

  • Sunucuya ping.

  • SSH bağlantısı.

  • DNS çözümlemesi.

  • Trafik şifreleniyor mu?


LAB WG-03

nftables Entegrasyonu

Amaç

VPN arayüzü için güvenlik politikaları oluşturmak.

Yapılacaklar

  • wg0 arayüzünü tanımla.

  • Yalnızca VPN ağından SSH erişimine izin ver.

  • Yönetim portlarını internete kapat.

Beklenen Sonuç

  • VPN istemcisi SSH ile bağlanabilir.

  • İnternetten doğrudan SSH erişimi engellenir.


LAB WG-04

Split Tunnel

Amaç

Yalnızca kurumsal ağ trafiğini VPN üzerinden geçirmek.

Test

  • İnternet trafiği doğrudan ISS üzerinden çıkar.

  • Kurumsal IP'lere erişim VPN üzerinden gerçekleşir.


LAB WG-05

Full Tunnel

Amaç

Tüm istemci trafiğini VPN üzerinden geçirmek.

Test

  • İnternet erişimi VPN üzerinden sağlanır.

  • Kaynak IP'nin VPN sunucusu olduğu doğrulanır.


LAB WG-06

Kullanıcı Segmentasyonu

Amaç

Farklı kullanıcı gruplarına farklı erişim hakları vermek.

Örnek

KullanıcıErişim
Sistem YöneticisiTüm sunucular
Destekİstemciler
YazılımWeb sunucuları
MisafirSadece internet

Test

Her kullanıcı yalnızca yetkili olduğu kaynaklara erişebilmelidir.


LAB WG-07

VPN Güvenlik Testi

Amaç

Yanlış yapılandırmaları tespit etmek.

Kontrol Listesi

  • SSH internete açık mı?

  • Yönetim paneli korunuyor mu?

  • Gereksiz portlar açık mı?

  • IPv6 kuralları tanımlı mı?


LAB WG-08

Brute Force Analizi

Senaryo

VPN uç noktasına yoğun bağlantı denemeleri.

İnceleme

  • journalctl

  • nft monitor

  • Sayaçlar

  • Rate limit

  • Fail2ban


LAB WG-09

Fail2ban Entegrasyonu

Amaç

Şüpheli istemcileri otomatik engellemek.

Akış

Başarısız Bağlantı

↓

Fail2ban

↓

Dynamic Set

↓

DROP

Kontrol

  • IP engellendi mi?

  • Süre sonunda kaldırıldı mı?


LAB WG-10

Kurumsal WireGuard Projesi

Senaryo

Bir kurum için VPN altyapısı kurun.

Gereksinimler:

  • Yönetim ağı

  • Sunucu ağı

  • Öğrenci ağı

  • DMZ

  • Split Tunnel

  • IPv6

  • nftables

  • Merkezi loglama

  • Dinamik kara liste

  • Fail2ban

  • Yedekleme

Teslim

  • Ağ diyagramı

  • WireGuard yapılandırması

  • nftables kuralları

  • Güvenlik raporu


EK BÖLÜM B

OpenVPN Laboratuvarı (10 Uygulamalı Senaryo)

Pardus 25 + nftables + OpenVPN

Amaç: OpenVPN altyapısını sertifika tabanlı güvenli kimlik doğrulama ile kurmak ve nftables politikalarıyla kurumsal seviyede korumak.


Laboratuvar Topolojisi

WireGuard laboratuvarındaki yapı kullanılabilir.


LAB OVPN-01

OpenVPN Kurulumu

Yapılacaklar

  • OpenVPN kurulumu

  • PKI altyapısı

  • CA oluşturma

  • Sunucu sertifikası

  • İstemci sertifikası

  • Servisi başlatma


LAB OVPN-02

İlk VPN Bağlantısı

Test

  • Sertifika doğrulaması

  • IP ataması

  • Ping

  • SSH


LAB OVPN-03

Sertifika Yönetimi

Amaç

  • Yeni kullanıcı oluşturma

  • Sertifika iptali (CRL)

  • Süresi dolan sertifikaların yönetimi

Test

İptal edilen sertifika ile bağlantı kurulamaz.


LAB OVPN-04

nftables Entegrasyonu

Amaç

VPN istemcilerini filtrelemek.

Politika

  • SSH yalnızca VPN ağına açık.

  • Yönetim servisleri korunuyor.

  • Gereksiz portlar kapalı.


LAB OVPN-05

Kullanıcı Grupları

Örnek

GrupYetki
AdminTüm ağ
Destekİstemciler
YazılımWeb sunucuları
Misafirİnternet

LAB OVPN-06

Full Tunnel / Split Tunnel

Karşılaştırma

  • Bant genişliği

  • Güvenlik

  • Performans

  • Kullanıcı deneyimi


LAB OVPN-07

TLS Güvenliği

İnceleme

  • TLS sürümü

  • Şifreleme algoritmaları

  • Sertifika zinciri

  • Güvenli yapılandırma


LAB OVPN-08

Saldırı Analizi

Senaryo

  • Yetkisiz bağlantı denemesi

  • Geçersiz sertifika

  • Port taraması

  • Brute force

İnceleme

  • Loglar

  • Firewall

  • Fail2ban


LAB OVPN-09

SIEM Entegrasyonu

Amaç

OpenVPN loglarını merkezi sisteme göndermek.

Analiz

  • Başarılı bağlantılar

  • Başarısız denemeler

  • Olağan dışı oturum süreleri

  • Aynı kullanıcıyla çoklu bağlantılar


LAB OVPN-10

Kurumsal OpenVPN Projesi

Senaryo

Bir üniversite için uzaktan erişim altyapısı hazırlayın.

Gereksinimler:

  • PKI

  • MFA

  • Split Tunnel

  • IPv6

  • nftables

  • Merkezi loglama

  • SIEM

  • Sertifika iptali

  • Fail2ban

  • Yedekleme

Teslim

  • Ağ diyagramı

  • PKI yapısı

  • OpenVPN yapılandırması

  • nftables kuralları

  • Risk analizi

  • Güvenlik raporu


Her Laboratuvar İçin Standart Şablon

Her senaryo aşağıdaki bölümleri içermelidir:

BölümAçıklama
AmaçLaboratuvarın hedefi
Ön KoşullarGerekli sistemler ve yazılımlar
Ağ TopolojisiDiyagram ve IP planı
YapılandırmaAdım adım kurulum
Test SenaryosuBeklenen davranış
Doğrulamawg, systemctl, journalctl, nft, ip, ss çıktıları
Güvenlik AnaliziOlası riskler
Olay MüdahalesiSorun çözme adımları
En İyi UygulamalarKurumsal öneriler
SonuçLaboratuvar özeti


Bence bu kitap için en değerli ek bölümlerden biri "Komut Referansı (Cheat Sheet)" olacaktır. Ancak bunu klasik bir komut listesi yerine "Sistem Yöneticileri ve Siber Güvenlik Uzmanları İçin nftables Cookbook" formatında hazırlamak çok daha faydalı olur.

Bu bölüm yaklaşık 100-150 sayfa olabilir ve günlük hayatta en çok ihtiyaç duyulan işlemleri tek sayfada çözen bir başvuru kaynağı niteliği taşır.


EK BÖLÜM

nftables Komut Referansı (Cheat Sheet)

Pardus 25 Sistem Yöneticileri ve Siber Güvenlik Uzmanları İçin Hızlı Başvuru Rehberi


İçindekiler

  1. Temel Komutlar

  2. Servis Yönetimi

  3. Kuralları Görüntüleme

  4. Tablo Yönetimi

  5. Zincir (Chain) Yönetimi

  6. Kural Yönetimi

  7. Set Yönetimi

  8. Map Yönetimi

  9. Connection Tracking

  10. NAT

  11. Port Forwarding

  12. Masquerade

  13. IPv6

  14. Loglama

  15. Rate Limiting

  16. Dynamic Set

  17. Sayaçlar (Counters)

  18. Performans

  19. Hata Ayıklama

  20. Acil Durum Kurtarma


1. Servis Yönetimi

Servisi başlat

sudo systemctl start nftables

Servisi durdur

sudo systemctl stop nftables

Yeniden başlat

sudo systemctl restart nftables

Durumu göster

sudo systemctl status nftables

Otomatik başlat

sudo systemctl enable nftables

2. Ruleset

Kuralları göster

sudo nft list ruleset

Kuralları dosyaya kaydet

sudo nft list ruleset > backup.nft

Dosyadan yükle

sudo nft -f backup.nft

3. Tablo İşlemleri

Tablo oluştur

sudo nft add table inet filter

Tablo sil

sudo nft delete table inet filter

Tabloları listele

sudo nft list tables

4. Chain İşlemleri

Chain oluştur

sudo nft add chain inet filter input \
'{ type filter hook input priority 0; policy drop; }'

Chain sil

sudo nft delete chain inet filter input

5. INPUT Kuralları

SSH

tcp dport 22 accept

HTTP

tcp dport 80 accept

HTTPS

tcp dport 443 accept

DNS

udp dport 53 accept

6. Loopback

iif lo accept

7. Connection Tracking

Established

ct state established accept

Established + Related

ct state established,related accept

Invalid

ct state invalid drop

New

ct state new

8. IP Filtreleme

Tek IP

ip saddr 192.168.1.10 accept

Alt ağ

ip saddr 192.168.1.0/24 accept

Hariç tut

ip saddr != 192.168.1.0/24 drop

9. IPv6

ip6 saddr 2001:db8::/64 accept

10. Port Filtreleme

Bir port

tcp dport 22 accept

Birden fazla

tcp dport {22,80,443} accept

Port aralığı

tcp dport 1000-2000 accept

11. NAT

Masquerade

masquerade

SNAT

snat to 203.0.113.10

DNAT

dnat to 192.168.1.20

12. Port Forwarding

80

192.168.1.20

tcp dport 80 dnat to 192.168.1.20

13. Logging

log

Prefix

log prefix "SSH:"

Level

log level info

14. Counter

counter

Paket

counter packets

15. Rate Limit

SSH

limit rate 5/minute

ICMP

limit rate 10/second

16. Reject

reject

ICMP

reject with icmp type port-unreachable

17. Drop

drop

18. Accept

accept

19. Dynamic Set

Set oluştur

sudo nft add set inet filter blacklist \
'{ type ipv4_addr; timeout 1h; }'

IP ekle

sudo nft add element inet filter blacklist \
{192.168.1.100}

Göster

sudo nft list set inet filter blacklist

20. Interface

iif eth0

Çıkış

oif eth1

21. Protocol

TCP

ip protocol tcp

UDP

ip protocol udp

ICMP

ip protocol icmp

22. Monitor

Gerçek zamanlı

sudo nft monitor

Trace

sudo nft monitor trace

23. Syntax Kontrolü

sudo nft -c -f /etc/nftables.conf

24. Performans

Sayaç

counter

Set

@trusted

Map

vmap

25. Acil Durum

Firewall'u temizle

sudo nft flush ruleset

Yedeği yükle

sudo nft -f backup.nft

26. Günlük İnceleme

journalctl -u nftables

Son 100 kayıt

journalctl -u nftables -n 100

Canlı takip

journalctl -fu nftables

27. En Çok Kullanılan 20 Komut

KomutAçıklama
nft list rulesetTüm kuralları göster
nft list tablesTabloları listele
nft monitorGerçek zamanlı izleme
nft -c -f fileSözdizimi kontrolü
nft flush rulesetTüm kuralları temizle
systemctl restart nftablesServisi yeniden başlat
journalctl -u nftablesLogları göster
ss -tulnAçık portlar
ip addrIP bilgisi
ip routeYönlendirme tablosu
tcpdump -i eth0Trafik analizi
conntrack -LBağlantı tablosu
nft list setSetleri görüntüle
nft list chainZinciri göster
nft list tableTabloyu göster
nft reset countersSayaçları sıfırla
nft monitor tracePaket izleme
systemctl status nftablesServis durumu
pingAğ testi
curlHTTP testi

28. Hata Giderme Akışı

Bağlantı Sorunu
        │
        ▼
Servis Çalışıyor mu?
        │
        ▼
Port Açık mı?
        │
        ▼
nftables Kuralı Var mı?
        │
        ▼
Log Oluşuyor mu?
        │
        ▼
Counter Artıyor mu?
        │
        ▼
tcpdump ile Trafik Görülüyor mu?
        │
        ▼
Routing Doğru mu?
        │
        ▼
Sorun Giderildi

29. Günlük Yönetimde En Sık Kullanılan Senaryolar

Bu bölümün en değerli kısmı, kısa ve doğrudan uygulanabilir çözümlerden oluşan bir Cookbook olacaktır. Örneğin:

  • SSH'yi yalnızca VPN ağına açma

  • Belirli bir IP'yi 1 saat engelleme

  • Aynı IP'den gelen SSH denemelerini sınırlandırma

  • HTTP ve HTTPS dışındaki tüm portları kapatma

  • ICMP Echo Request'leri hız sınırlama

  • Belirli bir ülke IP bloğunu engelleme

  • Kara listeyi dinamik olarak güncelleme

  • Docker ile oluşan kuralları görüntüleme

  • WireGuard istemcilerine erişim kısıtlama

  • OpenVPN istemcilerini farklı ağ segmentlerine yönlendirme

  • IPv6 için güvenli ICMPv6 kuralları oluşturma

  • NAT ve Port Forwarding sorunlarını teşhis etme

  • nft monitor trace ile paketin hangi kurala takıldığını bulma

  • conntrack tablosunu temizleme ve analiz etme

  • Fail2ban ile dinamik set entegrasyonu




Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu