You are on page 1of 7

P2P engellemek iin Snort IDS kullanlmas

Vedat Fetah, Ege niversitesi Network Gvenlik Grubu

Ege niversitesi'nde kurulan sistemde Linux iletim sistemi zerinde alan ynlendiriciye giden hattn trafii snort'un dinledii ethernet

Snort saldr tespit sistemi ile P2P engellemesi yaplmaktadr. A switch'inde, ynlendirilmektedir. portuna

Sistem mesai saatlerinde almakta ve P2P yakalad zaman dier bir ethernet portu zerinden TCP END paketi gndererek balant (connection) kurulmasn engellemektedir. Hatt sadece dinledii iin hatta bir yavala yol amamaktadr. Srete yaanan de trafik istatistikleri takip edilerek tespit edilmekte ve kapatma yaptrmlar uygulanmaktadr.

tek sorun, gece saatlerinde balayan balantlarn devam etmesidir ama bu ip'ler

Snort'un bu ekilde kullanlabilmesi iin zel bir kurulum gerekmektedir ve

detaylar aada anlatlmtr. Snort kurallar dinamik olarak hazr kurallar www.snort.org sitesinden almak veya Oinkmaster adl yazlmla bu ilem otomatik olarak kural gncellemesini yapmak mmkndr. Bundan sonar deiikliklerin salamaktr. kural tablolarna aksettirilerek kuralllarn gncel

yaplmas gereken ise newsgrouplar takip ederek p2p programlarnn yapaca olmasn

Kuruluma balamadan nce sunucuda Apache ve Mysqlin Debianda varsaylan ayarlar ile kurulu olduundan emin olunmaldr.

Debian Sarge Datm zerine SnortSnort-Mysql Kurulumu


1. Tcp paketlerine cevap (response) yapabilmek iin kullanlacak resp desteini kullanabilmek iin nce Libnet-1.0.2a kurulur. Libnet konfigrasyonu srasnda satrnda devam eden yorum tek satr olarak yle yazlr;
#error "byte order has not been specified, you'll need to #define either LIBNET_LIL_ENDIAN or LIBNET_BIG_ENDIAN. See the documentation regarding the libnet-config script."

include dizini altndaki libnet.h dosyasnn 87. satrnda hata verirse 87. satrn alt

eklindeki iki satr, aadaki gibi tek satr olacak ekilde yazlr ve tekrar ./configure make & make install altrlarak sisteme kurulur.

#error "byte order has not been specified, you'll need to #define either LIBNET_LIL_ENDIAN or LIBNET_BIG_ENDIAN. See the documentation regarding the libnet-config script."

2. Daha sonra snort-mysql aadaki parametrelerle konfigre edilir;


./configure prefix=/usr bindir=/usr/sbin sysconfdir=/etc/snort enable-flexrsp with-mysql=/usr with-openssl

Konfigure edilen snort make, make install ile sisteme kurulur. 3. Snortreport /var/www/report dizini altna alr. Srconf.php dosyas metin editr yardmyla alarak $server = "localhost"; $user = "snort"; $pass = "Vereceginiz_ifre";

$dbname = "snort-mysql"; satrlar kendi sisteminize gre derlenir. Burada snort-mysql tablosu loglarn tutulaca tablodur. iin yazlr; 4. Son olarak aadaki komut yardmyla report'un web eriiminin hzl olmas

zcat /usr/share/doc/snort-mysql/create_mysql | mysql -p snort-mysql

Bu ilemler bittikten sonra snort-mysql altrlr. Snort altrma Modlar Snort 3 modda altrlabilmektedir. Bunlar Sniffer, packet logger, network intrusion detection system olarak 3 farkl modda kullanlabilir.

Sniffer Modu: A trafiini izleme modudur. Bu modda altrmak iin aadaki komutlar kullanlabilir; ./snort -v (TCP/IP) balklarn gsterir. ./snort -vd (TCP/IP ve Paket balklarn gsterir ./snort -dev ayrntl bilgi modu (Paket balklar ve akan veri) eklidir. Aadaki komutlarla bu mod altrlr; Paket Logger Modu: Kayt ilemlerini ktk dosyas eklinde yapan alma

./snort -dev -l ./log nceden belirlenmi bir dizine (LOG) kayt alr. ./snort -dev -l ./log -h 155.223.0.0/16 Bu komut satr belirtilen ip araln log dosyasna kaydeder.

./snort -l ./log -b Log dosyasn binary olarak tcp dump formatnda kayt eder. ./snort -dv -r packet.log Log dosyasn (binary olarak kaydedilen) okur. ./snort -dvr packet.log icmp Log dosyasndaki (binary olarak kaydedilen) sadece icmp paketlerini okumak iin kullanlr. Network Network Intrusion Modu: Saldr ve adaki kt davranlara akll tepki vermek iin kullanlr.Bu modu Bu ilem ksaca var HOME_NET 155.223.0.0/16 satr ile yaplr. Bu sayede aabilmek iin snort.conf dosyas iinde anz tanmlamanz gerekmemektedir. snort'un her altrlnda network tanm yapmam olduk. Snort.conf iinde tanmlama yapmadan; ./snort -dev -l ./log -h 155.223.0.0/16 -c /etc/snort/snort.conf Snort.conf iinde tanmlandktan sonra; ./snort -c /etc/snort/snort.conf -i eth0 -D Bir st satrdaki gibi log dosyasnn yolu belirtilmezse snort /var/log/snort dizini altnda tutacaktr log dosyasn.

msg: Alarm verme ve paketlerin kaydedildigini belirten mesaji ekrana yazar. logto: Paketi kullancnn belirledii bir dosya adnda kaydeder. ttl: IP balnn TTL alan deerini test eder. tos: IP balnn TOS alan deerini test eder.

Komutlarn Kullanm

id: IP balnn ID ksmnn alan deerini test eder. ipoption: Spesifik kodlar iin IP seeneklerini izler. fragbits: IP balnn bit paralarn test eder.

dsize: Bir deere kar paketin tad veri ykn test eder. flags: Belirli deerler iin TCP segmentlerini test eder. seq: TCP sra numara alanlarn belirli bir deer iin test eder. ack: TCP onay alanlarn belirli bir deere gre test eder. itype: ICMP tipindeki alanlar belirli bir deere gre test eder.

icode: ICMP kodundaki alanlarn belirli bir deere gre test eder. icmp_id: ICMP ECHO ID sini belirli bir deere gre test eder. content: Veri paketinde belirli bir rnei arar. offset: erik opsiyonunu deitirir. icmp_seq: ICMP ECHO sra numaralarn belirli bir deere gre test eder. contentcontent-list: Veri paketinde belirli bir grup rnek iin arama yapar. depth: erik opsiyonunu ve maksimum arama derinliini deitirir. nocase: Uygun ierii byk kk harfe baklmakszn bulur. session: Uygulama tabakasn ekrana karr. resp: Aktif cevaplama (balanty keser)

rpc: Belirli uygulama ve prosedr arlar iin RPC servislerini izler. react: Aktif cevaplama (web sitelerini bloklar) sid: Snort kural id'sini gsterir.

reference: D atak referans id'lerini ortaya karr. rev: Kural revizyon numarasn gsterir. classtype: Kural sralama gstericisidir.

priority: Kural keskinlii gstericisidir.

uricontent: Paketin URI porsiyonunda seilen bir rnei arar. ip_proto: IP balnn protokol deeridir. sameip: Kaynak ip'sinin hedef ip'sine eit olup olmadna kararlatrr.

Yukardaki seeneklerin tek tek kullanmlarn anlatmak yerine sadece resp seeneinin kullanm hakknda bilgi vereceiz.

resp: Bu komutla beraber kullanabilir seenekler: 1. rst_snd - TCP-RST paketlerini gnderme soketine yollar. 2. rst_rcv - TCP-RST paketlerini alma soketine yollar. 3. rst_all - TCP_RST paketlerini her sokete yollar.

4. icmp_net - Bir ICMP_NET_UNREACH'i gndericiye yollar.

5. icmp_host -Bir ICMP_HOST_UNREACH'i gndericiye yollar. 6. icmp_port - " ICMP_PORT_UNREACH'i gndericiye yollar. resp: ; 7. icmp_all Btn ICMP paketlerini gndericiye yollar.

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg: "BLEEDING-EDGE P2P Ares traffic"; flow: established; content:"User-Agent\: Ares"; reference: url,www.aresgalaxy.org; classtype: policy-violation; sid: 2001059; rev:3; resp:rst_all;) alert tcp any any -> 155.223.0.0/16 1524 (flags: S \ resp: rst_all; msg: "Root shell backdoor attempt";) msg: "Hacker's Paradise erisim denemesi";) alert udp any any -> 155.223.0.0/16 31 (resp: icmp_port, icmp_host; \ ekillerinde kullanm mevcuttur. Ancak biz p2p trafiini denetlemek iin

almalar yaptmz iin sadece ilk satrdaki rnek kural tarz kurallarla

almalyz aksi taktirde daha yksek kapasitede bir sunucuya ihtiyacmz olacaktr. Resp response rst_all ise reset all anlam tamaktadr. Kuralda tanmladmz zere alert tcp $HOME_NET any ieriden darya giden tm isteklerin -> $EXTERNAL_NET any resetlenmesi anlamn tamaktadr. Burada balants resetlenecek makinann gnderdii paket sid: 2001059. Bu kurala uyan paket da dardan ieri tanmlayabiliriz. sahiplerinin gndermi olduu paketler resetlenecektir. Kurallar ierden dar ya Snort kurallarn kendi yazamayanlar iin hazr kurallar www.snort.org sitesinden

almalar mmkndr. Oinkmaster adl yazlmla bu ilem otomatik olarak yaplabilir. Bunun iin oinkmaster kurulduktan sonra snortun web sitesinden gerekir. kendinize zel bir id numaras alarak oinkmaster.conf iine yazp altrmanz oinkmaster -o /etc/snort/ -b /etc/snort/eski/ komutuyla yeni kurallar /etc/snort/rules dizini altna konulmadan nce bu dizin /etc/snort/eski dizini altna sktrlarak alnr. Yeni ekilen kurallar direk rules dizini altna yerletirilir.

You might also like