Cisco
routerlardaki güvenlik seviyesi yükseltim işlemi asgari seviyede
aşağıdaki çalışmaları içermelidir.
·
Temel Yapılandırma
·
Servisler
·
Sistem İzleme
·
Yönetim
·
Erişim Denetimi
·
Yönlendirme Yapılandırması
Temel
yapılandırma ile ilgili yapılacak güvenlik seviyesi yükseltim
işlemleri, Sistem Açılış Konfigürasyonu Kontrolü, Karşılama Mesajları
ve HSRP & Korumalı ağ ile ilgili yapılacak çalışmaları içerir.
Cisco
yönlendiricilerin açılış işlemi ROM monitörün aktif hale getirilmesi ile
başlar ve bu prosesin ilk kontrol ettiği şey “config-register”
değeridir. Bahsedilen değerin karşılığı “1” ise sistem ROM'dan veya
flash bellekten açılış işlemine devam eder. Sistem güvenliği açısından
yönlendirici konfigürasyonunda yüklenecek işletim sistemi dosyasının
yerinin ve adının belirtilmesi gerekir.
Yönlendiricinin ve dolayısıyla bu yönlendiricinin hizmet ettiği ağın
güvenliği için yönlendiricinin nereden ve hangi dosyadan açılış işlemini
gerçekleştireceğinin belirlenmesi önemlidir. Bunun için yönlendiricinin
konfigürasyonuna
boot system
flash:işletim_sistemi_dosya_adı
komutu girilmelidir.
Bu
şekilde yönlendiricinin istenilen işletim sistemini yüklendiğinden emin
olunabilir. Bu komut kullanılmaz ise yönlendirici flash bellekte bulunan
ilk dosyayı işletim sistemi dosyası olarak yüklemeye çalışacaktır. Flash
belleğe dizin yapısında istenilenden daha önce okunacak bir dosyanın
herhangi bir şekilde konulması durumunda bu dosya ile yönlendirici ele
geçirilebilir veya istenmeyen işlemleri gerçekleştirmesi sağlanabilir.
Yönlendirici güvenliği açısından fiziksel güvenlik risklerinin
bulunmadığı ortamlarda yönlendiricinin ağ üzerindeki bir TFTP sunucusu
yerine kendi üzerindeki bir donanımdan açılışını gerçekleştirmesi
yönlendirici ve ağ güvenliği seviyesinin yükseltilmesini sağlayacaktır.
boot system
tftp://192.168.1.1/ciscoxxxxxxxxx.bin
Yönlendirici konfigürasyonundaki böyle bir komut yönlendiricinin kendi
üzerindeki işletim sistemi dosyası yerine ağ üzerindeki başka bir
sistemden tftp veya ftp protokollerini kullanarak açılmasını sağlamak
için kullanılan bir komutudur. Yönlendirici konfigürasyonunda böyle bir
satırın bulunması sakıncalıdır. Kaynak sistemin adresini alabilecek
başka bir sistem veya kaynak sistemdeki zafiyetler nedeniyle ilgili
dosyasının değiştirilmesi mümkündür. Bu durumlarında güvenlik riskleri
oluşturacaktır. Yönlendirici açılışları için bu yöntem tercih
edilmemelidir.
Yönlendirici konfigürasyonundaki “boot system rom” komutu kendisinden
önce gelen bir yükleme işleminin başarısız olması durumunda yedek olarak
çalışacak işletim sistemini belirler.
“boot
system flash:isletim_sistemi_dosyası_adı” gibi bir konfigürasyon
satırı olduğu ve bu satırda belirtilen dosyanın bulunmadığı veya
bozulduğu durumda sistemin bir sonraki dosyayı yüklemesini veya hata
durumunda ROM monitor olarak açılması sağlayacaktır.
Karşılama Mesajları
Yönlendiricilere açılan oturumlarda oturum açılan sisteme,
yönlendiriciye erişimlerin kayıt altına alındığı ve yetkisiz girişlerin
yasal süreçlere konu olacağı uyarısını belirtilen karşılama mesajları
vermek yönlendirici güvenliği ve/veya sonrasında olabilecek yasal
süreçler için önemlidir.
Yönlendirici karşılama mesajlarında sadece yetkili kişilerin
erişebileceği, tüm erişimlerin kayıt altına alındığı ve yasal delil
olarak kullanılabileceği, yetkisiz erişim girişimlerinin yasal olmadığı
ve suç olduğu belirtilmelidir.
HSRP & Korumalı Ağ
Hot
Standby Router Protocol (HSRP) cisco yönlendiricilerin yedeklenmesini,
aktif durumda çalışan yönlendiricide sorun olması durumunda yedek
yönlendiricinin devreye girmesini sağlayan ve erişilebilirliği artıran
bir çözümdür. Bu yapının güvenliği için yönlendiricilerin birebirlerini
kontrol ettikleri arabirimlerinin yerel ağdan fiziksel olarak ayrılması
gerekir.
Fiziksel olarak ayrılmamış bir ağ yapısında kullanılan HSRP yönlendirici
yedeklemesi ağ ortamındaki herhangi bir istemcinin yönlendiricilerdeki
HSRP ip adresini alması durumunda yedeklemenin devre dışı kalmasına
sebep olacaktır.
Yönlendirici güvenliği için bazı servislerin aktif bazı servislerin ise
pasif durumda olması gerekir.
Aktif Olması Gereken Servisler
“Service
password-encryption”
“Service password-encryption” servisinin aktif durumda olmaması
yönlendirici konfigürasyonundaki şifrelerin düz metin olarak görünmesine
neden olacaktır.
Örneğin yönlendiriciye SNMP protokolü ve yazma yetkisine sahip SNMP
sözdizimi ile bağlanılması durumunda yönlendirici konfigürasyonunun
alınması mümkün olmaktadır.
Yönlendirici konfigürasyonunun ele geçirilmesi durumunda yönlendirici
üzerindeki şifreler düz metin olarak görülecektir. Bu nedenle “Service
password-encryption” servisinin aktif durumda olması gerekir.
Ayrıca yönlendirici üzerinde oluşacak olay kayıtlarının doğru zaman
bilgisi taşıması ve gerektiğinde doğru olay kaydına ulaşılabilmesi için
“service timestamps debug datetime” ve “service timestamps log datetime
localtime” servislerinin de aktif durumda olması gerekir.
Yönlendiriciye ve/veya yönlendiriciden açılan oturumların izlenebilmesi
ve karşı sistemden yanıt alınamaması durumunda oturumun sonlanmasını
sağlamak için “service tcp-keepalives-in” ve “service
tcp-keepalives-out” servislerinin aktif olması gerekir.
Pasif Olması Gereken Servisler
Cisco
yönlendiricilerde güvenlik açısından bazı servislerin pasif hale
getirilmesi gerekir. Bahsedilen servislerin bazılarının güvenlik
zafiyetleri barındırması ve/veya güvenlik riskleri yaratması nedeniyle
kapatılması önerilir. Ancak burada bahsedilen bazı servislerin
yönetimsel ihtiyaçlar nedeniyle aktif hale getirilmesi gerekebilir.
Özellikle SNMP servisi buna bir örnek olarak gösterilebilir. Böyle bir
durum söz konusu olduğunda ise ilgili servis ile ilgili güvenlik
düzenlemelerinin yapılması gerekir. Örneğin SNMP protokolü ile
yönlendiriciye erişimin erişim denetim listeleri (ACL) ile kısıtlanması
gerekir.
“small servers” servisleri tarafından sunulan echo ve chargen servis
engelleme saldırılarında kullanılabileceğinden bu servislerin
kapatılması gerekir.
Zorunlu olmadıkça aşağıdaki servislerin kapatılması gerekir.
cdp
boot
network
service config
ip
source-route
ip
classless
ip
domain-lookup
service finger
ip
finger
ip
identd
ip
proxy-arp
ip
redirects
ip unreachables
service pad
Yönlendirici konfigürasyonunda bu servisler “no servis_adı”
komutu ile pasif hale getirilir.
Örneğin : no cdp
Servis Zaman İşaretleri
Yönlendiricilerde gerçekleşen pek çok işlemlerin kayıt altına alınması
(log) mümkündür. Kayıt atına alınan bilgilerin de oluşma zamanının doğru
olarak tespit edilebilmesi için zaman bilgilerinin doğru olarak
tutulması gerekir.
Bunun
için yönlendirici konfigürasyonunda aşağıdaki komutların girilmiş olması
gerekir.
service timestamps debug datetime
service timestamps log datetime msec localtime
Syslog
Yönlendiriciler üzerinde oluşan erişim, uyarı, bilgilendirme ve benzeri
mesajların güvenlik açısından, periyodik olarak veya ihtiyaç durumunda
incelenmek üzere kayıt altına alınması gerekir.
Yönlendirici üzerinde özellikle bir düzenleme yapılmadıysa çok az sayıda
mesaj bellekte tutulacaktır. Ancak düzenleme yapılsa dahi kapasite
yönlendiricinin hafızası ile sınırlı ve aynı zamanda yönlendirenin
kapatılması, tekrar başlatılması veya komut ile mesajlar bellekten
silinmektedir. Bu nedenlerle yönlendiriciler üzerinde oluşan mesaj ve
olay kayıtlarının yönlendirici dışında bir sistem üzerinde kayıt altına
alınmaları gerekir. Bu işlem için de Syslog sunucular kullanılır.
Yönlendirici üzerinde oluşan mesaj ve olay kayıtları aşağıdaki
yönlendirici komutları ile Syslog sunucusuna yönlendirilir.
logging ip_adresi
logging facility syslog
Sistem Olay Kayıtları İçeriği
Yönlendiriciler üzerinde oluşan erişim, uyarı, bilgilendirme ve benzeri
mesajların hangilerinin kayıt altına alınacağının belirlenmesi gerekir.
logging trap
informational
Syslog sunucusuna bilgi düzeyindeki mesajlar da dâhil olmak üzere tüm
olay kayıtlarının gönderilmesini sağlar.
logging console
warnings
Yönetici konsolunda sadece uyarı ve daha üst seviyedeki olay
kayıtlarının görüntülenmesini sağlar.
Ayrıca erişim denetim listelerinde ilgili işlemlerin kayıt altına
alınabilmesi için “log” parametresinin kullanılması gerekir
Aşağıdaki örnek SSH protokolü için hazırlanmış erişim denetim listesinin
aynı zamanda bu işlemin kayıt altına alınmasını sağlar.
access-list 101
permit tcp host 10.10.10.1 any eq 22 log
Şifre
Yönlendiricilerin konfigürasyon moduna geçilebilmesi ve VTY, CON gibi
portlardan erişimde kullanıcı adı ve şifre doğrulamasının kullanılması
gerekir.
Konfigürasyon moduna geçiş için kullanılacak şifrenin “enable password”
ile değil “enable secret” ile verilmesi gerekir, “enable password” ile
verilen şifreler kolaylıkla kırılabilir.
Ayrıca yönlendirici konfigürasyonunda girilen tüm şifrelerin düz metin
olarak tutulmaması için “service password-encryption” kullanılması
gerekir.
Yönlendirici üzerinde tanımlanan kullanıcılara atanacak şifrelerin
minimum uzunluklarının da tanımlanması gerekir.
Yönlendirici konfigürasyonlarında şifre güvenliği için aşağıdaki
komutların bulunması gerekir :
service
password-encryption
enable
secret <password>
username yönetici privilege 15 <password>
security
passwords min-length <min-length >
Bağlantı Noktaları Erişimi
Yönlendiricilere VTY olarak bilinen terminal, CON olarak bilinen konsol
ve AUX olarak bilinen auxilary bağlantı noktalarından bağlantı kurmak
mümkündür. AUX bağlantı noktası genellikle yönlendiricilere uzaktan
müdahale için modemle kullanılan bir bağlantı türü olup kapalı
bulundurulması gerekir.
Console bağlantı noktası fiziksel olarak yönlendiriciye bağlanan konsol
kablosu ve COM bağlantı noktası üzerinden terminal emülatör yazılımı ile
bağlantı için kullanılır.
VTY
bağlantı noktaları ise ağ üzerinden erişim için kullanılır.
VTY
ve CON bağlantı noktalarına erişimlerin kullanıcı adı ve şifre
doğrulamasının yanında oturum zamanaşımı ve erişim denetimlerinin
uygulanması gerekir.
VTY,
CON ve AUX bağlantı noktalarının erişim güvenliğinin yükseltilmesi için
asgari seviyede aşağıdaki tanımları barındırmaları gerekir.
line
vty 0 4
password 7 xxxxxxxxxxxxxx
exec-timeout 5 0
access-class 1 in
login
local
transport input ssh
Bu
konfigürasyonda belirtilen “access-class 1 in” komutu için 1 nolu erişim
denetim listesinin tanımlanmış olması ve bu liste içerisinde de
bağlantıya izin verilen kaynak ağ adres tanımının yapılmış olması
gerekir.
line
con 0
password 7 xxxxxxxxxxxxxx
exec-timeout 5 0
login
local
line
aux 0
no
exec
exec-timeout 0 0
no
login
transport input none
transport output none
HTTP Servisi
Yönetimsel olarak zorunlu değilse kapalı bulundurulması gereken bu
servis kullanılmasının zorunlu olduğu durumlarda da varsayılan port
numarasının değiştirilmesi, erişim denetim listesi uygulanması ve kimlik
doğrulama yöntemlerinin uygulanması ile daha güvenli hale
getirilmelidir.
Kullanımı zorunlu değil ise aşağıdaki komut ile kapatılması gerekir.
no ip
http server
Kullanımı zorunlu ise aşağıdaki komutlar ile güvenlik seviyesi
artırılmalıdır.
ip
http access-class ACL#
ACL#
bu servise bağlantı için kullanılacak erişim denetim listesini ifade
eder ve ayrıca tanımlanmış olmalıdır.
ip
http access-class ACL# satırındaki # yerine 11 konularak aşağıdaki gibi
erişim denetim listesi uygulanabilir.
access-list 11 permit host 10.10.10.1 log
access-list 11 permit host 10.10.10.2 log
access-list 11 deny any log
ip http
authentication {aaa|enable|local|tacacs}
HTTP
servisinde kullanılacak kimlik doğrulama mekanizmasını belirler
ip http port
Number
HTTP
servisinin ön tanımlı 80 portu yerine farklı bir porttan çalışmasını
sağlar.
SNMP Servisi
Yönetimsel olarak zorunlu değilse kapalı bulundurulması gereken bu
servis kullanılmasının zorunlu olduğu durumlarda da kullanılacak SNMP
servis sürümünün işletim sistemi destekliyor ise v3 olarak düzenlenmesi
, erişim denetim listesi uygulanması ve kimlik doğrulama yöntemlerinin
uygulanması ile daha güvenli hale getirilmelidir.
Kullanımı zorunlu değil ise aşağıdaki komut ile kapatılması gerekir.
no
snmp-server
Kullanımı zorunlu ise aşağıdaki komutlar ile güvenlik seviyesi
artırılmalıdır.
snmp-server user user1 grp1 v3
snmp-server user user2 grp2 v3 auth md5 pass2
snmp-server group grp2 v3 auth
snmp-server community guclu_sifre RO xx
Yukarıdaki örnekte :
v3
SNMP versiyon 3 kullanılacağını
auth
md5 kimlik doğrulamada parolanın md5 hash bilgisinin kullanılacağını
guclu_sifre firmanın şifre politikalarını uygun bir şifre
RO
SNMP protokolü ile sadece okuma işlemlerinin yapılabileceği
xx
SNMP protokolü için tanımlanan erişim denetim listesi numarasını
ifade etmektedir.
Yukarıdaki xx erişim denetimi listesi için xx yerine 12 yazılarak ip
adresi bazında aşağıdaki bir erişim denetimi uygulanabilir.
access-list 12 permit 10.10.10.1 log
access-list 12 deny any log
Erişim Denetim Listeleri
Cisco
yönlendiricilerde Temel ve İleri Düzey olmak üzere iki ayrı türde erişim
denetim listesi düzenlemek mümkündür. Bununla beraber daha yüksek
güvenlik seviyesi için ileri düzey erişim denetimlerinin kullanılması
tercih edilmelidir. Temel erişim denetimlerinde sadece ağ adresi
denetlenebilirken ileri düzey erişim denetim listelerinde ağ adresinin
yanı sıra protokol ve bu protokole ait bağlantı noktaları da
denetlenebilmektedir.
Temel Erişim Denetim Listeleri
Temel
erişim denetim listeleri 1-99 arasında numara alabilirler ve bu listeler
ip adresi bazında erişim denetim listeleri hazırlanması amacıyla
kullanılabilir.
Erişim denetim listelerinde Beyaz Liste yaklaşımı uygulanmalı
yasaklanacak değil izin verilecek ağ adresleri tanımlanmalıdır.
Tüm
erişim denetim listelerinin son satırı “deny any” olmalıdır.
Erişim denetim listesine uyan tüm başarılı ve başarısız erişim ve erişim
girişimleri kayıt altına alınmalıdır.
Örnek
Temel Erişim Denetim Listesi:
access-list 1 permit 10.10.10.0 0.0.1.255 log
access-list 1 deny any log
access-list 11 permit host 10.10.10.1 log
access-list 11 deny any log
Yukarıdaki 11 nolu erişim denetim listesini VTY bağlantı noktası için
kullanmak istersek :
line
vty 0 4
access-class 11 in
İleri Düzey Erişim Denetim Listeleri
İleri
düzey erişim denetim listeleri 100-199 arasında olabilir ve protokol
yanında port adresleri de erişim denetimlerinde kriter olarak
kullanılabilir.
Erişim denetim listelerinde Beyaz Liste yaklaşımı uygulanmalı
yasaklanacak değil izin verilecek ağ adresleri ve bağlantı noktaları
tanımlanmalıdır.
Tüm
erişim denetim listelerinin son satırı “deny any” olmalıdır.
Erişim denetim listesine uyan tüm başarılı ve başarısız erişim ve erişim
girişimleri kayıt altına alınmalıdır.
Örnek İleri
Düzey Erişim Denetim Listesi:
Örnek
:1
access-list 100 remark telnet erişim denetim listesi
access-list 100 permit tcp host 10.10.10.1 2.2.2.0 0.0.0.255 telnet
access-list 100 deny any log
Örnek
:2
access-list 101 remark Sistem yöneticilerinin SSH erişim denetim listesi
access-list 101 permit tcp host 10.10.10.1 any eq 22 log
access-list 101 deny any log
Yukarıdaki 100 nolu erişim denetim listesini VTY bağlantı noktası için
kullanmak istersek :
line
vty 0 4
access-class 100 in
Yönlendiricilerin hangi ağa hangi yönlendiricinin hangi arabirimi
üzerinden erişeceği yönlendiricilerde yapılan statik yönlendirme
tanımlamaları veya yönlendiricilerde kullanılan dinamik yönlendirme
protokolleri tarafından belirlenir. Statik yönlendirmelerin
kullanılamayacağı ortamlarda hangi dinamik yönlendirme protokolünün
kullanacağı ağ yapısı ve ihtiyaçlar dikkate alınarak belirlenmelidir.
Örneğin IGRP ve EIGRP protokolleri Cisco'ya özgü olup ağ ortamında başka
üreticilere ait yönlendiriciler var ise bu protokollerin kullanılması
uygun olmayacaktır.
Statik Yönlendirme
Yönlendiricilerde dinamik yönlendirme protokolü yerine statik
yönlendirme kullanılması güvenlik ve performans açısından daha uygun
olmakla beraber ağ yapısı, ağ bağlantılarında yük paylaşımı hat
yedeklemesi gibi sebeplerden dolayı her ortamda statik yönlendirme
kullanılamayabilir.
Statik
yönlendirme örneği :
ip
route 0.0.0.0 0.0.0.0 192.168.1.254
ip route
192.168.5.0 255.255.255.0 192.168.4.1
Yukarıdaki statik yönlendirme örneklerinden birincisi bilinmeyen tüm ağ
veya alt ağlara ait paketlerin hangi ağ adresi veya arabirim üzerinden
gönderileceğini belirlerken ikinci örnek ise 192.168.5.0 ağı ile
haberleşme için 192.168.4.1 ağ adresi veya arabiriminin kullanılacağını
belirler.
Ağ
yapısından kaynaklanan zorlayıcı bir neden yok ise statik yönlendirme
tercih edilmelidir.
Dinamik Yönlendirme
Dinamik yönlendirme protokolleri kullanılacak ise ilgili yönlendirme
protokolüne uygun doğrulama ve erişim denetim listeleri uygulanmalıdır.
Dinamik yönlendirme protokollerinin kullanılması durumunda doğrulama
için MD5 kullanılmalıdır.
Aşağıda değişik dinamik yönlendirme protokolleri için konfigürasyon
örnekleri bulunmaktadır.
RIP:
key
chain ripmd5
key 1
key-string RIPpasswd
interface Loopback0
ip
address 10.10.10.10 255.255.255.255
interface Serial0
ip
address 20.20.20.20 255.255.255.252
ip rip
authentication mode md5
ip rip
authentication key-chain ripmd5
router
rip
version 2
network 10.10.10.0
network
20.0.0.0
OSPF:
interface ethernet 0
ip
address 192.168.251.201 255.255.255.0
ip
ospf authentication-key adcdefgh
interface ethernet 1
ip
address 10.56.0.201 255.255.0.0
ip
ospf authentication-key ijklmnop
router
ospf 201
network 10.0.0.0 0.255.255.255 area 10.0.0.0
network 192.168.0.0 0.0.255.255 area 0
area
10.0.0.0 authentication
area 0
authentication
Ayrıca yönlendiriciler üzerinde tutulan yönlendirme tablolarının
güvenlik seviyesinin yükseltilmesi için erişim denetimi uygulanmalı ve
yönlendiricinin hangi ağ adresine sahip yönlendiriciden güncelleme Kabul
edeceği belirlenmelidir.
Yönlendirme tablolarının güncellemelerinde erişim denetimi için
“distribute-list” kullanılmalıdır.
Örnek
:
access-list 1 permit 10.10.10.0 0.255.255.255
router
rip
distribute-list 1 in