Ubuntu Server ortamlarında ağ güvenliğini sağlamak için firewall yapılandırması kritik öneme sahiptir.
Ubuntu Server ortamlarında ağ güvenliğini sağlamak için firewall yapılandırması kritik öneme sahiptir. Firewall state tracking, bağlantı durumlarını izleyerek yalnızca meşru trafiğe izin veren stateful firewall kurallarını etkinleştirir. Bu yaklaşım, stateless firewall’lara kıyasla daha verimli ve güvenli bir koruma sağlar. Ubuntu Server’da, netfilter altyapısı üzerine kurulu UFW (Uncomplicated Firewall) veya doğrudan iptables/nftables ile state tracking’i kolayca uygulayabilirsiniz. Bu makalede, konseptin temellerini açıklayacak, pratik kurulum adımlarını detaylandıracak ve izleme tekniklerini paylaşacağız. Böylece sunucunuzu olası saldırılara karşı güçlendirebilir, kaynak kullanımını optimize edebilirsiniz.
Firewall state tracking, bağlantıların durumunu (yeni, ilişkili, kurulmuş) takip ederek kuralları dinamik hale getirir. Netfilter’in conntrack (connection tracking) modülü, her TCP/UDP/ICMP paketi için bir giriş oluşturur ve bu sayede yalnızca yanıt paketlerine otomatik izin verir. Bu mekanizma, SYN flood gibi saldırıları engellerken, meşru trafiği kesintisiz geçirir. Ubuntu Server 20.04 ve üzeri sürümlerde varsayılan olarak etkin olan conntrack, kernel modülü olarak çalışır ve /proc/net/nf_conntrack dosyasından görüntülenebilir.
State tracking’in avantajları arasında düşük CPU yükü ve gelişmiş güvenlik yer alır. Örneğin, bir istemci sunucuya SSH bağlantısı kurduğunda, conntrack ilk SYN paketini “NEW” olarak işaretler, ardından “ESTABLISHED” durumuna geçer. Bu sayede return trafiği için ayrı kural yazmaya gerek kalmaz. Conntrack tablosu sınırlı olduğundan (varsayılan 65K giriş), yoğun trafikte tablo dolmasını önlemek için ayarlamalar yapmalısınız.
Conntrack, kernel’in netfilter çerçevesinde paketleri hook’layarak durum bilgilerini depolar. Her bağlantı için protokol, kaynak/hedef IP/port, durum ve timeout değerleri tutulur. TCP için SYN_SENT, ESTABLISHED gibi SYNCHRONIZED durumlar izlenir. Modülü etkinleştirmek için modprobe nf_conntrack gerekmez, zira Ubuntu’da yerleşik yüklenir. Durumları görmek için cat /proc/net/nf_conntrack komutunu kullanın; çıktı, tcp 6 431999 ESTABLISHED src=192.168.1.100 dst=10.0.0.1 gibi satırlar içerir. Bu bilgi, debugging için vazgeçilmezdir ve syslog ile entegre edilebilir.
Stateless firewall’lar her paketi bağımsız değerlendirirken, stateful olanlar bağlamı hatırlar. Stateless’ta return trafiği için INPUT ve OUTPUT zincirlerine ayrı kurallar eklemeniz gerekir; stateful’da ise -m conntrack –ctstate RELATED,ESTABLISHED ile tek satır yeter. Performans testlerinde stateful kurulumlar %30 daha az kural işleme yükü gösterir. Ubuntu’da geçiş için UFW policy default deny ile stateful kurallar tanımlayın.
Ubuntu Server’da state tracking’i etkinleştirmek için öncelikle UFW’yi tercih edin, zira kullanıcı dostudur. sudo apt update && sudo apt install ufw ile yükleyin, ardından sudo ufw default deny incoming && sudo ufw default allow outgoing komutları ile politika belirleyin. State tracking varsayılan olduğundan, sudo ufw allow ssh gibi kurallar otomatik RELATED/ESTABLISHED trafiğe izin verir. İleri düzey için iptables-restore ile kalıcı kurallar yükleyin.
UFW kurulumunda state tracking otomatik etkinleşir. Adım adım: 1) sudo ufw enable ile başlatın. 2) sudo ufw allow 22/tcp için SSH açın; bu, yeni bağlantılara izin verir, return’ü conntrack yönetir. 3) sudo ufw status numbered ile kuralları listeleyin ve gerekirse sudo ufw delete 1 ile silin. Loglama için sudo ufw logging on; /var/log/ufw.log’da BLOCKED by ctstate invalid gibi kayıtlar görürsünüz. Yüksek trafik sunucularda sudo sysctl -w net.netfilter.nf_conntrack_max=262144 ile limiti artırın, /etc/sysctl.conf’a ekleyerek kalıcı kılın. Bu ayarlar, DDoS saldırılarını %50 oranında azaltır.
Iptables ile doğrudan state tracking: sudo iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT. Ardından yeni bağlantılar için -m conntrack –ctstate NEW -s 192.168.1.0/24 -j ACCEPT ekleyin. IPv6 için ip6tables kullanın. Kuralları kaydetmek için sudo apt install iptables-persistent; sudo netfilter-persistent save. Örnek script: #!/bin/bash iptables -F; iptables -P INPUT DROP; iptables -A INPUT -i lo -j ACCEPT; iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT. Bu script’i cron ile çalıştırarak dinamik güvenlik sağlayın. Conntrack flush için conntrack -F kullanın, ancak üretimde dikkatli olun.
Sunucunuzdaki conntrack performansını izlemek için conntrack-tools paketini yükleyin: sudo apt install conntrack. conntrack -L ile tabloyu listeleyin, conntrack -C ile sayıyı görün. Yüksek kullanımda timeout’ları kısaltın: echo 30 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established. Prometheus ile entegre ederek grafikler oluşturun, ancak temel için watch -n1 ‘conntrack -C’ yeterli. Bellek sızıntısını önlemek için düzenli flush planlayın.
İzleme için conntrack -E ile event’leri dinleyin; NEW, UPDATE, DESTROY mesajları akar. conntrack -D –orig-src 192.168.1.100 ile belirli bağlantıyı silin. Sysdig veya tcpdump ile entegre edin: tcpdump -i eth0 ‘tcp[tcpflags] & tcp-syn != 0’. Grafana dashboard’unda nf_conntrack_count metriğini takip edin. Üretim sunucularda, tablo dolduğunda OOM killer tetiklenir; sysctl net.netfilter.nf_conntrack_buckets=65536 ile hash tablosunu büyütün. Bu teknikler, ağ anomalilerini erken tespit eder ve uptime’ı artırır.
Yaygın sorun: Tablo dolması (nf_conntrack: table full). Çözüm: nf_conntrack_max’i artırın ve eski girişleri temizleyin. NAT ile sorun yaşarsanız, –ctstate NEW -d 10.0.0.0/8 ile kısıtlayın. UDP timeout’ları kısa tutun: nf_conntrack_udp_timeout=30. Logları /var/log/kernelde arayın; kernel.log’da nf_conntrack: oom-killer uyarısı görürseniz belleği kontrol edin. Test için hping3 ile SYN flood simüle edin: hping3 –flood -S target_ip, ardından conntrack sayısını izleyin.
Ubuntu Server’da firewall state tracking’i doğru uygulayarak sunucunuzun güvenliğini kat kat artırabilirsiniz. Bu yapılandırmalar, pratik adımlarla hızlıca devreye alınır ve izleme ile sürdürülebilir hale getirilir. Düzenli bakım ve testlerle olası riskleri minimize edin, böylece kurumsal altyapınızı en üst düzeyde koruyun.