Günümüzde güvenlik, her büyük kuruluşun en önemli önceliğidir. Bu bağlamda, OSPF kimlik doğrulaması, özellikle ağ bütünlüğü ve veri gizliliğinin esas olduğu ortamlarda çeşitli güvenlik avantajları sağlar.
OSPFv2, üç farklı kimlik doğrulama türünü destekler: Yok (Tip 0), Düz Metin (Tip 1) ve MD5 (Tip 2). Ek olarak, Cisco en yeni yazılım sürümlerinde daha gelişmiş kriptografik kimlik doğrulama (HMAC-SHA) sunmuştur.
Bu laboratuvarda kullanılan EVE-NG dosyasını dersin sonunda indirerek konuyu kendiniz uygulayabilirsiniz.
Neden OSPF Kimlik Doğrulamasına İhtiyacımız Var?
Varsayılan olarak, tüm OSPF etkin arayüzler kimlik doğrulama türü 0'a (Yok) ayarlanmıştır, yani hiç kimlik doğrulama yoktur. Güvenlik açısından bu, varsayılan ayarlarla, kötü niyetli bir cihazın OSPF yönlendirme alanınıza katılmasını ve aşağıdaki şemada gösterildiği gibi yanlış yönlendirme bilgileri enjekte etmesini hiçbir şeyin engellemediği anlamına gelir.
Kimlik doğrulaması yapılmamış bir OSPF ağı, aşağıdakiler gibi çeşitli yönlendirme saldırılarına karşı savunmasızdır:
Yönlendirme Enjeksiyonu: Kontrol düzleminde, kötü niyetli bir cihaz, daha iyi maliyet veya daha kısa maskelerle sahte yönlendirmeler ekleyerek trafiğin yanlış yönlendirilmesine veya hizmetin tamamen reddedilmesine neden olabilir.
Ortadaki Adam (MiM): Veri düzleminde, bu durum aşağıdaki şemada gösterildiği gibi kurumsal trafiğin ele geçirilmesine ve izlenmesine yol açar.
Hizmet Reddi (DoS): Kötü niyetli cihaz ayrıca, ağdaki diğer tüm cihazları aşırı yükleyerek, aşırı sayıda LSA ile ağı doldurabilir.
OSPF kimlik doğrulaması, yalnızca yetkili yönlendiricilerin komşu olmasını ve yönlendirme bilgilerini değiş tokuş etmesini sağlar. Bu, yetkisiz cihazların OSPF ağınıza katılmasını ve ağ kesintilerine neden olabilecek yanlış yönlendirmeler göndermesini önler.
OSPF kimlik doğrulamasının ağ üzerinden akan trafiği korumadığını anlamak önemlidir. Yalnızca yönlendiricilerin değiş tokuş ettiği yönlendirme bilgilerinin bütünlüğünü korur.
Düz Metin Kimlik Doğrulaması nasıl çalışır?
Protokolün desteklediği en temel kimlik doğrulama biçimi olan Düz Metin Kimlik Doğrulaması ile başlayalım.
Aşağıdaki şemada gösterildiği gibi, yönlendiricileri kötü niyetli cihazlardan gelen OSPF mesajlarını kabul etmekten koruyan en temel OSPF güvenlik mekanizmasıdır.
Aynı veri bağlantısındaki yönlendiriciler, o bağlantı üzerinden aynı kimlik doğrulama türünü ve parolayı kullanmalıdır; aksi takdirde komşuluk ilişkileri kuramazlar.
Düz Metin Kimlik Doğrulaması, parolanın OSPF mesajları üzerinden açık metin olarak gönderilmesi anlamına gelir. Bu, en temel güvenlik biçimidir çünkü paketlere erişimi olan herkes parolayı görebilir. Bununla birlikte, hiç parola olmamasından açıkça daha güvenlidir.
Düz Metin Kimlik Doğrulaması nasıl çalışır?
OSPF kimlik doğrulaması arayüz başına etkinleştirilir. Etkinleştirildiğinde, yönlendirici o arayüzde aldığı her yönlendirme güncelleme paketinin kimlik doğrulama anahtarını doğrular. Bağlantıdaki her komşu aynı kimlik doğrulama anahtarını paylaşmalıdır. Anahtar genellikle "parola" olarak adlandırılır ve yapılandırma sırasında her arayüzde ayarlanır. Aşağıdaki şemada gösterildiği gibi, bir yönlendiricide farklı kimlik doğrulama türleri ve anahtarları yapılandırabilirsiniz.
Aşağıdaki trafik yakalama kaydı, düz metin kimlik doğrulaması etkinleştirilmiş bir OSPF hello paketini göstermektedir. Kimlik Doğrulama Türü'nün 1 (yani düz metin) olduğunu ve Kimlik Doğrulama Verisi'nin (parola) açıkça görülebildiğini fark edin. Bu nedenle, bu Kimlik Doğrulama Türü'nün sağladığı güvenlik düzeyi minimum düzeydedir, çünkü trafik yakalama aracına erişimi olan her kötü niyetli kişi parolayı görebilir.
# Traffic capture of a Hello Packet with Plain Text Auth
Open Shortest Path First
OSPF Header
Version: 2
Message Type: Hello Packet (1)
Packet Length: 48
Source OSPF Router: 1.1.1.1
Area ID: 0.0.0.0 (Backbone)
Checksum: 0xd08e [correct]
Auth Type: Simple password (1)
Auth Data (Simple): Cisco
OSPF Hello Packet
Network Mask: 255.255.255.0
Hello Interval [sec]: 10
Options: 0x12, (L) LLS Data block, (E) External Routing
Router Priority: 1
Router Dead Interval [sec]: 40
Designated Router: 10.1.1.2
Backup Designated Router: 10.1.1.1
Active Neighbor: 2.2.2.2
OSPF LLS Data Block
Checksum: 0x7fc6
LLS Data Length: 32 bytes
Extended options TLV
Unknown LLS TLV
Unknown LLS TLV
Parola açık ve kolayca bulunabilir olduğundan, bu kimlik doğrulama türü kuruluşun güvenlik stratejisinde kullanılması önerilmez. Yanlış yapılandırma ve diğer insan hatalarından kaynaklanan kazara komşulukları önlemek için bir araç olarak kullanılabilir, ancak kötü amaçlı yönlendirme saldırılarına karşı etkili değildir.
Açık Metin Kimlik Doğrulamasını Yapılandırma
Cisco IOS-XE, bir yönlendiricide açık metin kimlik doğrulamasını etkinleştirmek için bize iki seçenek sunar.
Arayüz düzeyinde, aşağıdaki iki adımı kullanın:
Adım 1. Arayüz yapılandırma modunda, ip ospf authentication komutunu kullanarak ospf kimlik doğrulamasını etkinleştirin.
Adım 2. ip ospf authentication-key [password] komutunu kullanarak parolayı ayarlayın.
Alan düzeyinde, aşağıdaki iki adımı kullanın:
Adım 1. Yönlendirme işlemi yapılandırma modunda, area [area-id] authentication komutunu kullanarak ospf kimlik doğrulamasını etkinleştirin.
Adım 2. Bu alandaki her arayüz altında, ip ospf authentication-key [password] komutunu kullanarak parolayı ayarlayın.
Alan düzeyindeki yöntemi kullanmak, yapılandırma açısından bir ölçeklendirme sağlar. Yönlendiricinin aynı alanda birden fazla arayüzü varsa (örneğin, Alan 34'te 5 arayüzü olan dahili bir yönlendirici ise), Alan 34'teki tüm arayüzler için Kimlik Doğrulama Türü 1'i (Açık Metin) etkinleştirebilirsiniz. Ardından, arayüz yapılandırma modunda her arayüzün parolasını ayarlayabilirsiniz. Ancak, sonuç olarak, her iki yöntem de yönlendirici arayüzlerinde açık metin kimlik doğrulamasını etkinleştirir.
Yapılandırma Örneği
Şimdi, arayüz düzeyindeki ve alan düzeyindeki yapılandırma yöntemleri arasındaki farkları gösterecek olan aşağıdaki yapılandırma örneğini inceleyelim. Aşağıdaki laboratuvar topolojisini kullanıyoruz.
Şemada gösterildiği gibi, doğrudan birbirine bağlı ve tek bir alan 0 çalıştıran üç yönlendirici bulunmaktadır.
Arayüz seviyesinde OSPF kimlik doğrulamasını etkinleştirelim.
"Cisco" ortak şifresini kullanarak R1 ve R2 arasında açık metin kimlik doğrulamasını yapılandıralım.
R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# int e0/0
R1(config-if)# ip ospf authentication
R1(config-if)# ip ospf authentication-key Cisco
R1(config-if)# end
R2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#int e0/0
R2(config-if)# ip ospf authentication
R2(config-if)# ip ospf authentication-key Cisco
R2(config-if)# end
Kimlik doğrulama etkinleştirildikten sonra, yönlendiriciler aşağıdaki ekran görüntüsünde gösterildiği gibi, gönderdikleri her OSPF paketinin (Hello, LSU, LSR, vb.) OSPF başlığına parolayı eklemeye başlarlar.
Her iki uçta da düz metin kimlik doğrulaması yapılandırıldığında, aşağıdaki kimlik doğrulama dizisi gerçekleşir:
Her yönlendirici, yukarıdaki ekran görüntüsünde gösterildiği gibi, paketin içinde düz metin kimlik doğrulama anahtarı (parola) içeren OSPF mesajları gönderir.
Alıcı yönlendirici, alınan parolayı yapılandırılmış parolasıyla karşılaştırır.
İki anahtar eşleşirse, alıcı yönlendirici OSPF paketini kabul eder. Eşleşmezse, paket yok sayılır.
Alan düzeyinde OSPF kimlik doğrulamasını etkinleştirme.
Şimdi, alan düzeyinde yöntem ve "Admin123" parolasını kullanarak R2 ve R3 arasında kimlik doğrulamasını yapılandıralım.
R2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)# router ospf 1
R2(config-router)# area 0 authentication
R2(config-router)# exit
!
R2(config)# interface e0/1
R2(config-if)# ip ospf authentication-key Admin123
R2(config-if)# end
!
R3# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)# router ospf 1
R3(config-router)# area 0 authentication
R3(config-router)# exit
!
R3(config)# interface e0/0
R3(config-if)# ip ospf authentication-key Admin123456789
% OSPF: Warning: The password/key will be truncated to 8 characters
R3(config-if)# end
!
Hem R2 hem de R3 yönlendiricilerini alan düzeyinde mod kullanarak düz metin kimlik doğrulaması için yapılandırdık. Yan not olarak iki şeye dikkat edin:
Kimlik doğrulama anahtarı 8 karakteri geçmemelidir çünkü paketteki alan 64 bit uzunluğundadır (bir ASCII karakteri 8 bittir). 8 karakterden fazla girerseniz, IOS ilk sekizini parola olarak kabul eder ve geri kalanını yok sayar. Örneğin, "Admin123456789" parolasını yapılandırdık, ancak yönlendirici bunu "Admin123" olarak yorumlar ve geri kalan karakterleri yok sayar.
Parola, soru işareti (?) dahil olmak üzere herhangi bir ASCII sembolü içerebilir; bu, sınav ortamlarında zor olabilir. Cisco IOS'ta, ? karakteri bağlama duyarlı bir yardım olarak kullanılır ve sistem bunu bir yardım isteği olarak yorumladığı için komutlara doğrudan girilemez. "Ctrl-V" tuşuna basıp ardından bir soru işareti ekleyebilirsiniz.
OSPF Düz Metin Kimlik Doğrulamasını Doğrulama
Yapılandırılmış OSPF kimlik doğrulamasını doğrulamak için `show ip ospf`, `show ip ospf interface` ve `show run` komutlarını kullanabilirsiniz.
`show ip ospf` komutu, her bir alana hangi kimlik doğrulama türünün uygulandığını gösterir.
`show ip ospf interface` komutu, her bir arayüze bağlı kimlik doğrulama yöntemini gösterir.
`show run` komutu, kimlik doğrulama yapılandırmasını doğrulamak ve sorun gidermek için en iyi komuttur.
R1# sh ip ospf interface e0/0
Ethernet0/0 is up, line protocol is up
Internet Address 10.1.1.1/24, Interface ID 2, Area 0
Attached via Network Statement
Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
Topology-MTID Cost Disabled Shutdown Topology Name
0 10 no no Base
Transmit Delay is 1 sec, State BDR, Priority 1
Designated Router (ID) 2.2.2.2, Interface address 10.1.1.2
Backup Designated router (ID) 1.1.1.1, Interface address 10.1.1.1
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:06
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Can be protected by per-prefix Loop-Free FastReroute
Can be used for per-prefix Loop-Free FastReroute repair paths
Not Protected by per-prefix TI-LFA
Index 1/1/1, flood queue length 0
Next 0x0(0)/0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 2.2.2.2 (Designated Router)
Suppress hello for 0 neighbor(s)
Simple password authentication enabled
Aşağıdaki komut, alanın düz metin kimlik doğrulamasıyla yapılandırıldığını gösterir.
R2# sh ip ospf
Routing Process "ospf 1" with ID 2.2.2.2
Start time: 00:01:45.301, Time elapsed: 04:00:00.774
Supports only single TOS(TOS0) routes
Supports opaque LSA
Supports Link-local Signaling (LLS)
Supports area transit capability
Supports NSSA (compatible with RFC 3101)
Supports Database Exchange Summary List Optimization (RFC 5243)
Maximum number of non self-generated LSA allowed 50000
Current number of non self-generated LSA 3
Threshold for warning message 75%
Ignore-time 5 minutes, reset-time 10 minutes
Ignore-count allowed 5, current ignore-count 0
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 50 msecs
Minimum hold time between two consecutive SPFs 200 msecs
Maximum wait time between two consecutive SPFs 5000 msecs
Incremental-SPF disabled
Initial LSA throttle delay 50 msecs
Minimum hold time for LSA throttle 200 msecs
Maximum wait time for LSA throttle 5000 msecs
Minimum LSA arrival 100 msecs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
EXCHANGE/LOADING adjacency limit: initial 300, process maximum 300
Number of external LSA 0. Checksum Sum 0x000000
Number of opaque AS LSA 0. Checksum Sum 0x000000
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Number of areas transit capable is 0
External flood list length 0
IETF NSF helper support enabled
Cisco NSF helper support enabled
Reference bandwidth unit is 100 mbps
Area BACKBONE(0)
Number of interfaces in this area is 2
Area has simple password authentication
SPF algorithm last executed 00:15:48.026 ago
SPF algorithm executed 13 times
Area ranges are
Number of LSA 5. Checksum Sum 0x024765
Number of opaque link LSA 0. Checksum Sum 0x000000
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
Maintenance Mode ID: 133285927055344
Maintenance Mode: disabled
Maintenance Mode Timer: stopped (0)
Graceful Reload FSU Global status : None (global: None)
Unutmayın ki, gerçek şifreyi görmenin tek yolu `show run` komutunu çalıştırmak veya `debug IP OSPF packet` komutunu kullanmaktır.
R3# sh run | section ospf
router ospf 1
router-id 3.3.3.3
area 0 authentication
network 10.0.0.0 0.255.255.255 area 0
R3# sh run int e0/0
interface Ethernet0/0
ip address 10.1.2.3 255.255.255.0
ip ospf authentication-key Admin123
end
Çalışmakta olan yapılandırma dosyasında şifrenin açık metin olarak görünmesi güvenlik endişeleri nedeniyle istenmeyen bir durum olabilir. Bunu önlemek için, çalışmakta olan yapılandırma dosyasındaki açık metin şifrelerini şifrelemek üzere aşağıdaki komutu kullanabilirsiniz.
R3# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)# service password-encryption
R3(config)# end
R3#
Şimdi, Eth0/0 arayüzünün çalışan yapılandırmasını kontrol edersek, şifreyi açık metin olarak göremiyoruz.
Dikkat edin, `service password-encryption` komutu OSPF'nin çalışma şeklini etkilemez; yalnızca çalışan yapılandırma dosyasında saklanan tüm açık metin parolaları şifreler. OSPF, kimlik doğrulama anahtarını yine de açık metin olarak OSPF başlığına ekler.