Linux sunucularda ağ güvenliğini artırmak, özellikle SYN flood gibi DoS saldırılarına karşı savunma mekanizmalarını etkinleştirmek kritik öneme sahiptir.
Linux sunucularda ağ güvenliğini artırmak, özellikle SYN flood gibi DoS saldırılarına karşı savunma mekanizmalarını etkinleştirmek kritik öneme sahiptir. TCP SYN Cookie özelliği, bağlantı tablosunu aşırı yüklenmekten koruyan bir savunma stratejisidir. Bu makalede, Linux sunucularda TCP SYN Cookie’yi adım adım nasıl aktif edeceğinizi, çalışma prensibini ve en iyi uygulamaları detaylı olarak ele alacağız. Bu işlem, sunucunuzun kaynaklarını verimli yönetmesine yardımcı olurken, yasal trafiği etkilemeden saldırıları bertaraf eder. Özellikle yüksek trafikli web sunucuları, veritabanı sunucuları veya API gateway’leri için idealdir.
TCP SYN Cookie, TCP üçlü el sıkışma sürecinde sunucunun bellek kullanımını optimize eden bir Linux kernel özelliğidir. Normalde, bir SYN paketi geldiğinde sunucu bir yarı-açık bağlantı kaydı oluşturur ve bu kayıtlar bellekte tutulur. SYN flood saldırılarında saldırgan binlerce sahte SYN paketi göndererek bu tabloyu doldurur ve meşru bağlantıları engeller. SYN Cookie ise, sunucu yanıtında (SYN-ACK) bir “cookie” değeri hesaplar; bu değer, istemcinin ACK paketiyle doğrulanır. Doğrulama başarılıysa bağlantı kurulur, başarısızsa kaynak israfı önlenir.
Bu mekanizma, kernel 2.1.102’den beri mevcuttur ve modern dağıtımlarda (Ubuntu, CentOS, Debian) varsayılan olarak desteklenir. Avantajları arasında bellek tasarrufu, saldırı toleransı ve düşük ek yük yer alır. Dezavantajı ise cookie hesaplamasının CPU’yu biraz yormasıdır, ancak bu genellikle ihmal edilebilir düzeydedir. Özellikle iptables veya nftables ile rate limiting ile birleştirildiğinde tam koruma sağlar.
SYN flood, TCP bağlantı tablosunu (syncookies etkin değilse /proc/net/tcp’ye bakın) doldurarak sunucuyu yavaşlatır veya çökertir. Saldırganlar, rastgele IP’lerden SYN paketleri gönderir ve SYN-ACK’lara yanıt vermez. Sonuçta, sunucu kaynakları (RAM ve CPU) tükenir; web siteleri erişilemez hale gelir. Gerçek hayatta, bu saldırı saniyede binlerce paket ile yapılabilir ve bulut sunucularda bile kesinti yaratır. SYN Cookie, bu tabloyu bypass ederek sunucuyu korur ve loglarda (dmesg veya /var/log/kern.log) cookie kullanımını izleyebilirsiniz.
Cookie, sunucu zamanı, kaynak IP/port, hedef IP/port ve gizli bir anahtar kullanılarak hash’lenir (genellikle MD5 veya SHA tabanlı). İstemci ACK’te bu değeri geri gönderir; kernel doğrular. Bu sayede yarı-açık bağlantı saklanmaz. Linux’ta tcp_syncookies=1 ile etkinleşir; 2 değeri otomatik modu tetikler (backlog dolunca). Detaylı inceleme için kernel belgelerine (Documentation/networking/ip-sysctl.txt) başvurun, ancak pratikte sysctl ile yönetilir.
Aktifleştirme işlemi root yetkisi gerektirir ve geçici/kalıcı olarak yapılabilir. Önce mevcut durumu kontrol edin: sysctl net.ipv4.tcp_syncookies. Değer 0 ise devre dışıdır. Geçiçi etkinleştirme için sysctl -w net.ipv4.tcp_syncookies=1 komutunu çalıştırın. Kalıcı hale getirmek için /etc/sysctl.conf dosyasını düzenleyin ve sysctl -p ile yükleyin. Bu adımlar, Debian/Ubuntu veya RHEL/CentOS’ta aynıdır.
sysctl net.ipv4.tcp_syncookies ve cat /proc/sys/net/ipv4/tcp_syncookies.sysctl -w net.ipv4.tcp_syncookies=1. Anında uygulanır.echo 'net.ipv4.tcp_syncookies=1' >> /etc/sysctl.conf, ardından sysctl -p.İlgili parametreler: net.ipv4.tcp_max_syn_backlog=2048 artırın (varsayılan 1024), net.ipv4.tcp_syncookies=2 otomatik mod için. Firewall entegrasyonu: iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT ile destekleyin. Bu kombinasyon, sunucuyu %90+ oranında korur.
tcp_syncookies=2 değeri, bağlantı kuyruğu dolana kadar normal modu kullanır, sonra cookie’ye geçer. Bu, düşük trafikli sunucularda performansı korur. Ek olarak, net.ipv4.tcp_synack_retries=2 azaltarak retry’leri sınırlayın. Uygulama örneği: Yüksek yükte nginx veya Apache sunucularda, bu ayarlar downtime’ı önler. Test için hping3 ile SYN flood simüle edin: hping3 –flood -S hedefIP.
Etkinleştirdikten sonra doğrulama için netstat -an | grep SYN_RECV sayısını izleyin; cookie aktifken bu sayı düşük kalır. dmesg | grep syncookie ile kullanım loglarını görün. İzleme araçları: Prometheus ile tcp_syncookies metriğini scrape edin veya ss -s komutuyla genel istatistikleri alın. Performans etkisi: CPU %1-2 artar, ancak saldırı altında tasarruf büyük olur.
En iyi uygulamalar arasında düzenli kernel güncellemeleri (yum update kernel veya apt upgrade linux-image), somut backlog boyutu ayarı ve log rotasyonu yer alır. Bulut ortamlarında (AWS EC2, GCP), security group’larda SYN flood koruması ekleyin. Bu ayarlar, PCI-DSS gibi uyumluluk standartlarını destekler ve sunucu uptime’ını artırır. Potansiyel sorun: Eski kernel’lerde (2.6 öncesi) destek yok; lütfen 3.x+ kullanın.
Sonuç olarak, TCP SYN Cookie’yi etkinleştirmek Linux sunucularınızın güvenilirliğini önemli ölçüde yükseltir. Bu basit ama güçlü adımları uygulayarak, ağ saldırılarına karşı proaktif bir savunma kurmuş olursunuz. Düzenli izleme ve testlerle optimizasyon yaparak, kurumsal düzeyde performans elde edin. Bu rehberi takip ederek hemen başlayın ve sunucunuzu güvence altına alın.