SNMP bölüm 1: SNMP nedir?

SNMP (Simple Network Management Protocol) Ağ cihazlarının yönetimini ve izlenmesini kolaylaştıran bir uygulama katmanı protokolüdür. Bu protokol sayesinde ağdaki hemen her türlü cihaz izlenebilir hatta yapılandırmaları değiştirilebilir. SNMP TCP/IP protokol kümesinin bir bileşenidir ve bir uygulama katmanı protokolü, veri tabanı şeması, veri nesneleri gibi standartlar barındırır.

SNMP’nin üç temel bileşeni vardır. Bunlar:

  • NMS (Network Management System): Yönetici tarafında çalışan SNMP yazılımıdır.
  • Agent: Yönetilen cihaz tarafında çalışan yazılımdır.
  • MIB (Management Information Base): Her cihazın yerelinde bulunan, cihazdaki agent tarafından erişim sağlanan ve cihazla ilgili bilgileri bulunduran bir veri tabanıdır.

SNMP’nin çalışma mekanizması istek gönderme ve isteğe cevap alma şeklindedir ve bunun için Transport katmanında kullandığı protokol UDP’dir. NMS istekleri herhangi bir portundan Agent’ın 161. portuna gönderir. İletişimi Agent’ın başlatması drumunuda bildirimler NMS’in 162. portuna gönderilir.

SNMP sayesinde bir cihazdan bilgi alınabileceği gibi, cihazdaki bilgi değiştirilebilir ve cihazda yeni bir yapılandırma uygulanabilir. Örneğin cihaz baştan başlatılabilir, cihaza bir yapılandırma dosyası gönderilebilir ya da cihazdan alınabilir. Anlaşılacağı üzere SNMP ağ yönetimini önemli ölçüde kolaylaştırır.
 

MIB kavramı:

MIB kavramı bir ağaç yapısına benzetilebilir. Ulaşılmak istenen değeri tutan değişkene OID (Object IDentifier) adı verilir. Bu değişkenler ağacın dallarının en uç noktasında olup bir cihazla ilgili tek bir değeri tutabileceği gibi kendisinden sonra gelen bütün alt dalları ifade etmek için de kullanılabilirler. Kökten ağaç dalına uzanan bu hiyerarşi birbirlerinden nokta ile ayrılmış sayı dizileriyle ifade edilir.

Örneğin: 1.3.6.1.2.1.1.5.0

  • 1 : ISO (International Standart Organization)
  • 3 : Org (organization)
  • 6 : Dod (Department of defense)
  • 1 : Internet
  • 2 : Mgmt (Network management entries)
  • 1: mib-2
  • 1 : system
  • 5 : sysName
  • 0 : Dalın sonundaki ilk girdiyi belirtir.

1.3.6.1.2.1.1.5 değişkeninin anlamı sysName’dir. Buradaki ilk girdi de sysName.0 olarak adlandırılır. Yani komutta 1.3.6.1.2.1.1.5.0 yerine sysName.0 yazılırsa da aynı işlevi görür. Değişkenin başındaki ilk dört sayı, yani 1.3.6.1 standarttır. Bu noktadan sonra ulaşmak istediğimiz bilgiye göre alt dallara ilerlenir. Örneğin 1.3.6.1.2.1.1 dalı sistemle ilgili sistem adı, sistem tanımı, sistemin ayakta olduğu süre gibi değerleri tutar. Bunun alt dalı olan 1.3.6.1.2.1.1.5.0 değişkeni bunlardan biridir (sistem adı).

Bir diğer şematik MIB örneği aşağıdaki gibidir:

 

SNMP komutları

  • GET: Belirtilen değişkenin değerini sorgular.
  • GETNEXT: Belirtilen değişkenden sonraki değişkenin değerini sorgular.
  • GETBULK: Versiyon 2 ile gelen bir yeniliktir. Bir seferde birden fazla değişkeni kolay bir şekilde sorgulamaya yarar.

Bu komutlar iteratif olarak kullanılarak daha verimli komutlar elde etmek mümkündür.

  • SET: Belirtilen değişkenin değerini değiştirmek için kullanılır.
  • TRAP: Agent’ta bir değişiklik olması durumunda NMS’i bilgilendirmek için kullanılır. Diğer komutların aksine burada ilk SNMP paketini agent yollar.
  • INFORM: Versiyon 2 ile gelen bir yeniliktir. TRAP’ten farklı olarak bu komut bir bildirim yaptığında NMS’ten bir onay paketi bekler. Onay paketi gelmezse tekrar INFORM gönderilir.

 

SNMP versiyonları

  • v1: İlk, basit SNMP versiyonu
  • v2: v1 ile arasında pek fark yoktur. INFORM ve GETBULK paketleri eklenmiştir.
  • v2c: v2’nin karmaşık güvenlik mekanizması yerine v1’inkini kullanan bir taslaktır. Standartlaşmamasına rağmen çoğu cihaz varsayılan olarak v2 değil v2c kullanır.

Versiyonlar güvenlik modeli olarak da isimlendirilir. v1 ve v2c’de güvenlik mekanizması sadece community adı verilen bir string ile sağlanır. read-only veya read-write olarak tanımlanan community aslında bildiğimiz anlamda bir şifredir. read-only olarak tanımlanmış bir community’yi bilen bir kişi agent’taki her türlü bilgiyi görebilir. read-write olarak tanımlanmış bir community’yi bilen bir kişi ise agent’taki her türlü bilgiyi görebilir VE değiştirebilir. v1 ve v2c güvenlik modellerinde kimlik denetleme mekanizmasının sadece şifre bazlı olması ve hiç bir şifreleme mekanizmasının sunulmaması bu modellerin önemli bir açığıdır. Ayrıca bu modellerde read-only community varsayılanda “public”, read-write community de varsayılanda “private” tır. Bu da yanlış bir yapılandırma sonucu çok büyük bir güvenlik açığı meydana getirir.

OĞUL ÇELİKSOYDAN

“SNMP bölüm 1: SNMP nedir?” için 6 cevap

  1. Öncelikle verdiğiniz bu bilgiler için teşekkürler gerçekten çok işime yaradı.

  2. Merhabalar.
    SNMP ile veri çekerken OID sayısal değerleri kullanmak çok zor. Bunun yerine yazınızda da belirttiğiniz gibi “sysDescr.0” gibi harf bilgileri girmek daha kolay ve akılda kalıcı olacaktır. Bunun bir örneğini JAVA veya PHP ile yazabilirmisiniz. Ellerinize sağlık

  3. Merhaba,
    Yazdığını yazı için öncelikle çok teşekkür ederim. Benim şöyle bir sıkıntım var sisteme bağlı olan aktif kullanıcıların listesini veren bir MIB arıyorum ve bulamadım alternatif bir çözüm öneriniz var mı?

    Teşekkürler

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir