Giriş
Linux kernel Netfilter framework'ü paket filtreleme, NAT ve connection tracking sağlar. iptables ve nftables bu framework'ün kullanıcı alanı araçlarıdır.
Debian/Ubuntu ve RHEL 8+ nftables'a geçiş yapmaktadır; iptables hala yaygın ve nftables altında çalışabilir.
Bu rehberde temel kavramlar, kural zincirleri, stateful filtering ve üretim şablonlarını ele alıyoruz.
Netfilter Kavramları
Tablolar: filter (filtreleme), nat (adres çevirisi), mangle (paket değiştirme). Zincirler: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING.
Politika: ACCEPT, DROP, REJECT. Varsayılan politika DROP olan firewall daha güvenlidir; açıkça izin verilen trafik geçer.
sudo iptables -L -n -v
sudo nft list rulesetiptables Temel Kurallar
iptables -A INPUT -p tcp --dport 22 -j ACCEPT SSH'ı açar. -m state --state ESTABLISHED,RELATED mevcut bağlantılara izin verir (stateful).
-s 10.0.0.0/8 kaynak IP filtresi. -j DROP sessizce düşürür; REJECT ICMP hata döner.
# Temel sunucu kuralları
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPTnftables Sözdizimi
nftables tek tablo/zincir/ kural sözdizimi sunar; iptables'tan daha tutarlıdır. nft add table/filter, nft add chain, nft add rule ile kural eklenir.
Debian'da iptables-nft backend iptables komutlarını nftables'a çevirir.
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add rule inet filter input iif lo accept
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input tcp dport { 22, 80, 443 } acceptNAT ve Port Yönlendirme
MASQUERADE çıkış NAT'ıdır; iç ağın internete çıkmasını sağlar. DNAT port yönlendirme için PREROUTING zincirinde kullanılır.
Docker ve Kubernetes kendi iptables kurallarını ekler; çakışmaya dikkat edin.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.5:80Kalıcılık ve Yönetim
iptables-save > /etc/iptables/rules.v4 ile kurallar kaydedilir. netfilter-persistent paketi boot'ta yükler. ufw Ubuntu'da iptables üstü basit arayüzdür.
Kural değişikliğinden önce SSH erişimini garanti altına alın; kendinizi dışarı kilitlemeyin.
Varsayılan politika DROP + stateful ESTABLISHED,RELATED kuralı her üretim firewall'ının temelidir.
Güvenlik Kontrol Listesi
Yalnızca gerekli portları açın. SSH için fail2ban veya rate limit ekleyin. ICMP gereksizse kısıtlayın. Log DROP kuralları ile saldırı analizi yapın.
Düzenli olarak iptables -L -n -v veya nft list ruleset ile kuralları denetleyin.
- Varsayılan DROP
- Stateful filtering
- SSH koruması
- Kural kalıcılığı
- Düzenli denetim
Sonuç
iptables ve nftables Linux sunucu güvenliğinin vazgeçilmezidir. nftables yeni projelerde tercih edilmeli; mevcut iptables script'leri geçiş planıyla korunmalıdır.
Firewall kurallarını infrastructure-as-code ile yönetin ve değişiklikleri test ortamında doğrulayın.