Firewall/Router’dan Ip-MAC degisimini kontrol etmek

gate_keeper.jpgYerel aglardaki sistem/ag yoneticilerinin en buyuk sorunlarindan biri  IP adresini degistirerek erisim kontrol listelerini asmaya ugrasan calisanlardir. Bunun icin genelde yapilanlar, DHCP araciligi ile IP sabitlemek, MAC adresine gore filtreleme yapmak vs oluyor.

 Cogu ortamda bu yapilanlar basarili olamiyor. DHCP’den yapilan sabitleme, calisan IP Adresini degistirebilecek yetki ve bilgiye sahipse ise yaramiyor. MAC adresine gore filtreleme yapmak ise MAC adresini degistirmeye bilenler icin yine bir onlem olamiyor.

 
Peki bu durumda ne yapilabilir?

Bunun icin cesitli  yontemler dusunulebilir(benim sık rastladığım genelde mac tabanli filtreleme, ip tabanli filtreleme ve her ikisinin birlestirilerek ip-mac karsilastirmasinin dogrulugunun  kontrol edilmesi ediliyor. Boylece ip ya da mac’ini degistiren biri firewallun kurallarina takiliyor).

 Son yontem aslınada en gecerlisidir ama boyle bir ozellik her firewall’da  olmayabilir ve daha da onemlisi  bosu bosuna guvenlik duvarini yorar.

 Bunun yerine her işletim sisteminde standart bulunan ARP komutu ve TCP/IP protokol bilgisini ortaya koyarak kendi cozumumuzu olusturabiliriz ki bence en gecerli yontem olacaktir.

 
Kısaca ARP’ı hatırlayalım:

         ARP, yerel aglarda birbirleri ile haberlesmek isteyen sistemlerde ip-mac eslemesini yapan protokoldur. Iki IP Adresi haberlesmeden once mutlaka birbirlerinin MAC adreslerini ogrenmeleri ve iletisimi bu adresler uzerinden gerceklestirmeleri gerekir.

 
ARP sorgulamaları yapıldıktan sonra belirli muddet isletim sistemi tarafından bellege alınır ve o sure icerisinde tekrar gerekirse sorgulama yapılmadan kullanılabilir.

ARP komutunun sunduğu diğer iki önemli özellik, ARP kayıtlarının statik olarak girilebilmesi(yani X ip adresi icin ARP kayıtı girerek sorgulama yapılmasına gerek bıraktırmamak  ve degistirilemez olarak sabitlenebilmesi) ve  ip-mac ikililerini bir dosyadan okutabilmek(-f).

 

IP adresi sabit ve degistirilemez olarak girilen sistemin normal ARP kayıtlarından farkı

 (192.168.0.20) at 00:0a:a5:ea:98:1b on bge0 [ethernet]

 (192.168.0.15) at 00:12:4b:a4:17:b2 on bge0 permanent [ethernet]

 

ARP komutu ile ip/mac adresini degistirenlerin devre dısı bırakılması

 Basitce yaptigimiz bir arabirimden kullaniciya ip-mac ciftlerini girdirmek ve bunu arkaplanda bir script ile sisteme statik ve değişmez olarak tanimlamak.. Ya da fping/ping/hping/scapy vs ile ile tum agi tarayarak agdaki MAC kayıtlarının toplanmasını sağlamak ve arp –an komutu ile tüm kayıtları almak.

 Bundan sonra bu kayıtları bir dosyaya kaydederek

 #arp –f kayitlarin_bulundugu_dosya

 komutu çalıştırılırsa dosyadaki IP adresleri için sabit ve değişmez ARP kayıtları sisteme girilmiş olur.

 NOT: arp kayıtlarının bulunduğu dosyanın formatı şu şekilde olmalıdır.(FreeBSD icin)

 IP_Adresi  MAC_Adresi

Sonrasında ip-mac eslemesi yapılan ip adresleri icin Firewalldan  gerekli erisim yetkilerini tanımlayarak sadece o ip adreslerine erisim vermek gerekir.

 Boylece IP/MAC adresini degistiren biri,

        ARP kaydını tanımlamadıgımız aralıktan bir ip adresi alırsa: Firewall zaten o ip adresine erisim vermeyecektir.

       ARP kaydını tanımladığımız aralıktan bir ip adresi alırsa: Firewall’daki ip-mac kayıtları statik ve değişmez olacağından dolayı firewall ile erişimi kesilecektir. Nasıl mı?

 Mesela 1.1.1.2 ip adresi için sistemde statik ve değişmez olarak tanımlı mac adresi 00:11:22:33:44:55 olsun.

 İşletim sistemi 1.1.1.2 ip adresli hosta paketleri gönderirken 00:11:11:33:44:55 mac adresli makineye gidecek şekilde hazırlar ve gönderir..

 Ağdaki başka bir makine bu ip adresini uzerine alsa bile MAC adresi 00:11:22:33:44:55 olmadıktan sonra paketler spoof eden hosta geri dönmeyecektir.

 Bu yöntemin bir yararı da yerel ağlardaki MITM atakları kolaylıkla engelleyebilmesidir.

 Biraz karisik gorunsede suana kadar yan etkisini gormedim, gayet iyi calisiyor.

 Ekte Mac adresini degistiren hazin bir kullanicinin sonu gozukuyor.

 

# tcpdump -i fxp0 -tttnn -e icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on fxp0, link-type EN10MB (Ethernet), capture size 96 bytes

000000 00:22:33:44:55:66 > 00:04:23:0c:5d:b8, ethertype IPv4 (0x0800), length 98: 1.2.3.4> 5.6.7.8: ICMP echo request, id 56936, seq 42, length 64

000051 00:04:23:0c:5d:b8 > 00:08:74:db:01:f8, ethertype IPv4 (0x0800), length 98: 1.2.3.5> 1.2.3.4: ICMP echo reply, id 56936, seq 42, length 64

1. 009937 00:22:33:44:55:66 > 00:04:23:0c:5d:b8, ethertype IPv4 (0x0800), length 98: 1.2.3.4> 5.6.7.8: ICMP echo request, id 56936, seq 43, length 64

000055 00:04:23:0c:5d:b8 > 00:08:74:db:01:f8, ethertype IPv4 (0x0800), length 98: 1.2.3.5> 1.2.3.4: ICMP echo reply, id 56936, seq 43, length 64

^C

4 packets captured

16 packets received by filter

 

This entry was posted in Network Security. Bookmark the permalink.

7 Responses to Firewall/Router’dan Ip-MAC degisimini kontrol etmek

  1. Serdar says:

    Genel ağda da bu tür sorunlar mevcut. Okullardan internete girişleri denetlemek için MEB yetkilileri TTNET ile protokol yapmış. Pek çok oyun vb siteyi oluşturdukları kara listeye eklemişler. Aslında bu durum öğrencilerin olduğu kadar bizlerin de keyfini kaçırıyor. Neyse ki imdada aşağıdaki vb. proxy sunucular yetişiyor. Bu makaleyi MEB yetkilileri okumasın! 🙂

    http://www.pagewash.com/ http://www.anonymization.net/ vb….

  2. Ali says:

    Meraba,
    Benim anlamadigim nokta, bizim firewall uzerine, networkteki tum hostlarin mac-ip eslesmesini statik olarak girmemizin, firewall’un kendi ozelilgi olan mac-ip binding dedigimiz ozellikten farki nedir. Firewall ilk yontemde, paketi aliyor, yoruluyor, paketin karsiligini gonderiyor ama spoof yapan kisiye donmuyor ve guvenlik saglaniyor. 2. yontemde ise, paketi aliyor, ne tur bi action sergileyecegine karar vermeden once, mac-ip tablosuna bakiyor, eslesme gerceklesmedi ise drop ediyor. Yani ben olayin olceklenebilirlik tarafini anlayamadim. Tabi 2. olaydaki surec gercekten benim dedigim gibimi isliyor.

  3. Huzeyfe ONAL says:

    Firewall’un kendi ozelligi olan mac-ip binding nasil calisiyor bilmiyorum ama her durumda sisteme statik olarak kayitlarin girilmesi gerekir. yoksa sistem neye gore karar verecek?

    Sistemin kendisine gelen 3-5(300-500) paketi farkli mac adresine yonlendirmesi performans problemine sebep olmaz.

  4. msurucu says:

    Peki kullanıcı mac’ini değiştirip başka kullanıcının mac’ini alırsa ne gibi bir koruma yöntemi izlemek gerekecek.

  5. Huzeyfe ONAL says:

    Eger kullanici baskasinin mac adresini alirsa (ip adresi ile birlikte degil)GW de yeni alinan mac ile ip uyusmayacagi icin dis dunya ile baglantisi kesilir. Hem ip hem de mac ip adresini alirsa bu sefer de agda cakisma olacagindan yine baglantilarda problem yasanir.

  6. bedo says:

    Huzeyfe Bey Selamlar,

    Bahsettiğiniz yöntemi OpenBSD ile denemek istedim lakin ben arp kayıtlarını statik girsem de bu statik girdilerin yanında dinamik girdiler de kendiliğinden oluşuyor ve ip-MAC ikilileri değişse de istemci firewalldan hizmet almaya devam edebiliyor. Atladığım bir nokta mı var acaba? Bir de OpenBSD ile oluşturulmuş bir dhcp sunucu üzerinde dhcp ile ip almamış (yani statik ip almış) istemcilerin network dışına çıkmasını engellemeyi mümkün kılan bir uygulama yapılabilir mi?

    Saygılarımla..

  7. emrah says:

    Bunu enterprise yapida switch uzerinde yapilmasi daha dogru olur. Ilk etapta sticky ile ilk eslestirme yapilir. Sonra tutarlilik beklenir.

Leave a Reply

Your email address will not be published. Required fields are marked *

eighteen + four =