Saldirilara Karsi Önleyici Ornek Iptables Kurallari
From Lapis Wiki
Bu makale IPUCU bölümü serisinin bir parçasıdır
|
| Ses • Çekirdek • Terminal/Kabuk |
| Dosya İşlemleri• Tarayıcılar • Diğer |
Konu başlıkları |
Giriş
|
Aşağıdaki örneklerin bir çoğu default gelen kernelde çalışmayabilir. Bu yüzden POM (patch-o-matic) kurup, gerekli yamaları kurmanız gereklidir. Aksi takdirde aşağıdaki örnekler çalışmaz. Ayrıca POM sayfasında çok daha geniş kapsamlı örnekler bulabilirsiniz.
|
recent modulu ile
iptables -I INPUT -p tcp -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp -i eth0 -m state --state NEW -m recent \ --update --seconds 600 --hitcount 10 -j DROP 600 saniye içinde sadece 10 bağlantıya izin veriyor. Fazla bağlantılar drop edilir.
|
iplimit modulu ile
iptables -A INPUT -p tcp -m tcp --dport 80 -m iplimit --iplimit-above 10 \ --iplimit-mask 32 -j REJECT --reject-with icmp-port-unreachable Netmask değeri 32 olarak tanımlanmış ve o IP aralığından gelen sadece 10 bağlantıya izin veriyor. Netmask C ağlarından alırsnaız, yani 32 yerine 24 yaparsanız, bu sefer 254 tane IP aralığından sadece 10 bağlantıya izin verir. Korunacak Port olarak 80 seçilmiştir.
iptables -A INPUT -p tcp -m iplimit --iplimit-above 10 --iplimit-mask 32 -j REJECT Bu örnekde de Port tanımlı değil, o halde bütün portları korur. Diğer açıklamalar yukardaki örnekteki gibi.
|
| Uyarı: Netmask tanımlamasını 24 yaparsanız çok dikkatli olmanız gerekir. Çünkü yapılacak işlem 254 tane makinayı ilgilendirir ve yapılacak isteklerde o derecede fazla olabilir. |
connlimit modulu ile
iptables -A INPUT -p tcp --syn --dport 25 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP Netmask 24 olarak tanımlı (yani söz konusu olan 254 tane IP olacaktır. 25 portuna istekleri kontrol eder. En fazla 10 bağlantıya izin verir.
iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP Tam emin olmamak ile birlikte butun portları kontrol etmesi gerektiğini düşünüyorum. Netmask 24 olarak ayarlı ve en fazla 10 bağlantıya izin verir.
|
Karışık Örnekler
|
LOG Syn-flood Denial of Service attempts - 10 per hour iptables -A FORWARD -p tcp --syn -m limit --limit 10/h \ -j LOG --log-prefix 'Syn-flood attack??? '
Syn-flood protection iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
LOG Furtive Port Scanner attempts - 10 per hour iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST \ -m limit --limit 10/h -j LOG --log-prefix 'Port Scanner attack??? '
Port Scanner protection iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST \ -m limit --limit 1/s -j ACCEPT
LOG Ping of Death Denial of Service attempts - 10 per hour iptables -A FORWARD -p icmp --icmp-type echo-request \ -m limit --limit 10/h -j LOG --log-prefix 'Ping of Death attack??? '
Ping of Death protection iptables -A FORWARD -p icmp --icmp-type echo-request \ -m limit --limit 1/s -j ACCEPT
|
Basit Betikler
Bir IP;den 10 dan fazla olan bağlantı kuranların listesi bir dosyaya yazdırılır. Sonra dosya satır satır okutulur ve iptables ile drop edilir (gentoo altında bash 3.0 sürümü ile denenmiştir).
#!/bin/bash
/bin/netstat -ntu | awk '{print $5}'| cut -d: -f1 | sort | uniq -c | sort -n | \
grep -v 127.0.0.1 | awk '{if ($1 > 9) print $2;}' > /tmp/IPLER
while read ipler; do iptables -A INPUT -s $ipler -j DROP ; done < /tmp/IPLER
Bağlantılar
POM ( Patch-o-matic)
