Linux Sunucuda iptables ile Güvenlik Duvarı Kuralları Yönetimi

Linux Sunucuda iptables ile Güvenlik Duvarı Kuralları Yönetimi

iptables, Linux çekirdeğinin netfilter altyapısı üzerinde çalışan paket filtreleme aracıdır. Sunucunuza gelen ve giden tüm ağ trafiğini kontrol etmenizi sağlar. Doğru yapılandırılmış bir iptables kuralı seti, yetkisiz erişimleri engeller, brute force saldırılarını yavaşlatır ve yalnızca gerekli serv

iptables, Linux çekirdeğinin netfilter altyapısı üzerinde çalışan paket filtreleme aracıdır. Sunucunuza gelen ve giden tüm ağ trafiğini kontrol etmenizi sağlar. Doğru yapılandırılmış bir iptables kuralı seti, yetkisiz erişimleri engeller, brute force saldırılarını yavaşlatır ve yalnızca gerekli servislerin dışarıya açık olmasını garanti eder. Bu rehberde temel kurallardan rate limiting'e kadar iptables yönetimini ele alıyoruz.

iptables Temel Kavramları

iptables üç ana zincir (chain) üzerinde çalışır: INPUT (gelen trafik), OUTPUT (giden trafik) ve FORWARD (yönlendirilen trafik). Her zincirde kurallar sırayla değerlendirilir; ilk eşleşen kural uygulanır. Varsayılan politika (policy) hiçbir kural eşleşmediğinde ne yapılacağını belirler.

Zincir Yön Kullanım
INPUT Dışarıdan sunucuya SSH, HTTP, HTTPS erişim kontrolü
OUTPUT Sunucudan dışarıya DNS, güncelleme, API çağrıları
FORWARD Sunucu üzerinden geçen NAT, VPN, container ağları

Temel Güvenlik Kuralları

Aşağıdaki kural seti, bir web sunucusu için temel güvenlik yapılandırmasını oluşturur. Varsayılan politika DROP olarak ayarlanır ve yalnızca izin verilen trafik kabul edilir:

firewall.sh
#!/bin/bash
# Mevcut kurallari temizle
iptables -F
iptables -X

# Varsayilan politika: hepsini engelle
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Loopback izin ver
iptables -A INPUT -i lo -j ACCEPT

# Mevcut baglantilara izin ver
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH (port 22 veya ozel port)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP ve HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# ICMP (ping) - sinirli izin
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

⚠️ Dikkat: INPUT politikasını DROP yapmadan önce SSH kuralınızın doğru olduğundan emin olun. Yanlış yapılandırma sunucuya erişiminizi kalıcı olarak kesebilir. Uzaktan çalışıyorsanız önce bir cron job ile kuralları sıfırlayan bir script ayarlayın.

Rate Limiting ve Brute Force Koruması

SSH brute force saldırılarını iptables ile sınırlamak, Fail2Ban'a ek bir koruma katmanı sağlar:

terminal
# SSH brute force korumasi: 60 saniyede max 4 baglanti
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW \
  -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW \
  -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP

# HTTP flood korumasi: saniyede max 25 yeni baglanti
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 25 -j DROP

Kuralları kalıcı hale getirmek için iptables-persistent paketini kullanın. SSH güçlendirme hakkında detaylı bilgi için SSH Güçlendirme rehberimizi, DDoS koruması için DDoS Koruma rehberimizi inceleyebilirsiniz. Hosted Cloud bulut sunucuları ile güvenli bir altyapı oluşturabilirsiniz.

Sıkça Sorulan Sorular

iptables mi yoksa nftables mi kullanmalıyım?

nftables, iptables'ın modern halefidir ve daha iyi performans sunar. Ancak iptables hala yaygın olarak kullanılmaktadır ve çoğu rehber iptables sözdizimini kullanır. Yeni kurulumlar için nftables önerilir; mevcut sistemlerde iptables sorunsuz çalışmaya devam eder.

iptables kuralları yeniden başlatmada kaybolur mu?

Evet, iptables kuralları varsayılan olarak bellekte tutulur. iptables-persistent paketi ile kuralları kalıcı hale getirin: sudo apt install iptables-persistent ve sudo netfilter-persistent save.

Yanlış kural ile kendimi kilitlersem ne yaparım?

Uzaktan erişim kaybını önlemek için kuralları uygulamadan önce bir cron job ayarlayın: */5 * * * * /sbin/iptables -F. Bu, 5 dakikada bir kuralları sıfırlar. Doğru çalıştığından emin olduktan sonra cron job'u kaldırın.

Docker ile iptables çakışır mı?

Docker kendi iptables kurallarını ekler ve FORWARD zincirini kullanır. Docker container'larının ağ erişimini kontrol etmek için DOCKER-USER zincirini kullanın. Docker'ın iptables yönetimini devre dışı bırakmak önerilmez.

UFW ile iptables arasındaki fark nedir?

UFW (Uncomplicated Firewall), iptables üzerine kurulmuş basitleştirilmiş bir arayüzdür. Arka planda iptables kuralları oluşturur. Basit yapılandırmalar için UFW yeterlidir; gelişmiş kurallar (rate limiting, conntrack) için doğrudan iptables kullanın.

Sonuç

iptables, Linux sunucu güvenliğinin temel yapı taşıdır. Varsayılan DROP politikası ile yalnızca gerekli portları açın, rate limiting ile brute force saldırılarını yavaşlatın ve conntrack ile mevcut bağlantıları verimli yönetin. Kuralları iptables-persistent ile kalıcı hale getirmeyi ve değişiklik öncesi erişim kaybına karşı önlem almayı unutmayın.

Güvenli Sunucu Altyapısı

Hosted Cloud bulut sunucuları ile güvenlik duvarı kurallarınızı tam kontrol altında tutun.

Bulut Sunucu Planlarını İncele →
A

Ahmet Yılmaz

Kıdemli Altyapı Mühendisi

10 yılı aşkın bulut altyapısı ve DevOps deneyimiyle Hosted Cloud'un teknik ekibinde yer almaktadır. Kubernetes, Terraform ve yüksek erişilebilirlik mimarileri üzerine uzmanlaşmıştır.

Yorumlar yakında