OSI ikinci ve üçüncü katman saldırılarına karşı ağı korumak amacı ile aşağıdaki temel kontrol setleri Switch ve router cihazlarında icra edilebilir. Burada eklediğim maddeler ağ temelli saldırılara karşı alınabilecek tedbirlerden sadece birkaçını içermektedir. Kurum ağ yapısına ve güvenlik beklentilerine göre yeni maddeler eklenebilir.
Not: Komut setleri Cisco ve Dell markalarına ait router ve switch işletim sistemleri referans alınarak yazılmıştır. Versiyon farklılıkları komut seti farklılıklarına sebep olabilir. Farklı markalarda aynı işlemler farklı komut setleri ile icra edilebilir.
- Kullanılmayan portların kapatılması:
Bu işlem network güvenliğinin en temel ve en önemli adımıdır. Kullanılmayan portların ve default VLAN1 in kapatılması iyi bir başlangıçtır.
Örnek Konfigürasyon:
Switch(config)#interface gigabitethernet 1/0/1
Switch(config-if-Gi1/0/1)#shutdown
. - Switch Spoofing (Anahtar Sahtekarlığı):
Saldırganın kendisini trunk port ile Switche bağlanmış başka bir Switch gibi göstererek, bulunduğu VLAN haricindeki VLAN lara geçmesini sağlayan saldırı tipidir. Sebebi interface ve trunk ayarlarının doğru yapılandırılmamasıdır. Layer2 iletişimi başlığı altında belirtecek olursak bir port, access, trunk, dynamic desirable ve dynamic auto olarak konfigüre edilebilir.
Örnek Konfigürasyon:
Switch(config-if)#switchport mode ?
access Set trunking mode to ACCESS unconditionally
dynamic Set trunking mode to dynamically negotiate access or trunk mode
trunk Set trunking mode to TRUNK unconditionally
Switch(config-if)#switchport mode dynamic ?
auto Set trunking mode dynamic negotiation parameter to AUTO
desirable Set trunking mode dynamic negotiation parameter to DESIRABLE
Auto: Trunk çalışmak için pasif bir şekilde karşı taraftan dinlediği DTP (Dynamic Trunking Protocol) mesajlarına bakar. Gelen mesajda karşı tarafın trunk olarak konfigüre edildiği bilgisi varsa port kendisini otomatik olarak trunk a çeker ve frameleri taglamaya başlar.
Desirable: Auto dan farkı kendisi karşı tarafa DTP mesajları gönderir ve karşı tarafın Trunk çalışmasını ister.
Çözüm:
DTP nin kapatılması gerekmektedir. Kullanılmayan portların disable edilmesi ise tüm sorunların çözümü için genel prensip edinilmelidir.
Örnek Konfigürasyon:
Switch(config)#int fastEthernet 0/1
Switch(config-if)#Switchport mode trunk
Switch(config-if)#Switchport mode nonegotiate
. - Double Tagging – VLAN Hopping (Çift Etiketleme – VLAN Aşırtma):
Bu saldırı tipinin başlıca sebebi default VLAN ID (1) de bırakılmış olan Native VLAN dır. Normalde bir anahtar trunk portu üzerinden untagged bir frame i kabul etmez. Bunun tek istisnası Native VLAN dır. Trunk ile birbirine bağlı iki anahtarın da Native VLAN ı kabul edecek şekilde konfigüre edilmesi gerekir. Bu saldırı tipinde saldırgan, saldırı yapacağı makineye ulaşmak için frame e iki adet tag ekler. Birisi kendisine ait Native VLAN ID 1 dir; diğeri ise kurbanın bulunduğu VLAN etiketidir. Ağ anahtarları genelde 1 adet etiketi açıp trafiği iletirler. Aşağıdaki grafikte de gösterildiği üzere iki Switch arasındaki trunk üzerinden Native VLAN ID 1 in geçebildiğini düşünelim. Saldırganın iki kere etiketlediği frame i alan birinci anahtar, ilk etiketi (Native VLAN ID 1) açacak ve trunk portu üzerinden diğer anahtara gönderecek. İkinci anahtar ise VLAN 10 (Örnekte saldırıyı alan sunucunun bulunduğu VLAN) etiketini açacak ve trafiği sunucuya iletecek. Tabii bu trafiğin geri dönüşü olmayacak ama yine de Ddos saldırılarında bu atak tipi işe yarayacak.
Çözüm:
Default VLAN ID 1 kullanmamak. Hem default VLAN ID den hem de kullanıcıların bulunduğu VLAN ID lerden başka ID lere sahip Native VLAN oluşturup trunk olarak belirlediğimiz portlar altında bu ID yi tanımlamak.
Örnek Konfigürasyon:
Switch (config-if)# Switchport trunk native vlan VLANID
- DHCP Spoofing:
Bu başlık altında 2 adet saldırı tipinden söz edilebilir.
a. DHCP Starvation: Saldırgan spoof edilmiş Source MAC adresler ile DHCP sunucuya bol miktarda DHCP Request paketi gönderip DHCP sunucunun dağıtacağı IP havuzunu kısa sürede doldurur.
b. DHCP Spoofing: Bu saldırı tipinde ise saldırgan kendisini DHCP sunucu gibi göstererek clientların kendisinden IP adresi almasını sağlar.
Çözüm:
Switch üzerinde DHCP Snooping aktif edilmelidir.
Örnek Konfigürasyon:
Untrust VLAN (User VLANı)
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping database
Switch(config)# ip dhcp snooping vlan 50
Trust Interface (Uplink, DHCP Server Interface)
Switch(config)# interface range gigabitethernet1/0/47-48
Switch(config-if-range)# ip dhcp snooping trust
Switch(config-if-range)# ip arp inspection trust
Switch(config)# interface Port-channel1
Switch(config-if)# ip arp inspection trust
Switch(config-if)# ip dhcp snooping trust
Switch(config-if)# do show ip dhcp snooping binding
MAC Address IP Address Lease (sec) Type VLAN Interface
08:2e:5f:09:8b:e6 10.31.3.136 6649 learned 50 gi1/0/3
10:60:4b:68:b4:8c 10.31.3.42 6450 learned 50 gi1/0/21
. - Arp Spoofing:
Arp protokolü bilindiği gibi hedef IP adresinin MAC adresini tespit etmek için kullanılır.
Saldırgan, arp zehirlemesi gerçekleştirerek kurban makinenin gateway ini kendisi olarak gösterir ve böylece gateway ile kurban arasında man-in-the-middle yapar.
Yukarıdaki örnekte 1.106 makinesi 1.1 IP adresinin MAC ini soruyor ve Router kendi MAC adresini 1.106 ya cevap olarak dönüyor. Buraya kadar her şey normal.
Burada ise saldırgan Kali içerisindeki Ettercap vb. bir tool ile kolayca yapılabileceği üzere Router a Garp paketi göndererek “1.106 IP adresi artık benim MAC adresim üzerindedir” diyor. Aynı şekilde kurban makineye de “1.1 IP adresi artık benim MAC adresim üzerindedir” diyerek man-in-the-middle yapıyor ve paketleri kendi üzerinden geçirerek sniffing yapıyor.
Çözüm:
Switchde Dynamic Arp Inspection (DAI) özelliğinin etkinleştirilmesi. Kullanıcı tarafına bakan VLAN ın untrusted; Router tarafına bakan interface in ise trusted olarak Konfigürasyonüre edilmesi gerekiyor.
Örnek Konfigürasyon:
Untrust Client Vlan:
Switch(config)# ip arp inspection
Switch(config)# ip arp inspection validate
Switch(config)# ip arp inspection vlan 50
Trust Uplink Port:
Switch(config)# interface range gigabitethernet 1/0/47-48
Switch(config-if-range)# ip arp inspection trust
Statik IP Adrese Sahip Cihazlar İçin Arp List:
Switch(config)# ip arp inspection list create YAZICILAR
Switch(config-arp-list)# ip 10.31.3.184 mac 0021.B7EA.FAE7
Switch(config-arp-list)# ip 10.31.3.154 mac 7446.a0af.0fc6
Switch(config-arp-list)# ip 10.31.3.132 mac 0021.B75A.F0A5
Switch(config)# ip arp inspection list assign VLAN50
. - IP Spoofing :
Bu atak tipinde saldırgan IP data paketinin içerisindeki Source IP bölümünü spoof ederek paket doğru Source IP adresinden geliyor süsü verir.
Çözüm :
Switchte IP Source Guard özelliğini etkinleştirmek. Öncelikle bilindiği gibi ortamda bulunan DHCP, bir hosta atanan IP adresini hostun ismi ile birlikte veritabanında tutar.
IP Source Guard özelliği, DHCP Snooping ile birlikte etkinleştirildiğinde ortamdaki DHCP veribananın bir kopyası Switchte bulunan DHCP Snooping Binding Veritabanında tutulur ve hostun gönderdiği pakete istinaden Host-IP adresi kayıtları kontrol edilir. IP Source Guard, sadece DHCP Snooping Veritabanında eşleşen hostun ilgili IP adresinden paket göndermesine izin verecek şekilde port bazında otomatik olarak ACL oluşturur.
Örnek Konfigürasyon :
(Dell PowerConnect 5500 Serisi switchlerde IP Source Guard özelliği bulunmamaktadır. Aşağıdaki Konfigürasyonürasyon Cisco Catalyst İçindir.)
a. User VLAN lerinin Bulunduğu Interface lerde IPSG Enable Edilir.
Switch(config)#interface gigabitethernet 0/0
Switch(config-if)#ip verify source
b. Eğer IP ve MAC Source Birlikte Check Edilmek İsteniyorsa:
Switch(config)#interface gigabitethernet 0/0
Switch(config-if)#switchport port-security
Switch(config-if)#ip verify source port-security
Sonuç:
Switch#show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
——— ———– ———– ————— —————– —-
Et0/0 ip-mac active 192.168.1.15 09:05:AC:4A:C8:03 50
Switch#show ip source binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
—————— ————— ———- ————- —- ——————–
09:02:SA:84:83:01 192.168.1.178 689555 dhcp-snooping 50 Ethernet0/3
03:10:AD:9S:BL:01 192.168.1.176 689549 dhcp-snooping 50 Ethernet0/1
. - MAC Flooding:
Bu saldırı tipinde amaç Switch in CAM tablosunu şişirmektir. Bu amaca ulaşmak için farklı “sahte” Source MAC adreslerinden çok sayıda paket gönderilir. Switch her yeni Source MAC adresini CAM tablosuna yazar ve sonunda CAM tablosu artık yeni kayıt alamaz olur. Bu noktadan sonra artık switch paketleri akıllı bir şekilde “forward” etmek yerine HUB cihazı (aptal switch) gibi davranarak paketleri tüm interfacelerine (paketin geldiği interface hariç diğer tüm interfacelere) “flood” eder. Bu durumda saldırganın yapması gereken tek şey kendisine gereksiz yere “flood” edilmiş olan paketleri sniff etmesidir. Çözüm : Çözüm için birkaç farklı alternatif mevcuttur. İlgili portlara MAC adresleri statik olarak atanabilir ancak bu, yönetimi kolay olmayan bir alternatiftir.
Örnek Konfigürasyon:
Öncelikle switchin MAC Address Learning kapasitesini inceleyelim. (Dell PowerConnect 5500)
Switch# show mac address-table count Capacity : 16384 Free : 15931 Used : 453 Secure : 0 Dynamic : 452 Static : 0 Internal : 1
User VLAN inin bulunduğu Interface de Port Security Enable Ediyoruz:
Switch(config)# interface gigabitethernet 1/0/1
Switch (config-if)# port security
Switch (config-if)# port security max 128 (Maksimum 128 adet MAC Adresi öğren)
Switch (config-if)# port security mode lock (128 dolduğunda eski MACları silip yenileri üzerine yazmak yerine yeni MAC adresi öğrenme, eskileri hafızada tut.)
Switch (config-if)# port security trap 15 (Paketleri discard etmek yerine 15 saniyede bir SNMP Trap gönder)
- HTTP Servisinin Kapatılıp HTTPS Servisinin Açılması:
Cleartext protokoller oturum açma, komut icra etme gibi yönetimsel işlemlerde kesinlikle kullanılmamalıdır.
Örnek Konfigürasyon:
Switch(config)# no ip http server
Switch(config)# crypto key generate rsa
Switch(config)# crypto certificate 1 generate key-generate 2048 Switch(config)# ip http secure-server Switch(config)# ip https certificate 1
Not: Dell N Serisi switchlerde: #crypto certificate 1 generate Enter diyerek sertifika bilgileri girilir. Sonra exit ile çıkılır. #ip https authentication local #ip http secure-server
- Telnet Servisinin Kapatılıp SSH Servisinin Açılması:
Switch(config)# ip ssh server
Switch(config)# no ip telnet server
Not: Dell N Serisi switchlerde: ip ssh server disable
. - Enable Password :
Switch(config)# enable password
. - Password Lenght :
Şifre uzunluğu minimum 8 karakter, büyük ve küçük harf-rakam ve özel ifade içerecek karmaşıklıkta olmalıdır.
Switch(config)# passwords min-length 8
Switch(config)# passwords strength minimum character-classes 4 Switch(config)# passwords lockout 5
. - STP Ataklarından Korunmak İçin Root Guard’ ın Etkinleştirilmesi:
Ortama istenmeden bağlanan Rouge Cihazın STP topolojisini değiştirememesi için Root Guard etkinleştirilmelidir. Bu özellik sayesinde rouge cihaz BPDU paketi gönderdiğinde, paketin geldiği interface in statüsü “root-inconsistent state” e döner ve topolojinin değişmesine izin vermez. İlgili port “root-inconsistent state” e döndüğünde artık bu porttan user data trafiği gönderilmez. Root Guard özelliği switchin diğer switche bağlandığı ve kesinlikle Root Bridge olmaması gereken portlarda etkinleştirilir. Mesela distribution switch ile access switch in bağlandığı portta etkinleştirilerek access switchin Root Bridge olmasının önüne geçilir.
Örnek Konfigürasyon:
Switchin Diğer Switch ile Bağlı Bulunduğu Port:
Switch(config)# interface gigabitethernet 1/0/48
Switch(config-if)# spanning-tree guard root
. - BPDU Guard:
Root Guard’ ın aksine konfigürasyonürasyon user portuna (access) uygulanır. Bilgisayar, tablet vb. cihazların bağlandığı porta switch bağlanıp BPDU paketi göndermesin diye user portlarında konfigürasyonürasyon etkinleştirilir.
Örnek Konfigürasyon:
Switchin PC ye Bağlı Bulunduğu Port:
Switch(config)# interface gigabitethernet 1/0/1
Switch(config-if)# spanning-tree bpduguard enable
. - CDP / LLDP Gibi Protokollerin Sadece Trusted Device ların Bağlı Olduğu Portlarda Açılması:
LLDP (Link Layer Discovery Protocol) switchler arası komşuluğu göstermek için kullanılır. Cisco karşılığı CDP (Cisco Discovery Procotol) dür. Komşuluğa ilişkin
SW# show lldp neighbors Port Device ID Port ID System Name Capabilities TTL ——— —————– ————- —————– ———— —– gi1/0/2 01 0a 6a 7c 5b 0057D2D14F7A: SEP0057D2D14F7A B, T 127 P1 gi1/0/3 01 0a 6a 7c 3d 0057D2D14F81: SEP0057D2D14F81 B, T 178 P1
Örnek Konfigürasyon:
LLDP nin Globalde Açılması:
Switch(config)# lldp run
LLDP nin Access Portta Disable Edilmesi:
Switch(config-if)# no lldp transmit
- TACACS+ ın Enable Edilmesi :
Konfigürasyonürasyon için referans: http://packetlife.net/blog/2010/sep/27/basic-aaaconfiguration-ios/
- Audit ve Erişim Loglarının Etkinleştirilmesi:
Switch(config)#logging audit
Switch(config)#logging cli-command
Switch(config)#logging console informational - Ağda Bulunan IP Adres Çakışmalarının Görülmesi:
Switch#show ip address-conflict Address Conflict Detection Status………….. Conflict Detected Last Conflicting IP Address……………….. 10.47.255.252
Last Conflicting MAC Address………………. 0062.EC31.9839 Time Since Conflict Detected………………. 0 days 16 hrs 38 mins 10 secs
- Storm Control Mekanizmasının Etkinleştirilmesi:
Bu mekanizma “Broadcast” ve “Multicast” stormlarını durdurmak için etkinleştirilir. Switchde, clientların bağlı bulunduğu portlara, cihazı hizmet veremez duruma sokacak kadar fazla multicast ve broadcast paketlerininin gelmesine “storm” (fırtına) denir. Stormun sebebi bir saldırı olabileceği gibi uygulamadaki bir problem sebebi ile istenmeden fazla paket üretilmesi de olabilir.
Çözüm:
Bu istenmeyen durumu önlemek için clientların bağlı bulunduğu portlarda storm-control özelliği etkinleştirilir.
Örnek Konfigürasyon:
Switch(config-if-Gi1/0/1)#storm-control broadcast action shutdown
Switch(config-if-Gi1/0/1)#storm-control broadcast level 80 Switch(config-if-Gi1/0/1)#storm-control multicast action shutdown
Switch(config-if-Gi1/0/1)#storm-control multicast level 80
(Opsiyonel) disable olan portun 3 dakika sonra otomatik olarak enable edilmesi:
Switch(config)#errdisable recovery cause bcast-storm Switch(config)#errdisable recovery cause mcast-storm Switch(config)#errdisable recovery interval 180
- DOS Kontrol Mekanizması Dos Kontrolünü Etkinleştirilmesi:
Switch(config)#dos-control
Linux ve MAC için Default ICMP Request Paketinin Size i 56 Byte; Windows için 32 Byte tır. Boyutu 56 Byte tan Fazla Olan Ping İsteklerini Blokla.
Switc(config)#dos-control icmp 56
TCP Flag Checking i Etkinleştiriyoruz:
TCP Flag SYN ve TCP Source port 1024 den Düşük ise, TCP Control Flag i 0 ve TCP Sequence Number 0 ise, TCP Flagları FIN, URG ve PSH ise ve TCP Sequence Number 0 ise Paketleri Drop Et.
Switch(config)#dos-control tcpflag
First Fragment Checking i Etkinleştiriyoruz:
Minimum TCP Başlık Boyutu 20 Byte tan Düşük olan Paketleri Blokla.
Switch(config)#dos-control firstfrag 20
Source ve Destination Port Checking Mekanizmasını Etkinleştiriyoruz:
Paket İçerisindeki Source Port ile Destination Port Aynı ise Paketi Blokla.
Switch(config)#dos-control sipdip
IP Fragment Checking i Etkinleştiriyoruz:
Normal bir Paketin Fragment Offset Değeri 8 Byte dır. Aşağıdaki Komut Çalıştırıldığında Fragment Offset Değeri 1 olan Paketler Droplanır.
Switch(config)#dos-control tcpfrag
ICMP Error Interval Aşağıdaki komut ile ICMP Hata Mesajları için Burst Interval ve Burst Size Giriyoruz:
Switch(config)#ip icmp error-interval [burst-interval] [burst-size]
Burst Interval:
Paketin Ne Süre Aralığı ile Gönderileceği Burst Size: İlgili Süre Aralığında Gönderilen Paket Sayısı
Default Parametreler:
Switch(config)#ip icmp error-interval 1000 100 (1000 ms de bir 100 mesaj gönder) - Unicast Reverse Path Forwarding:
Router üzerinde client networküne bakan interface lerde uRPF özelliğini etkinleştirerek source ip validasyonu yapabiliriz.
Örnek Konfigürasyon:
Router(config-if)#ip verify unicast source reachable-via rx
Başta da belirttiğim üzere, buradaki temel adımlar ağ cihazlarının güvenliğini sağlamak için çok önemli olmakla beraber denizde katredir.