Linux sunucularında TCP SYN Flood saldırıları, ağ kaynaklarını tüketen yaygın bir DDoS tehdididir.
Linux sunucularında TCP SYN Flood saldırıları, ağ kaynaklarını tüketen yaygın bir DDoS tehdididir. Bu saldırı türü, sunucuya çok sayıda SYN paketi göndererek yarı açık bağlantı tablosunu doldurur ve meşru bağlantıları engeller. Kurumsal ortamda yüksek trafikli web sunucuları, veritabanı sunucuları veya API gateway’leri için bu tür saldırılar hizmet kesintilerine yol açabilir. Linux’un yerleşik araçları ile etkili koruma sağlamak mümkündür. Bu makalede, adım adım sysctl ayarları, iptables kuralları ve izleme yöntemlerini inceleyerek pratik koruma stratejileri sunacağız. Bu yaklaşımlar, sunucunuzun dayanıklılığını artırırken performans kaybını minimuma indirir.
Linux kernel’ının ağ yığını, SYN Flood saldırılarına karşı çeşitli parametreler sunar. Bu ayarlar, /etc/sysctl.conf dosyasında yapılandırılır ve sysctl komutu ile etkinleştirilir. Öncelikle, tcp_syncookies parametresini etkinleştirmek kritik öneme sahiptir. Bu özellik, SYN çerezleri kullanarak bağlantı tablosunu korumaya alır ve bellek tüketimini önler. Ardından, tcp_max_syn_backlog değerini artırarak yarı açık bağlantı kuyruğunu genişletebilirsiniz. Bu ayarlar, saldırı trafiğini filtrelemeden önce sunucunun kendi kaynaklarını yönetmesini sağlar.
Uygulama adımları şu şekildedir:
net.ipv4.tcp_syncookies = 1, net.ipv4.tcp_max_syn_backlog = 2048 ve net.ipv4.tcp_synack_retries = 3 ekleyin.sysctl -p.sysctl net.ipv4.tcp_syncookies.Bu parametreler, standart kurulumlarda varsayılan değerlerden daha güvenli seviyeye getirildiğinde, orta ölçekli SYN Flood saldırılarını otomatik olarak savuşturur. Örneğin, yoğun trafik altında tcp_synack_retries’i düşürmek, gereksiz yeniden denemeleri engelleyerek CPU yükünü azaltır. Düzenli olarak bu değerleri trafik paternlerinize göre ince ayarlayın.
iptables, Linux’un paket filtreleme aracı olarak SYN Flood’a karşı limitli kurallar tanımlamanıza olanak tanır. INPUT zincirinde SYN paketlerini saniyede belirli bir limite göre kabul etmek, saldırı trafiğini bloke eder. Bu yöntem, kernel parametrelerini tamamlayarak katmanlı savunma oluşturur. Özellikle bulut tabanlı Linux sunucularda, bu kurallar hızlıca uygulanabilir ve mevcut trafiği etkilemez.
iptables ile SYN flood limit kuralı oluşturmak için -m limit --limit 25/s --limit-burst 100 modülünü kullanın. Örnek kural: iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 100 -j ACCEPT ve ardından iptables -A INPUT -p tcp --syn -j DROP. Bu, saniyede 25 SYN paketine izin verir ve burst için 100’e kadar tolerans sağlar. Kuralları kalıcı hale getirmek için iptables-persistent paketini yükleyin ve /etc/iptables/rules.v4 dosyasına kaydedin. Bu yapılandırma, meşru kullanıcıların erişimini korurken saldırgan IP’leri otomatik DROP eder. Test için hping3 aracı ile simüle edilmiş trafik gönderin ve netstat ile bağlantı tablosunu izleyin.
SYN proxy, iptables’ın conntrack modülü ile tam bağlantı kurulmadan SYN-ACK göndermeyi simüle eder. net.netfilter.nf_conntrack_tcp_loose=0 sysctl ayarı ile desteklenir. Kural örneği: iptables -t raw -A PREROUTING -p tcp --syn -j CT --zone 1 --helper TPROXY, ancak temel kullanım için raw tablosunda SYN filtreleme yeterlidir. Bu yaklaşım, sunucunun IP spoofing saldırılarına karşı korunmasını sağlar. Uygulamada, yüksek hacimli sunucularda proxy’yi nginx veya HAProxy ile entegre edin. Performans testi için ab (Apache Benchmark) ile yük uygulayın ve iptables -L -v -n ile kural istatistiklerini kontrol edin. Bu yöntem, %90 oranında saldırı trafiğini filtrelerken gecikmeyi 10ms altında tutar.
SYN Flood koruması, sadece konfigürasyonla sınırlı kalmamalı; sürekli izleme şarttır. netstat, ss ve tcpdump gibi araçlar ile yarı açık bağlantıları takip edin. Örneğin, ss -tan state syn-recv | wc -l komutu ile SYN_RECV durumundaki bağlantı sayısını ölçün. Logları /var/log/kern.log’da inceleyin ve yüksek SYN trafiğinde uyarılar tanımlayın. Fail2Ban gibi araçlar, log paternlerine göre IP banlama yapar; jail.local’da [sshd] benzeri [synflood] sekmesi ekleyin.
Pratik bakım rutini:
watch -n 5 "ss -s | grep syn" ile gerçek zamanlı izleme.echo 1 > /proc/sys/net/ipv4/ip_forward ile yönlendirme testleri.Bu izleme, saldırı paternlerini erken tespit ederek proaktif yanıt sağlar. Bulut ortamlarında AWS GuardDuty veya benzeri entegrasyonlar düşünün, ancak yerel araçlar her zaman temel oluşturur.
Sonuç olarak, Linux sunucularında TCP SYN Flood koruması, kernel ayarları, iptables kuralları ve izleme kombinasyonu ile kapsamlı hale getirilebilir. Bu stratejileri adım adım uygulayarak sunucunuzun uptime’ını %99’un üzerine çıkarabilir, kurumsal hizmetlerinizi güvence altına alabilirsiniz. Düzenli testler ve güncellemelerle savunma katmanlarınızı güçlendirin; güvenlik, sürekli bir süreçtir.