
Linux Sunucuda iptables ile Güvenlik Duvarı Kuralları Yönetimi
iptables, Linux çekirdeğinin netfilter altyapısı üzerinde çalışan paket filtreleme aracıdır. Sunucunuza gelen ve giden tüm ağ trafiğini kontrol etmenizi sağlar. Doğru yapılandırılmış bir iptables kuralı seti, yetkisiz erişimleri engeller, brute force saldırılarını yavaşlatır ve yalnızca gerekli serv
Ahmet Yılmaz
Kıdemli Altyapı Mühendisi
iptables, Linux çekirdeğinin netfilter altyapısı üzerinde çalışan paket filtreleme aracıdır. Sunucunuza gelen ve giden tüm ağ trafiğini kontrol etmenizi sağlar. Doğru yapılandırılmış bir iptables kuralı seti, yetkisiz erişimleri engeller, brute force saldırılarını yavaşlatır ve yalnızca gerekli servislerin dışarıya açık olmasını garanti eder. Bu rehberde temel kurallardan rate limiting'e kadar iptables yönetimini ele alıyoruz.
iptables Temel Kavramları
iptables üç ana zincir (chain) üzerinde çalışır: INPUT (gelen trafik), OUTPUT (giden trafik) ve FORWARD (yönlendirilen trafik). Her zincirde kurallar sırayla değerlendirilir; ilk eşleşen kural uygulanır. Varsayılan politika (policy) hiçbir kural eşleşmediğinde ne yapılacağını belirler.
| Zincir | Yön | Kullanım |
|---|---|---|
| INPUT | Dışarıdan sunucuya | SSH, HTTP, HTTPS erişim kontrolü |
| OUTPUT | Sunucudan dışarıya | DNS, güncelleme, API çağrıları |
| FORWARD | Sunucu üzerinden geçen | NAT, VPN, container ağları |
Temel Güvenlik Kuralları
Aşağıdaki kural seti, bir web sunucusu için temel güvenlik yapılandırmasını oluşturur. Varsayılan politika DROP olarak ayarlanır ve yalnızca izin verilen trafik kabul edilir:
#!/bin/bash
# Mevcut kurallari temizle
iptables -F
iptables -X
# Varsayilan politika: hepsini engelle
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Loopback izin ver
iptables -A INPUT -i lo -j ACCEPT
# Mevcut baglantilara izin ver
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# SSH (port 22 veya ozel port)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP ve HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# ICMP (ping) - sinirli izin
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
⚠️ Dikkat: INPUT politikasını DROP yapmadan önce SSH kuralınızın doğru olduğundan emin olun. Yanlış yapılandırma sunucuya erişiminizi kalıcı olarak kesebilir. Uzaktan çalışıyorsanız önce bir cron job ile kuralları sıfırlayan bir script ayarlayın.
Rate Limiting ve Brute Force Koruması
SSH brute force saldırılarını iptables ile sınırlamak, Fail2Ban'a ek bir koruma katmanı sağlar:
# SSH brute force korumasi: 60 saniyede max 4 baglanti
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW \
-m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW \
-m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
# HTTP flood korumasi: saniyede max 25 yeni baglanti
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 25 -j DROP
Kuralları kalıcı hale getirmek için iptables-persistent paketini kullanın. SSH güçlendirme hakkında detaylı bilgi için SSH Güçlendirme rehberimizi, DDoS koruması için DDoS Koruma rehberimizi inceleyebilirsiniz. Hosted Cloud bulut sunucuları ile güvenli bir altyapı oluşturabilirsiniz.
Sıkça Sorulan Sorular
iptables mi yoksa nftables mi kullanmalıyım?
nftables, iptables'ın modern halefidir ve daha iyi performans sunar. Ancak iptables hala yaygın olarak kullanılmaktadır ve çoğu rehber iptables sözdizimini kullanır. Yeni kurulumlar için nftables önerilir; mevcut sistemlerde iptables sorunsuz çalışmaya devam eder.
iptables kuralları yeniden başlatmada kaybolur mu?
Evet, iptables kuralları varsayılan olarak bellekte tutulur. iptables-persistent paketi ile kuralları kalıcı hale getirin: sudo apt install iptables-persistent ve sudo netfilter-persistent save.
Yanlış kural ile kendimi kilitlersem ne yaparım?
Uzaktan erişim kaybını önlemek için kuralları uygulamadan önce bir cron job ayarlayın: */5 * * * * /sbin/iptables -F. Bu, 5 dakikada bir kuralları sıfırlar. Doğru çalıştığından emin olduktan sonra cron job'u kaldırın.
Docker ile iptables çakışır mı?
Docker kendi iptables kurallarını ekler ve FORWARD zincirini kullanır. Docker container'larının ağ erişimini kontrol etmek için DOCKER-USER zincirini kullanın. Docker'ın iptables yönetimini devre dışı bırakmak önerilmez.
UFW ile iptables arasındaki fark nedir?
UFW (Uncomplicated Firewall), iptables üzerine kurulmuş basitleştirilmiş bir arayüzdür. Arka planda iptables kuralları oluşturur. Basit yapılandırmalar için UFW yeterlidir; gelişmiş kurallar (rate limiting, conntrack) için doğrudan iptables kullanın.
Sonuç
iptables, Linux sunucu güvenliğinin temel yapı taşıdır. Varsayılan DROP politikası ile yalnızca gerekli portları açın, rate limiting ile brute force saldırılarını yavaşlatın ve conntrack ile mevcut bağlantıları verimli yönetin. Kuralları iptables-persistent ile kalıcı hale getirmeyi ve değişiklik öncesi erişim kaybına karşı önlem almayı unutmayın.
Güvenli Sunucu Altyapısı
Hosted Cloud bulut sunucuları ile güvenlik duvarı kurallarınızı tam kontrol altında tutun.
Bulut Sunucu Planlarını İncele →Ahmet Yılmaz
Kıdemli Altyapı Mühendisi
10 yılı aşkın bulut altyapısı ve DevOps deneyimiyle Hosted Cloud'un teknik ekibinde yer almaktadır. Kubernetes, Terraform ve yüksek erişilebilirlik mimarileri üzerine uzmanlaşmıştır.
Yorumlar yakında