Port Security

Switchlerde yetkisiz kişilerin networke erişmesini engellemek için layer 2 seviyesinde uygulanan bir güvenlik yöntemidir.

Yani Layer 2 seviyesinde Mac adresi düzeyinde yapılan saldırıları önlemek için swithclerde port security yapılandırılması uygulanıyor.

Layer 2 seviyesinde Mac tablosu saldırıları CDP saldıırları Arp saldırıları örnek olarak verilebilir. Mesala port security yapılandırılması yapılmamışsa herhangi bir kullanıcı şirket bilgisayarının yerine evinden getirdiği laptopu ethernet kablosuna bağlayıp kolaylıkla iç networke erişebilir bunun gibi oluşabilecek ihlalleri önlemek maksadıyla çok kullanıcılı networklerde port security uygulanıyor.

Port security uygulayarak biz bir switchin herhangi bir portuna bağlanmasını izin verdiğimiz bilgisayar sayısını mac adresi temelinde belirleyebiliyoruz. Bu belirlediğimiz mac adresi dışında hiçbir bilgisayar switchin o portuna bağlanamıyor.

İlk olarak Swithcte kullanılmayan tüm portları kapatmak gerekiyor. Shutdown diyerek kapatabiliyoruz Böylece kullanılmayan portların güvenliği alınmış oluyor.

Port security'nin bir porta uygulanabilmesi için öncelikle o portun manuel olarak yapılandırılmış access port veya trunk port olması gerekiyor. Yani default olarak gelen güvenlik modları port securitye uygulanamıyor.

Port securirty de swithclerin portununda ne kadar mac adresine izin verileceği belirlenebiliyor kaç farklı mac adresinin aktif olabileceği veya hangi mac adreslerinin aktif olabileceği yapılandırılabiliyor bu yapılandırma da 3 farklı yöntem var birincisi switchin portunda çalışacak mac adresleri manuel olarak girilebiliyor.

1) MAC Adresi Manuel Olarak Girilebiliyor

Switch(config-if)#switchport port-security mac-address 000D.4444.3333
Switch(config-if)#switchport port-security maximum 2

Maximum diyip bu sayıyı artırabiliyoruz sadece 1 tane değil birden fazla Mac adresi olsun diyebiliyoruz. Özellikle voip telefonların kullanıldığı ve telefon arkasına bilgisayar bağlandığı konfigurationlarda 2 veya 3 mac adresine izin verilmesi gerekiyor

Onun için birden fazla mac adresi de belirliyebiliyoruz ama ne kadar mac adresi çalışacağını manuel olarak girebiliyoruz şu mac adresleri bu portta çalışssın diye manuel olarak girebiliyoruz.

Bu yöntem tamamen kontrolü sistem yöneticisie bırakıyor sistem yöneticis bunu elle tek tek giriyor.

Dezavantajı çok fazla iş yükü getiriyor. Örnek olarak 48 portlu bir switch var diyelim, her portunda 2 tane mac adresi tanımlaması olsun 96 tane mac adresinin girilmesi gerekiyor. Başka bir yöntem de

2) MAC Adresi Dinamik Olarak Öğrenebiliyor

Zaten Swithclerin yaptığı iş bu. Bu komut ile sadece default olarak 1 tane MAC adresi öğrenebiliyor fakat bu yöntemde de öğrenilen mac adresi sadece RAM de tutulduğu için Switch kapatıp açıldığında Mac adresini tekrar öğrenmesi gerekiyor.

Switch(config-if)#switchport port-security

Bu süreçte yanlış bir mac adresi öğrenme durumu oluşabilir. Örneğin swithin portundan çıkardı kendi PCne taktı ve switch elektrik gitti geldi kapatılıp açıldı yeni mac adresini öğreniyor bunu güvenli olarak görüyor. 3. yöntem ise hem dinamik olarak öğrensin hem de güvenli olsun derseniz o da 3.yöntem.

Bu yöntemde ise ilk öğrenmiş olduğu mac adresini nvrame yazabiliyor switch reload yapıldığında mac adresini unutmuyor.

3) Mac Adresi Dinamik Olarak Öğrenilip Kaydediliyor.

Switch(config-if)#switchport port-security mac-address sticky

Birinci öğrendiğini kayıt ediyor. Artık switch kapatıp açılsa dahi, unutmuyor. O mac adresini takip ediyor, sadece o mac adresine sahip bilgisayar o porta bağlanabiliyor.

Port security uyguladık port security uyguladığımızda bu uygulamış olduğumuz port securirtye yönelik bir ihlal validation olduğunda port security buna karşı önlem olarak portta farklı pozisyonlar alabiliyor. portu kapatabiliyor kısıtlayabiliyor veya kapatabiliyor.

Shutdown; Kapat

Switch(config-if)#switchport port-security violation shutdown

Restrict; Kısıtla

Switch(config-if)#switchport port-security violation restrict

Protect;Koru

Switch(config-if)#switchport port-security violation protect

Shutdown = ilgili port tamamen kapatılıyor yani hangi porta uyguladıysak o port kapatılıyor farklı mac adresli cihaz taktığımızda error-disabled hatası veriyor sonrasında doğru portu taksak bile açılmıyor. Sistem yöneticisi elle bunu açmak zorunda

Port açılmadığı sürece veri iletimi yapılamıyor

Swithclerde biz eğer bir yapılandırma yapsazsak yani bu validation ile alakalı bir yapılandırma yapmazsak shutdown olarak geliyor ve en güvenli olan da bu.

Restrict == Burada da port tamamen kapatılmıyor veri paketleri yani o mac adresi doğru olmayan cihaxdan gelen veri paketleri drop ediliyor düşürülüyor. Sysloga, syslog mesajları üretiliyor. Yani log mesajları üretiliyor. Bu öğrenilen mac adresli cihaz porta tekrar takıldığında yani doğru mac adresli cihaz tekrar takıldığında veri iletimi başlıyor. Burada tamamen bir kapatma yok. Bir ihlal olduğunda o ihlal raporlanıyor, loglanıyor ve oradan gelen veriler kabul edilmiyor. Log atıyor ama doğru mac adresli cihaz takıldığında sistem çalışmaya devam ediyor. Kısaca İhlal olduğunu görebilyorsunuz. Shutdown dan daha az güvenli

Protected == Port tamamen kapatılmıyor restricteki gibi bilinmeyen yerden gelen veri paketleri drop ediliyor. Burada bir koruma var Fakat burada syslog mesajı gönderilmiyor burada bir şey yapılmıyor

ÖRNEK

Dinamik olarak gelen portlarda port security uygulanamıyor.

Bunun için önce access veya trunk yapmamız gerekiyor

Switch(config)#interface fastEthernet 0/1

Switch(config-if)#switchport mode access

Switch(config-if)#switchport port-security

Artık switchport security enable olmuş oldu. sh run ile bakalım

!

interface FastEthernet0/1

switchport mode access

switchport nonegotiate

switchport port-security

!

Port security dediğimizde ise default değerleri görebiliyoruz. Defaultta sadece bir tane mac adresine izin veriliyor. Herhangi bir violation yok (0), validation durumunda Shutdown

Burada henüz öğrenme olmamış, network içerisinde bilgisayarlardan bir tanesi ping attığımızda öğrenecek. Örnek olarak PC1 den ping attığında bunu öğrenecek ve yazıyor olacak. PC1'in Manuel olarak mac adresini işleyelim.

Switch(config-if)#switchport port-security 00E0.1111.1111

Şuanda sadece bir adet mac adresi öğretmiş olduk. Zaten defaultta 1 adet geliyordu.

Artık maksimum mac adresi 1 ve toplam mac adresi de 1 oldu.

Biz burada static olarak PC1'in mac adresini girdiğimiz için statik olarak öğrendi ve PC1 den PC3 e ping attık bu sefer ise dinamik olarak PC3ün mac adresini öğrenmiş oldu. Şuan herhangi bir violation yok. PC2 aynı Hub üzerinde PC2 de switch üzerinde iletişime geçmek istiyor. Bizim burada herhangi bir violationda default olarak shutdowndu. Yani herhangi bir ihlal olduğunda port direkt olarak kapatılıyor olacak.

Gördüğünüz gibi herhangi bir violation olduğunda port kapatıldı.

Port status'umuz secure ve shutdown durumda. Security Violation Count'a baktığımızda ise 1 tane artıyor.

Last Mac adres ise bizim ihlal oluşturan PC2'miz.

Port tamamen kapatılmış oldu. Port tamamen kapatıldığı için bunu sistem yöneticisi açması gerekiyor.

Portu açmak için önce shutdown yapıyoruz


Switch(config)#interface fastEthernet 0/1
Switch(config-if)#shutdown 

%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
Switch(config-if)#no shutdown 
Switch(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

Portumuz up duruma geldi ve PC2mizin mac adresini yazmış oldu.

Bu porta bağlanacak olan mac adresi sayısı belirlenebiliyor.

Switch(config)#interface fa0/1

Switch(config-if)#switchport port-security ?
aging Port-security aging commands
mac-address Secure mac address
maximum Max secure addresses
violation Security violation mode
<cr>

Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security mac-address 00E0.1111.1111
Switch(config-if)#switchport port-security mac-address 0004.2222.2222

PC1 den en son veri almış oldu.

Dinamik Olarak Öğrenme

Switch>en
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#int fa0/2
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport port-security 


Switch#sh port-security 
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
               (Count)       (Count)        (Count)
--------------------------------------------------------------------
        Fa0/1        2          2                 0         Shutdown
        Fa0/2        1          0                 0         Shutdown
----------------------------------------------------------------------


Switch#sh port-security address 
			Secure Mac Address Table
-------------------------------------------------------------------------------
Vlan	Mac Address	Type			Ports		Remaining Age
								(mins)
----	-----------	----			-----		-------------
1	0004.2222.2222	SecureConfigured	FastEthernet0/1		-
1	00E0.1111.1111	SecureConfigured	FastEthernet0/1		-
------------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 1
Max Addresses limit in System (excluding one mac per port) : 1024

Biraz sonra kendisi dinamik olarak öğrendiğinde adresler buraya ekleniyor olacak.

PC3ten ping attım. Ağdaki herhangi bir bilgisayara şuanda Switch mac adresi öğrenmiş oldu.

Switch#sh port-security address 
			Secure Mac Address Table
-------------------------------------------------------------------------------
Vlan	Mac Address	Type			Ports		Remaining Age
								(mins)
----	-----------	----			-----		-------------
1	0004.2222.2222	SecureConfigured	FastEthernet0/1		-
1	00E0.1111.1111	SecureConfigured	FastEthernet0/1		-
1	0010.3333.3333	DynamicConfigured	FastEthernet0/2		-
------------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 1
Max Addresses limit in System (excluding one mac per port) : 1024

Dinamik olarak öğrendi.

Switch#sh port-security interface fa0/2
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0010.3333.3333:1
Security Violation Count   : 0

Maksimum mac adresi 1 taneye izin veriyor. Şuanda 1 tane mac adresi var. En son veri iletimi 0010.3333.3333 PC'den yapılmış. Herhangi bir violation yok.

Running-configuration içine baktığımızda. fa0/2 için bir mac adresi girili gözükmüyor.

interface FastEthernet0/1
 switchport mode access
 switchport nonegotiate
 switchport port-security
 switchport port-security maximum 2
 switchport port-security mac-address 0004.2222.2222
 switchport port-security mac-address 00E0.1111.1111
!
interface FastEthernet0/2
 switchport mode access
 switchport nonegotiate
 switchport port-security
!

Bu şu anlama geliyor. Dinamik olarak öğrendiğinde Switchi biz kapatıp açtığımızda bu öğrenmiş olduğu mac adresi gidiyor bu sefer tekrar açtığımızda yenisini öğreniyor. Fakat bu yenisini öğrenidğinde bu bizim istediğmiz olmayabiliyor.

PC4 ten ping attık ve violation oluştu.

En son PC3ü dinamik olarak öğrenmişti. Bu Switchi kapatıp açtığımızda artık bu kalmayacak. Sh run'da da zaten görmüyoruz.

Switch#sh port-security address 
			Secure Mac Address Table
-------------------------------------------------------------------------------
Vlan	Mac Address	Type			Ports		Remaining Age
								(mins)
----	-----------	----			-----		-------------
1	0004.2222.2222	SecureConfigured	FastEthernet0/1		-
1	00E0.1111.1111	SecureConfigured	FastEthernet0/1		-
------------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 1
Max Addresses limit in System (excluding one mac per port) : 1024

İstemediğimiz bir PCden ping attığımızda artık dinamik olarak onu yazacak.

Kapatma yapmasında veri iletimi devam etsin istersek ise Restrict kullanmamız gerekiyor. Tekrardan PC4ü dinamik olarak öğrettik.

Switch#sh port-security address 
			Secure Mac Address Table
-------------------------------------------------------------------------------
Vlan	Mac Address	Type			Ports		Remaining Age
								(mins)
----	-----------	----			-----		-------------
1	0004.2222.2222	SecureConfigured	FastEthernet0/1		-
1	00E0.1111.1111	SecureConfigured	FastEthernet0/1		-
1	0001.4444.4444	DynamicConfigured	FastEthernet0/2		-
------------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 1
Max Addresses limit in System (excluding one mac per port) : 1024



Switch(config)#interface fa0/2
Switch(config-if)#switchport port-security violation ?
  protect   Security violation protect mode
  restrict  Security violation restrict mode
  shutdown  Security violation shutdown mode
Switch(config-if)#switchport port-security violation 
Switch(config-if)#switchport port-security violation restrict

restrict yaptığımızda artık portu kapatmayacak. Ama PC3 ten gelen paketleri geçirmeyecek. PC4 paketleri geçmeye devam edecek. Sadece buradaki violation count artacak. Yani syslog mesajı üretip gönderiyor olacak.

!
interface FastEthernet0/1
 switchport mode access
 switchport nonegotiate
 switchport port-security
 switchport port-security maximum 2
 switchport port-security mac-address 0004.2222.2222
 switchport port-security mac-address 00E0.1111.1111
!
interface FastEthernet0/2
 switchport mode access
 switchport nonegotiate
 switchport port-security
 switchport port-security violation restrict 
!

Default olanı(shutdown) seçmediğimizde Running-config'de görülmüyor ama default olanı seçmediğimizde(Restrict) olanı görünüyor. PC3 ten trafik oluşturalım. Paketler iletilmedi

Switch#sh port-security int fastEthernet 0/2
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0010.3333.3333:1
Security Violation Count   : 4

Violation 4 artmış oldu. ve violation PC3 den gelmiş (0010.3333.3333)

Sticky Kullanarak Öğrenme

Sticky komutu ile öğrenmiş olduğu mac adresini NVRAM'e yazdıralım.

Switch(config)#int fa0/3
Switch(config-if)#switchport port-security mac-address sticky 

Bu öğreneceği mac adresini Running Configurasyona yazacak. Öğretirken de ilk bağladığımız bilgisayar bizim kullanmak istediğimiz bilgisayar olacak.Switch kapatılıyor açılsa dahi ikinci bilgisayarı öğrenmeyecek. PC5ten ping atalım.

Switch#sh port-security int fastEthernet 0/3
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 00E0.5555.5555:1
Security Violation Count   : 0


Switch#sh port-security address 
			Secure Mac Address Table
-------------------------------------------------------------------------------
Vlan	Mac Address	Type			Ports		Remaining Age
								(mins)
----	-----------	----			-----		-------------
1	0004.2222.2222	SecureConfigured	FastEthernet0/1		-
1	00E0.1111.1111	SecureConfigured	FastEthernet0/1		-
1	00E0.5555.5555	SecureSticky		FastEthernet0/3		-
------------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 1
Max Addresses limit in System (excluding one mac per port) : 1024


sh run
!
interface FastEthernet0/3
 switchport mode access
 switchport nonegotiate
 switchport port-security
 switchport port-security mac-address sticky 
 switchport port-security mac-address sticky 00E0.5555.5555
!

Bu haliyle biz reload yapsak bile gitmeyecek.. Bu şekilde hem dinamik olarak öğrettik hem de NVRAM'e (running configurasyona) bunu yazdırmış olduk.

Violation Mode Default olarak shutdown biz bunu Protect olarak yapalım.

Switch(config-if)#int fa0/3
Switch(config-if)#switchport port-security  violation protect 

Switch#sh port-security int fa0/3
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Protect
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 00E0.5555.5555:1
Security Violation Count   : 0


PC5 gidiyor ama PC6'yı gidemiyor. ve Violation count artmıyor

PC6 dan bir veri iletişimi olmuş ama (0002.6666.6666) Syslog Mesajı oluşmadı sadece koruma yaptı. Yani PC6 dan gelen paketleri geçirmedi. PC5 den paketler geçmeye devam etti.

Last updated