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:
- 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.
- 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.
- Bir SNMP grubunu, sürümünü ve şifreleme politikasını tanımlayın.
- Bir SNMP kullanıcısı tanımlayın, bunu bir SNMP grubuna atayın ve kimlik doğrulama ve şifreleme bilgilerini belirtin.
- SNMP grubuna ve / veya SNMP kullanıcısına bir ACL tanımlayın ve uygulayın.
- 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.
Bir yanıt bırakın