Güvenli Yönetim Sistemleri

Güvenli Yönetim Sistemleri

Bugünün odak noktası, güvenli yönetimdir. Yönetim düzlemi trafiği, Telnet, SSH ve TFTP gibi işlemler ve protokoller kullanılarak ağ aygıtları veya ağ yönetim istasyonları tarafından oluşturulur. Yönetim düzlemi, bilgisayar korsanları için çok çekici bir hedeftir. Bu bölümde cihaz ve yönetici arasındaki bilgi akışını güvence altına almak için kullanılabilecek farklı yönetim sistemlerine, protokollere ve araçlara bakacağız.

Yönetim Düzlemi Güvenliği-Management Plane Security

Yönetim düzleminin güvenliğini sağlarken, cihaz erişimini kilitlemenin yanı sıra güvenli yönetim protokollerini kullanmayı düşünmek önemlidir.

Erişim Güvenliği

Konsolda veya vty hatları aracılığıyla erişim güvenliğini artırmak için kullanılabilen birden fazla yönlendirici yapılandırma komutu vardır. Aşağıdaki tablo  kullanışlı seçeneklerden bazılarını özetlemektedir. Örnek olarak Cisco IOS komutları kullanılmıştır.

Komut Açıklama
security password min-length length

Örnek: security password min-length 12

Yapılandırılan tüm parolaların en az belirli bir uzunlukta olmasını sağlar. Varsayılan değer altı karakterdir. Örnekteki komutla konsol, enable ve vty parolaları için en az 12 karakter kullanma zorunlu kılınmıştır.
service password-encryption Tüm düz metin parolaları tip 7 şifrelemeyi kullanarak şifreler.
enable algorithm-type [md5 | scrypt | sha256] secret plaintext-password

 

Eski MD5 algoritmasını kullanmak yerine tip 8 (sha256) veya tip 9 (scrypt) gizli şifre oluşturulmasına izin verir.
username name algorithm-type [md5 | scrypt | sha256] secret plaintext-password

Örnek: username demo8 algorithm-type sha256 secret cisco

 

Eski MD5 algoritmasını kullanmak yerine bir tür 8 (sha256) veya tür 9 (şifreleme) gizli parolası kullanarak yerel bir veritabanı girişi yapılandırır. Örnekte kullanıcı adı olarak demo8 parola olarak cisco yapılandırılmıştır. Yapılandırılan parola SHA 256 kullanılarak hashlenir.
login local Konsol veya vty hattı kimlik doğrulaması için yerel bir veritabanı kullanımını yapılandırır. (Konsol veya vty hattı altında yazılır)
transport input ssh Telnet yerine yalnızca gelen SSH bağlantılarına izin verir (vty hattı altında yazılır)
login block-for seconds attempts tries within seconds

Örnek:login block-for 180  attempts 3 within 60

Belirli bir süre içinde belirli sayıda başarısız oturum açma girişiminden sonra oturum açmayı devre dışı bırakır. Örnekte 60 saniye boyunca 3 defa hatalı giriş yapılması durumunda oturum açma girişimi 180 saniye boyunca engellenir.
login quiet-mode access-class [acl-name | acl-number ACL, yetkili cihazların her zaman bağlanabilmesini sağlamak için izin verilen ana bilgisayarları tanımlar.
login delay seconds Başarısız oturum açma denemeleri arasında kullanıcının beklemesi gereken saniye süresini belirtir.
login on-success log [every login]

login on-failure log [every login]

Başarılı ve başarısız oturum açma girişimlerini günlüğe (log) kaydeder.

 

NOT: enable secret komutu ile parola belirlediğinizde MD5 ile hash alınır. İleride göreceğimiz gibi bu çok güvenli değildir, Jhon The Ripper gibi araçlarla çok kolaylıkla kırılabilir.

 

 SSH ve HTTPS ile Güvenli Erişim

SSH, bir Cisco IOS cihazının komut satırına erişmek için Telnet’ten daha güvenli bir yöntem sağlar. (Youtube kanalımda Telnet Yapma Yeğen isimli videoyu izlemenizi tavsiye ederim.  Bunun nedeni, SSH’nin gizlilik (şifreleme), kaynak kimlik doğrulaması (genel / özel anahtar çiftleri) ve veri bütünlüğü (karma algoritmalar) için kriptografik teknoloji kullanmasıdır. Aynısı, aygıta GUI erişimi için HTTP yerine HTTPS kullanmak için de geçerlidir. Aşağıdaki örnek yapılandırma Cisco cihazlarda SSH ve HTTPS’yi etkinleştirmek için gerekli yapılandırmayı gösterir.

Router(config)# hostname R1

R1(config)# ip domain-name sirket.local

R1(config)# crypto key generate rsa modulus 1024

R1(config)# ip ssh version 2

R1(config)# username Admin algorithm-type scrypt secret Cisco12345

R1(config)# line vty 0 4

R1(config-line)# login local

R1(config-line)# transport input ssh

R1(config-line)# exit

R1(config)# no ip http server

R1(config)# ip http secure-server

R1(config)# ip http authentication local

Örnekte, Admin kullanıcısı bir tip 9 gizli şifre ile konfigüre edilmiştir. Yönlendiriciye, her ikisi de 1024 bit RSA anahtarı oluşturmak için gerekli olan bir hostname adı ve bir alan adı verilmiştir. Vty hatlarında yalnızca SSH sürüm 2 bağlantıları kabul edilecek ve yerel veritabanı kullanılarak kimlik doğrulaması yapılacaktır. HTTP sunucusu devre dışı bırakıldı ve HTTPS sunucusu etkinleştirildi ve kimlik doğrulama için yerel veritabanını kullanmak üzere yapılandırıldı.

Her ne kadar HTTP kapatılıp HTTPS açılması cihaza güvenli bir şekilde web arayüzünden erişim olanağı sağlasa da cihazın İnternet’e açılması ve varsayılan veya düşük güvenlikli kullanıcı adı parola kullanımı Shodan (www.shodan.io) gibi arama motorlarında yapılacak basit bir arama ile erişilmesine neden olacaktır. Şekilde Shodan’da yapılan bir arama ile 200 OK http başarılı kodu dönen cihazlar görüntülenmiştir.

Syslog

Ağ cihazlarından sistem mesajlarına erişmenin en yaygın yöntemi, RFC 5424’te açıklanan syslog adlı bir protokol kullanmaktır. Syslog, olay mesajı toplayıcılarına IP ağları üzerinden olay bildirim mesajlarını göndermek için Kullanıcı Datagram Protokolü_User Datagram Protocol (UDP) bağlantı noktası 514’ü kullanır. Cisco yönlendiricileri, syslog mesajlarını birkaç farklı hedefe gönderecek şekilde yapılandırılabilir.

■ Günlük arabelleği- Logging buffer: Mesajlar, yönlendirici belleğinde (RAM) bir süre saklanır.

■ Konsol: Konsol günlük kaydı varsayılan olarak etkindir.

■ Terminal hatları: Günlük mesajları, bir Telnet veya SSH oturumu sırasında görüntülenmek üzere vty hatlarına gönderilebilir.

■ Syslog sunucusu: Günlük mesajları, bir syslog arka plan programı çalıştıran harici bir cihaza iletilebilir.

 

Syslog, 0’dan 7’ye kadar sekiz önem derecesini-severity levels tanımlar. Sayı ne kadar düşükse, sorun o kadar ciddi olur. Syslog ayrıca her bir seviyeyle ilişkilendirilecek standart isimleri tanımlar. Aşağıdaki tabloda sekiz düzeydeki sistem günlüğü mesajlarını listelenmiştir.

 

Seviye İsim Açıklama
0 Emergencies -Acil durumlar Sistem kullanılamaz.
1 Alerts-Alarmlar Acil eylem gerekli.
2 Critical-Kritik Kritik durumlar.
3 Errors -Hatalar Hata durumları
4 Warnings -Uyarılar Uyarı durumları
5 Notifications -Bildirimler Normal, ancak önemli durumlar
6 Informational -Bilgilendirici Bilgi mesajları.
7 Debugging -Hata ayıklama Açık olan mevcut hata ayıklamaya dayalı son derece ayrıntılı bilgiler.

 

Aşağıda Cisco yönlendiricide örnek bir Syslog yapılandırması gösterilmiştir.

R1(config)# logging host 192.168.1.25

R1(config)# logging source-interface Loopback0

R1(config)# logging trap notifications

R1(config)# no logging console

 

Yukarıdaki örnekte R1, 192.168.1.25’te syslog sunucusuna syslog gönderecek şekilde yapılandırılmıştır. Yalnızca önem düzeyi 5 veya daha düşük olan iletiler (yani, 0–5 düzeyleri) sunucuya gönderilecektir. Syslog mesajları harici bir sunucuya gönderildiği için, konsolda logları gösterme CPU kaynaklarından tasarruf etmek için devre dışı bırakıldı. Günlük yapılandırmasını ve arabelleğe alınan syslog mesajlarını görüntülemek için show logging komutunu kullanın.

 

Basit Ağ Yönetimi Protokolü-Simple Network Management Protocol (SNMP)

 

Ağda konfigürasyon yönetimi için bir seçenek te SNMP’dir. SNMP, ağ yöneticilerinin bir IP ağındaki cihazları yönetmesine izin vermek için geliştirilmiştir. SNMP, ağ yönetim sistemi-network management system (NMS) ile ilgili üç unsurdan oluşur:

 

■ SNMP yöneticisi-SNMP Manager: Bir SNMP  ağ yönetimi uygulamasını kontrol eder.

■ SNMP aracısı-SNMP Agent: SNMP aracısı, yönetilen bir cihazda (sunucu, yönlendirici veya anahtar gibi) çalışan bir yazılım parçasıdır.

■ Yönetim Bilgi Tabanı-Management Information Base (MIB): Yönetilen bir cihazın kaynakları ve etkinliği hakkındaki bilgiler, bir dizi nesne tarafından tanımlanır. Bu yönetim nesnelerinin yapısı, yönetilen bir cihazın MIB’si tarafından tanımlanır.

 

SNMP yöneticileri ve aracıları, bilgi alışverişi yapmak için UDP kullanır. SNMP aracıları UDP bağlantı noktası 161’i dinler ve SNMP yöneticileri, UDP bağlantı noktası 162’yi dinler.

Bir ağ yönetim sistemi ile bir ağ cihazı arasında SNMP iletişimi için üç ana mekanizma vardır:

■ GET: Yönetilen bir cihazdan bilgi almak için bir SNMP GET mesajı kullanılır.

■ SET: Bir SNMP SET mesajı, yönetilen bir cihazda bir değişken ayarlamak veya yönetilen bir cihazda bir eylemi tetiklemek için kullanılır.

■ Tuzak-Trap: Bir SNMP tuzak mesajı, bir ağ cihazının bir ağ yönetim istasyonuna istenmeyen güncellemeler göndermesine veya SNMP yöneticisini önemli bir olay hakkında bilgilendirmesine olanak tanır.

 

SNMP, üç sürüm olarak geliştirilmiştir. SNMP sürüm 1 ve 2 fazla güvenlik sağlamaz. SNMP işlemleri yalnızca topluluk dizeleri-community strings tarafından kontrol edilir. Topluluk dizeleri salt okunur veya okunur-yazılabilir olabilir. NMS, geçerli bir salt okunur veya okuma yazma topluluk dizesi sağlarsa, GET istekleri karşılanacaktır. SET istekleri, NMS’nin bir okuma yazma topluluk dizesi sağlamasını gerektirir. SNMP sürüm 1 ve 2 ile, topluluk dizeleri de dahil olmak üzere tüm veriler açık metin olarak gönderilir.

Dikkat! : SNMP 1 ve 2. sürümle yapılandırılmış bir yönlendiricinin yapılandırması  Metasploit Framework kullanılarak parolalar kırılabilir. Bu nedenle güvenlik açısından SNMP 3. sürüm kullanılması önerilir.

SNMPv3, iyi geliştirilmiş bir güvenlik modeli ekler. SNMPv3 kimlik doğrulaması, kaynağı ve veri bütünlüğünü doğrular. Yani SNMPv3, mesajın kaynağını ve mesajın geçiş sırasında değiştirilmediğini doğrular. SNMPv3 ayrıca şifreleme yoluyla gizlilik sunar. SNMPv3, üç çalışma modu sunar:

■ noAuthNoPriv: Güvenlik düzeyi, kimlik doğrulama için yalnızca topluluk dizesini veya bir kullanıcı adını kullanır. Kriptografik karma veya şifreleme desteklenmez.

■ authNoPriv: Güvenlik düzeyi, kimlik doğrulama bilgilerinin güvenliğini sağlamak için bir kriptografik karma kullanır, ancak veriler için şifreleme desteklenmez.

■ authPriv: Güvenlik düzeyi, kimlik doğrulama bilgilerinin güvenliğini sağlamak için bir bir kriptografik karma kullanır ve ayrıca veri gizliliği için şifreleme kullanır.

 

Aşağıdaki tablo SNMPv1, SNMPv2 ve SNMPv3 arasındaki farkları özetlemektedir.

Model Çalışma Modu Kimlik Doğrulama Şifreleme Sonuç
SNMPv1 noAuthNoPriv Community string Yok Topluluk dizesi eşleşmesiyle kimlik doğrulaması yapar
SNMPv2 noAuthNoPriv Community string Yok Topluluk dizesi eşleşmesiyle kimlik doğrulaması yapar
SNMPv3 noAuthNoPriv

 

AuthNoPriv

 

 

AuthPriv

Kullanıcı adı

 

MD5 veya SHA

 

 

MD5 veya SHA

Yok

 

Yok

 

 

DES-3DES veya AES

Bir kullanıcı adıyla doğrular

 

Kimlik doğrulama için HMAC MD5 veya HMAC SHA algoritmaları kullanır

 

Kimlik doğrulama için HMAC MD5 veya HMAC SHA algoritmaları sağlar; kimlik doğrulamaya ek olarak DES, 3DES veya AES şifreleme sağlar

 

 

SNMP’nin tüm versiyonları MIB konseptini kullanır. MIB, yapılandırma ve durum verilerini bir ağaç yapısında düzenler. MIB’deki nesnelere, ağaç kökünden nesneye giden yolu belirten nesne kimlikleri-object ID (OID) ile başvurulur.

 

Herhangi bir cihaz için MIB ağacı, birçok ağ cihazında ortak olan değişkenlere sahip dalları ve bu cihaza veya satıcıya özgü değişkenlere sahip dalları içerir. Örneğin, yaygın bir dal, “IP” bölümü altında “ipRouteTable” adlı bir alt bölüm içeren “MIB-2” dir. Bu belirli alt bölüm veya nesne, SNMP yöneticisi uygulamasının yönetilen aygıtın IPv4 yönlendirme tablosunu almasına olanak tanır. Bu nesne için OID referans numarası 1.3.6.1.2.1.4.21 olacaktır.

NOT: Diğer OID değerlerini ve başvurdukları nesneleri araştırmak için Cisco  SNMP Object Navigator sayfasına bakınız.

 

Kullanıcı tabanlı güvenli SNMP’yi yapılandırma adımları aşağıdaki gibidir:

  1. Bir SNMP engine ID kimliği yapılandırın. Bu, yönetilen cihazı tanımlayan benzersiz bir değerdir, tipik olarak cihazın IP adresinin ondalık bir temsilidir.
  2. MIB ağacına kullanıcı erişimini tanımlamak ve sınırlamak için bir SNMP görünümü tanımlayın.
  3. Bir SNMP grubunu, sürümünü ve şifreleme politikasını tanımlayın.
  4. Bir SNMP kullanıcısı tanımlayın, bunu bir SNMP grubuna atayın ve kimlik doğrulama ve şifreleme bilgilerini belirtin.
  5. SNMP grubuna ve / veya SNMP kullanıcısına bir ACL tanımlayın ve uygulayın.
  6. SNMP erişimine izin verilecek bir ana cihaz tanımlayın.

 

Aşağıdaki örnek, SNMPv3’ün nasıl yapılandırılacağını ve güvenli hale getirileceğini gösterir.

R1(config)# ip access-list standard SNMP_FILTER

R1(config-std-acl)# permit host 10.10.10.50

R1(config-std-acl)# exit

R1(config)# snmp-server engineID local 192168100254

R1(config)# snmp-server view myview mib-2 included

R1(config)# snmp-server view myview cisco included

R1(config)# snmp-server group ADMIN v3 priv write myview access SNMP_FILTER R1(config)# snmp-server user ALICE Admin v3 auth sha Cisco123 priv aes 128 Cisco456

R1(config)# snmp-server host 10.10.10.50 version 3 priv Alice

 

Yukarıdaki örnek yapılandırmada, ALICE, ADMIN grubundaki bir SNMP kullanıcısı olarak yapılandırılmıştır. SNMP, sürüm 3’e ayarlanmıştır ve hem SHA kimlik doğrulamasını hem de AES 128-bit şifrelemeyi destekler. “MIB-2” ve “cisco” ağaçlarının tamamı SNMP yöneticisi tarafından görüntülenebilir. ADMIN grubuna, yalnızca 10.10.10.50 aygıtının yönlendirici R1 üzerinde çalışan SNMP aracısına erişmesine izin veren bir ACL uygulanır.

 

Ağ Zaman Protokolü-Network Time Protocol (NTP)

NTP, ağdaki cihazların tarih ve saat ayarlarını senkronize etmek için otomatik bir yöntemdir.

NTP, UDP bağlantı noktası 123’ü kullanır ve RFC 1305’te belgelenmiştir. NTP sürüm 3, bir saldırganın NTP istemcilerine kötü amaçlı zaman güncellemeleri göndermesini engelleyen şifreleme kimlik doğrulamasını kullanır. NTP sürüm 4, RFC 5905’te açıklanmıştır. IPv6 desteği, daha hassas saat disiplini algoritmaları ve dinamik sunucu keşif şeması dahil olmak üzere birkaç yeni özellik sunar.

Bir IOS sistemi bir NTP sunucusuyla senkronize olacak şekilde yapılandırıldığında, bir NTP sunucusunun rolünü üstlenecek ve başvurduğu sunucudan bir katman düzeyi daha yüksek olacaktır. Bu nedenle, ağ cihazlarınızda bir NTP hiyerarşisi uygulanabilir. Hiyerarşideki en üst sistem güvenilir bir NTP kaynağına başvurabilir veya kendi pil destekli saatine ve takvime başvuracak şekilde yapılandırılabilir. Katman sayısı, bir aygıtın özel bir atom saati veya İnternet tabanlı halka açık saat gibi yetkili bir kaynaktan gelen atlama sayısıdır. Şekil , bir NTP sunucusu (R1) ve bir NTP istemcisi (R2) için yapılandırmayı gösterir.

 

 

MD5 kimlik doğrulaması, hem sunucunun hem de istemcinin 1 numaralı güvenilir anahtarı kullanarak karşılıklı olarak birbirinin kimliğini doğrulamasına izin vermek için etkinleştirilmiştir. NTP kimlik doğrulaması, anahtarlı bir karma tekniği kullanır. İstemci ve sunucuda yapılandırılması için paylaşılan bir parola gerektirir. Çıktıda, kimlik doğrulama anahtarının, hizmet parolası şifreleme özelliği tarafından kullanılan tip 7 algoritmasıyla çalışan yapılandırmada şifrelenmiş olduğuna dikkat edin. Anahtarların eşleşmediği görünebilir, bunun nedeni iki yönlendiricinin tip 7 değerlerini üretirken farklı şifreleme başlatma vektörleri oluşturmasıdır.

Bir NTP istemcisinin senkronizasyonunun durumunu doğrulamak için, Şekilde gösterilen CLI komutlarını kullanabilirsiniz.

Örnekte R2’nin NTP sürüm 4’ü çalıştırdığına ve NTP sunucusuyla (R1) ilişkisinin başarıyla kurulduğuna ve kimlik doğrulamasının yapıldığına dikkat edin.

 

Güvenli Kopyalama Protokolü-Secure Copy Protocol  (SCP)

SCP, yönlendirici yapılandırmasını veya yönlendirici görüntü dosyalarını uzak bir konuma kopyalamak için güvenli ve doğrulanmış bir yöntem sağlar. SCP, SSH’ye dayanır ve AAA kimlik doğrulama ve yetkilendirmesinin, yönlendiricinin kullanıcının doğru ayrıcalık seviyesine sahip olup olmadığını belirleyebilmesi için yapılandırılmasını gerektirir.

 

Aşağıdaki örnek, SCP sunucu tarafı işlevselliği için bir Cisco cihazını yapılandırma prosedürünü gösterir.

R1(config)# ip domain-name mycorp.com

R1(config)# crypto key generate rsa general-keys modulus 2048

R1(config)# username Alice privilege 15 algorithm-type scrypt secret Cisco123

R1(config)# aaa new-model R1(config)# aaa authentication login default local

R1(config)# aaa authorization exec default local R1(config)# ip scp server enable

Alice için gizli parolayı yapılandırırken MD5 yerine daha güçlü SCRYPT algoritmasının isteğe bağlı kullanımına dikkat edin. R1 artık bir SCP sunucusu olarak hareket etmeye hazırdır ve bu durumda Alice, kimliği doğrulanmış ve yetkili kullanıcılardan güvenli kopya transferlerini kabul etmek için SSH bağlantılarını kullanacaktır. Transferler, bu istemci başka bir yönlendirici, anahtar veya iş istasyonu olsun, herhangi bir SCP istemcisinden gelebilir.

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*