Saldirilara Karsi Önleyici Ornek Iptables Kurallari

From Lapis Wiki

Jump to: navigation, search
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)

http://www.netfilter.org/projects/patch-o-matic/index.html

http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/