Linux sistemlerde güvenliği sağlamanın en kritik yollarından biri, iptables kullanarak gelen ve giden ağ trafiğini kontrol etmektir. iptables, paket filtreleme (packet filtering) prensibine dayanır ve sisteminize gelen, sisteminizden giden veya sisteminiz üzerinden geçen veri paketlerini belirlenen kurallar çerçevesinde yönetir.
1. iptables Nedir ve Neden Kullanılır?
iptables, Linux çekirdeğinde bulunan netfilter modülü ile çalışan bir güvenlik duvarı sistemidir. Karmaşık ve özelleştirilebilir güvenlik kuralları oluşturmayı sağlar. iptables kullanarak:
🔹 Belirli IP adreslerini ve portları engelleyebilirsiniz.
🔹 DDoS ve brute-force saldırılarına karşı güvenlik sağlayabilirsiniz.
🔹 Ağ trafiğini filtreleyerek belirli protokollere izin verebilir veya engelleyebilirsiniz.
🔹 NAT (Network Address Translation) kullanarak ağ yapılandırmalarınızı yönetebilirsiniz.
iptables, gelişmiş güvenlik duvarı kurallarına ihtiyaç duyan sistem yöneticileri ve güvenlik uzmanları için güçlü bir araçtır.
2. iptables Kurulumu ve Temel Yapılandırma
Çoğu modern Linux dağıtımında iptables varsayılan olarak gelir. Eğer sisteminizde yüklü değilse, aşağıdaki komutla yükleyebilirsiniz:
sudo apt update && sudo apt install iptables -y # Debian/Ubuntu
sudo yum install iptables-services -y # CentOS/RHEL
iptables servisinin aktif olup olmadığını kontrol edelim:
sudo systemctl status iptables
Eğer servis çalışmıyorsa başlatabilirsiniz:
sudo systemctl start iptables
sudo systemctl enable iptables
3. iptables Temel Kavramlar
iptables, kurallar (rules) ile çalışır ve trafiği zincirler (chains) içerisinde belirli tablolarla yönetir. Temel olarak 3 ana zincir kullanılır:
🔹 INPUT: Sisteme gelen paketleri kontrol eder.
🔹 OUTPUT: Sistemden çıkan paketleri kontrol eder.
🔹 FORWARD: Sunucu üzerinden geçen paketleri kontrol eder (örneğin, bir yönlendirici – router olarak kullanılıyorsa).
Varsayılan iptables yapılandırmasını görmek için:
sudo iptables -L -v
Bu komut mevcut kuralları listeler.
4. iptables Temel Kurallar
4.1. Varsayılan Politikaları Belirleme
Tüm gelen bağlantıları engelleyip yalnızca belirli trafiğe izin vermek için aşağıdaki komutları kullanabilirsiniz:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
Bu komutlarla:
✅ Gelen bağlantılar (INPUT) varsayılan olarak reddedilir.
✅ İleriye yönlendirme (FORWARD) engellenir.
✅ Giden bağlantılar (OUTPUT) serbest bırakılır.
4.2. SSH ve Web Trafiğine İzin Verme
SSH, HTTP ve HTTPS gibi temel servisleri açmak için aşağıdaki komutları kullanabilirsiniz:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH erişimine izin ver
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP erişimine izin ver
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS erişimine izin ver
Eğer SSH için varsayılan portu değiştirdiyseniz (örneğin, 2222), şu komutu kullanabilirsiniz:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
4.3. Belirli Bir IP Adresine veya Ağa İzin Verme
Belli bir IP adresine giriş izni vermek için:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
Belli bir IP bloğuna izin vermek için:
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
4.4. Belirli Bir IP Adresini Engelleme
Belli bir IP adresinden gelen tüm trafiği engellemek için:
sudo iptables -A INPUT -s 203.0.113.45 -j DROP
4.5. DDoS Saldırılarına Karşı Koruma
Sürekli olarak belirli bir IP’den gelen aşırı bağlantıları engellemek için aşağıdaki rate limiting kuralını kullanabilirsiniz:
sudo iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min --limit-burst 5 -j ACCEPT
Bu kural, her dakika en fazla 3 bağlantıya izin verir ve saldırılara karşı koruma sağlar.
5. iptables Kurallarını Kaydetme ve Yedekleme
iptables kuralları sistem yeniden başlatıldığında kaybolur. Kalıcı hale getirmek için şu adımları uygulayabilirsiniz:
🔹 Mevcut kuralları kaydetmek için:
sudo iptables-save > /etc/iptables/rules.v4
🔹 Kaydedilmiş kuralları geri yüklemek için:
sudo iptables-restore < /etc/iptables/rules.v4
🔹 CentOS/RHEL için:
sudo service iptables save
6. iptables Kurallarını Listeleme ve Yönetme
✔ Mevcut kuralları listelemek için:
sudo iptables -L -v
✔ Belirli bir kuralı silmek için:
sudo iptables -D INPUT -s 203.0.113.45 -j DROP
✔ Tüm kuralları sıfırlamak için:
sudo iptables -F
✔ Belirli bir zinciri sıfırlamak için:
sudo iptables -F INPUT
Özetle
iptables, Linux sistemler için son derece güçlü bir güvenlik duvarı aracıdır ve ağ trafiğini detaylı şekilde yönetme imkanı sunar. Gelişmiş filtreleme kuralları ile sunucularınızı saldırılara karşı koruyabilir, belirli servisleri güvenli hale getirebilir ve sisteminizin siber tehditlere karşı dayanıklılığını artırabilirsiniz.
💡 Unutmayın: iptables yapılandırmalarınızı düzenli olarak gözden geçirmek ve yedeklemek, olası bir güvenlik açığını önlemenize yardımcı olacaktır!
Yorum gönder