Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

iptables ile Temel Sunucu Güvenliği: Gelen/Giden Trafik Kuralları ve DDoS Koruma Önlemleri

✖ Kapat
Duyuru
✖ Kapat
Duyuru

thedevx

Üye
Katılım
14 Mart 2026
Mesajlar
56
Merhaba arkadaşlar, bugün sizlere özellikle yeni kurduğunuz bir Linux sunucunuzda ilk yapmanız gerekenlerden biri olan, iptables ile temel güvenlik duvarı kurallarını nasıl oluşturacağınızı anlatacağım. Doğru yapılandırılmış bir güvenlik duvarı, sunucunuza izinsiz erişimleri engeller, gereksiz portları kapatır ve basit seviyeli saldırılara karşı ilk savunma hattınız olur. Benim sunucularda genelde uyguladığım, hem güvenli hem de yönetilebilir bir kural setini paylaşacağım.

🔍 iptables Nedir ve Neden Önemli?

iptables, Linux çekirdeğinde bulunan netfilter altyapısı için bir komut satırı arayüzüdür. Kaba tabirle, sunucunuza gelen ve giden tüm ağ trafiğinin polisidir. Hangi bağlantıların kabul edileceğine, hangilerinin reddedileceğine veya yönlendirileceğine bu kurallarla biz karar veririz. Varsayılan kurallar genellikle çok gevşektir, bu yüzden ilk iş onları sıkılaştırmaktır.

⚙️ Temel Politika ve Zincir Yapısı

Öncelikle, varsayılan politikalarımızı (default policy) belirleyelim. Bu, kuralımızın olmadığı durumlarda ne yapılacağını söyler. En güvenli yaklaşım, gelen (INPUT) trafiği reddet, giden (OUTPUT) ve yönlendirilen (FORWARD) trafiğe izin vermektir. Daha sonra izin vermek istediğimiz trafiği tek tek açacağız.

Bash:
# Mevcut kuralları temizle (Dikkatli olun, bağlantınız kopabilir!)
sudo iptables -F
sudo iptables -X

# Varsayılan politikaları belirle
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

🔧 Temel İzin Kurallarını Ekleyelim

Şimdi, sunucunun düzgün çalışması için gerekli asgari trafiğe izin veren kuralları yazalım. Bu kurallar, kendi makinemizden gelen (loopback) trafiği, yerleşik bağlantıları (established/related) ve SSH, HTTP/HTTPS gibi servislerimizin portlarını açar.

Bash:
# Loopback arayüzündeki tüm trafiğe izin ver
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# Yerleşik ve ilişkili bağlantıları kabul et (cevap verebilmek için)
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH bağlantılarına izin ver (Varsayılan port 22. Değiştirdiyseniz onu yazın)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Web trafiği için HTTP (80) ve HTTPS (443) portlarını aç
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# DNS sorguları için (Opsiyonel, sunucunuz DNS sunucusu ise veya DNS kullanacaksa)
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

⚠️ DDoS ve Brute-Force'a Karşı Basit Önlemler

Basit seviyeli SYN flood veya brute-force saldırılarını hafifletmek için limit koyabiliriz. Örneğin, SSH portuna saniyede 3'ten fazla yeni bağlantı gelirse, fazlasını engelleyebiliriz. Bu, saldırganın deneme yanılma hızını ciddi oranda düşürür.

Bash:
# SSH portu için bağlantı hız limiti (Brute-force koruması)
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP

# SYN paketlerine limit koymak (Basit SYN Flood hafifletme)
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP

# Ping (ICMP) flood'a karşı limit. Ping atılmasını tamamen engellemek iyi değildir.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

💾 Kuralları Kalıcı Yapmak

iptables kuralları geçici belleğe yazılır. Sunucu yeniden başlatıldığında tüm bu emekler boşa gider. Bu yüzden kuralları kalıcı hale getirmeliyiz. Dağıtımınıza göre iptables-persistent veya netfilter-persistent paketini kurabilirsiniz. Debian/Ubuntu için:

Bash:
sudo apt-get update
sudo apt-get install iptables-persistent -y

Kurulum sırasında mevcut kuralları kaydetmek isteyip istemediğinizi soracaktır. 'Evet' deyin. Veya sonradan aşağıdaki komutla manuel kaydedebilirsiniz:

Bash:
sudo netfilter-persistent save

Kurallarınız artık /etc/iptables/rules.v4 dosyasına kaydedilecek ve sistem her açılışta yüklenecektir.

✅ Kontroller ve Faydalı Komutlar

Kurallarınızı nasıl kontrol edeceğinizi ve yöneteceğinizi bilmek önemli.

Bash:
# Tüm kuralları listele (zincirler ve politikalarla birlikte)
sudo iptables -L -v -n

# Kuralları numaralarıyla birlikte listele (silme işlemi için gerekli)
sudo iptables -L -v -n --line-numbers

# Belirli bir zincirdeki kuralı silmek (Örn: INPUT zincirindeki 3 numaralı kural)
sudo iptables -D INPUT 3

# Tüm kuralları sıfırlamak (Dikkat! Varsayılan politikalara döner)
sudo iptables -F

Sonuç olarak arkadaşlar, burada anlattıklarım temel ve sağlam bir başlangıç noktası. Sunucunuzda çalışan özel servislere göre (MySQL, Redis, özel API portları) yeni kurallar eklemeyi unutmayın. Her kural eklerken iptables -L komutuyla listeyi kontrol etmeyi alışkanlık haline getirin.

Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Eklemek istediğiniz özel kurallarınız veya iptables yerine nftables veya ufw gibi araçları mı tercih ediyorsunuz? Deneyimlerinizi ve sorularınızı aşağıya yazmaktan çekinmeyin. Herkese güvenli sunucular!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri