SNMP

Simple Network Manager Protokol

SNMP, yöneticiler ve aracılar arasındaki iletişim için bir mesaj formatı sağlayan bir uygulama katmanı protokolüdür. SNMP sistemi üç unsurdan oluşur:

  • SNMP manager (yöneticisi)

  • SNMP agents (managed node)

  • Management Information Base (MIB)

Bir ağ aygıtında SNMP'yi yapılandırmak için önce yönetici ve aracı arasındaki ilişkiyi tanımlamak gerekir.

SNMP yöneticisi, bir ağ yönetim sisteminin (NMS) parçasıdır. SNMP yöneticisi, SNMP yönetim yazılımını çalıştırır.

Şekilde gösterildiği gibi, SNMP yöneticisi “get” eylemini kullanarak bir SNMP aracısından bilgi toplayabilir. "Set" eylemini kullanarak bir aracıdaki yapılandırmaları değiştirebilir. Ek olarak, SNMP aracıları "trap" kullanarak bilgileri doğrudan bir ağ yöneticisine iletebilir. Problem olup olmadığını trap ile alıyoruz. Node'lar üzerindeki bir değişikliğe bağlı ya da bir tetiklemeye bağlı mesajın gelmesini ifade ediyor.

SNMP manager dediğimiz cihaz SNMP agent'ları yani Node'ları yönetmek için MIB database'i kullanıyor. SNMP manager kullanarak yazılım üzerinden Node'ları yapılandırabiliyorum.

Management Information Base

MIB, değişkenleri hiyerarşik olarak düzenler. MIB değişkenleri, yönetim yazılımının ağ cihazını izlemesini ve kontrol etmesini sağlar MIB her değişkeni bir nesne kimliği (OID) olarak tanımlar. OID'ler, MIB hiyerarşisindeki yönetilen nesneleri benzersiz şekilde tanımlar. MIB, RFC standartlarına dayalı olarak OID'leri, genellikle bir ağaç olarak gösterilen bir OID hiyerarşisi halinde düzenler.

Biz cihazdan karşıya get ya da set request gönderdiğimizde aslında karşı tarafa bu şekilde bir şayı dizisi göndermiş oluyoruz.

Cisco'ya ait OID'ler şu şekilde numaralandırılmıştır: .iso (1).org (3).dod (6).internet (1).private (4).enterprises (1).cisco (9). Bu nedenle, OID 1.3.6.1.4.1.9'dur.

Bu sayı dizisi doğrultusunda bana bir cevap gelmiş oluyor.

SNMP Versiyonları

SNMPv1 - Bu, RFC 1157'de tanımlanan bir İnternet Standardı olan SNMP protokolüdür.

SNMPv2 - Bu, 1901 ila 1908 arasındaki RFC'lerde tanımlanmıştır. Community-string-based bir Administrative Framework kullanır.

SNMPv3 - Bu, orijinal olarak 2273 ila 2275 RFC'lerinde tanımlanan birlikte çalışabilir standartlara dayalı bir protokoldür. Ağ üzerinden paketleri doğrulayarak ve şifreleyerek cihazlara güvenli erişim sağlar. Mesaj bütünlüğü,Kimlik doğrulama, Şifreleme Acces Control(Belirli IP'ler yapabilsin) sağlar

SNMPv3 Security Konfigurasyonu

Adım 1 . Yetkili SNMP yöneticilerine erişime izin verecek bir ACL yapılandırın.

Adım 2 . SNMP yöneticisinin okuyabileceği MIB OID'lerini belirlemek için snmp-server view komutuyla bir SNMP görünümünü yapılandırın . SNMP mesajlarını salt okunur erişimle sınırlamak için bir görünümün yapılandırılması gerekir

Adım 3 . snmp-server group komutuyla SNMP grup özelliklerini yapılandırın :

•Grup için bir ad yapılandırın. •v3 anahtar sözcüğü ile SNMP sürümünü 3'e ayarlayın. •priv anahtar sözcüğüyle kimlik doğrulama ve şifreleme gerektir . •read komutuyla yalnızca okuma erişimi verin. Adım 1'de yapılandırılan ACL'yi belirtin

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname R1
R1(config)#int gig0/0/0
R1(config-if)#no shutdown

R1(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0, changed state to up

R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#

PC'ye de 192.168.1.2 ip adresini verdik.

PC üzerinden MIB Manager açtık. Bağlanmaki istediğimiz cihazın ip adresini girdik. Community string dedikleri şey aslında parola ve bir parola girdik.

Router üzerinde örnek olarak sysName öğrenmek istediğimizde karşı tarafa OID numarasını get mesajı olarak gönderecek.

Router üzerinde de SNMP yapılandırması yapmamız gerekiyor.

R1(config)#snmp-server community ?
  WORD  SNMP community string
R1(config)#snmp-server community sefa ?
  ro  Read-only access with this community string
  rw  Read-write access with this community string
  <cr>
R1(config)#snmp-server community sefa rw
%SNMP-5-WARMSTART: SNMP agent on host R1 is undergoing a warm start
R1(config)#

Burada benim parolam Sefa'dır dedik ve bunu bilen cihazlar Read ve Write yetkisine sahiptir dedik.

systeUpTime için get Mesajı gönderdik ve bize Routerımızın 12 dakikadır açık olduğu mesajını gönderdi. RW dediğimiz için Set de yapabiliyorduk. Örnek olarak cihazımın ismini değiştirelim.

Artık Router'ımızın ismi değişmiş oldu.

Access List kullanarak kimlerin erişebileceğini get ve set yapabileceğini ayarlayabiliriz.

R1(config)#ip access-list standard PERMIT-SNMP
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255
R1(config-std-nacl)#exit
R1(config)#

// İsmi Permit SNMP olan bir ACL tanımladım. ACL trafik tanımlamamıza yarıyor.
192.168.1.0/24 networkünde olan herkes PERMIT SNMP'dir. 
ve sonrasında neye izin vermemiz gerektiğini belirtmemiz gerekiyor.

SNMP View oluşturma süreci şu şekilde.
R1(config)#snmp-server ?
  chassis-id        String to uniquely identify this chassis
  community         Enable SNMP; set community string and access privs
  contact           Text for mib object sysContact
  context           Create/Delete a context apart from default
  drop              Silently drop SNMP packets
  enable            Enable SNMP Traps
  engineID          Configure a local or remote SNMPv3 engineID
  file-transfer     File transfer related commands
  group             Define a User Security Model group
  host              Specify hosts to receive SNMP notifications
  ifindex           Enable ifindex persistence
  inform            Configure SNMP Informs options
  ip                IP ToS configuration for SNMP traffic
  location          Text for mib object sysLocation
  manager           Modify SNMP manager parameters
  packetsize        Largest SNMP packet size
  queue-length      Message queue length for each TRAP host
  queue-limit       Message queue size for different queues
  source-interface  Assign an source interface
  system-shutdown   Enable use of the SNMP reload command
  tftp-server-list  Limit TFTP servers used via SNMP
  trap              SNMP trap options
  trap-source       Assign an interface for the source address of all traps
  trap-timeout      Set timeout for TRAP message retransmissions
  user              Define a user who can access the SNMP engine
  usm               user security model
  view              Define an SNMP MIB view

R1(config)#snmp-server view SNMP-RO

//View oluşturduk ve Readonly anlamına gelen bir RO ismini verdik.
Sonrasında MIB içerisindeki yapıyı ifade etmemiz gerekiyor. (Ağaç içerisindeki yapıyı)
iso included (iso'nun tamamını al ve included (ekle)) 

R1(config)#snmp-server view SNMP-RO ?
  WORD  MIB view family name
  <cr>

R1(config)#snmp-server view SNMP-RO iso included

Bütün ISO'yu değil ağaç yapısında başka şeyler de include edebiliriz örnek olarak
MIB-2
R1(config)#snmp-server view TEST mib-2 included


// Kısaca İsmi SNMP-RO olan bir view oluşturdum.  Bu view içerisinde tüm
ISO var. Ağacın kökten dala kadar hepsi var.
Sonrasında ise Group oluşturuyorum. (ADMIN adında bir grup olacak).
Sonrasında versiyon tipi ardından priv ve sonrasında vermek istediğimiz yetki ve 
hangi gruba vereceğimiz ve access listmizi yazıyoruz.

 
R1(config)#snmp-server group ADMIN ?
  v1   group using the v1 security model
  v2c  group using the v2c security model
  v3   group using the User Security Model (SNMPv3)

R1(config)#snmp-server group ADMIN v3 ?
  auth    group using the authNoPriv Security Level
  noauth  group using the noAuthNoPriv Security Level
  priv    group using SNMPv3 authPriv security level

R1(config)#snmp-server group ADMIN v3 priv ?
  access   specify an access-list associated with this group
  context  specify a context to associate these views for the group
  match    context name match criteria
  notify   specify a notify view for the group
  read     specify a read view for the group
  write    specify a write view for the group
  <cr>

R1(config)#snmp-server group ADMIN v3 priv read ?
  WORD  read view name

R1(config)#snmp-server group ADMIN v3 priv read SNMP-RO access PERMIT-SNMP

  
 //İsmi ADMIN olan bir group oluşturdum. Versiyon 3 çalışacak. Priv seçerek
 İçerisinde Authentication,Encription, Integrity ) sağlayacağım diyorum.
 SNMP-RO isimli View'e okuma yetkisi sahip PERMIT-SNMP ile tanımlamış olduğum
ipler. 

Sonrasında ise kullanıcı tanımlayıp gruba atacağız. 
Örnek olarak Admin grubundan birkaç kullanıcı tanımlayabilirim.

R1(config)#snmp-server user ?
  WORD  Name of the user

R1(config)#snmp-server user Deneme ?
  WORD  Group to which the user belongs

R1(config)#snmp-server user Deneme ADMIN ?
  remote  Specify a remote SNMP entity to which the user belongs
  v1      user using the v1 security model
  v2c     user using the v2c security model
  v3      user using the v3 security model

R1(config)#snmp-server user Deneme ADMIN v3 ?
  access     specify an access-list associated with this group
  auth       authentication parameters for the user
  encrypted  specifying passwords as MD5 or SHA digests
  <cr>

R1(config)#snmp-server user Deneme ADMIN v3 auth ?
  md5  Use HMAC MD5 algorithm for authentication
  sha  Use HMAC SHA algorithm for authentication

R1(config)#snmp-server user Deneme ADMIN v3 auth sha ?
  WORD  authentication pasword for user

R1(config)#snmp-server user Deneme ADMIN v3 auth sha Deneme123 ?
  access  specify an access-list associated with this group
  priv    encryption parameters for the user
  <cr>

R1(config)#snmp-server user Deneme ADMIN v3 auth sha Deneme123 priv ?
  3des  Use 168 bit 3DES algorithm for encryption
  aes   Use AES algorithm for encryption
  des   Use 56 bit DES algorithm for encryption

R1(config)#snmp-server user Deneme ADMIN v3 auth sha Deneme123 priv aes 128 ?
  WORD  privacy pasword for user

R1(config)#$ user Deneme ADMIN v3 auth sha Deneme123 priv aes 128 Deneme456
R1(config)#
*Apr 12 09:28:22.343: Configuring snmpv3 USM user, persisting snmpEngineBoots. Please Wait...

//Kullanıcı adı Deneme authentication parolası Deneme123 ve encription key ise Deneme456
ADMIN grubu içerisinde. ADMIN grubu view içerisinde sadece okuma yetkisine sahip.
ve Deneme eğer bu verdiğimiz ip bloğunda ise SNMP yapabilecek anlamına geliyor.



Bazı cihazlarda SNMP defaultta açıktır. ve Commnity String'i RW community string' private anahtar kelimesidir. RO community String'i public anahtar kelimesidir. Private kelimesini girersek default olarak o markanın SNMP ile erişip, SNMP'nin izin verdiği her türlü işi yapabiliriz.

Last updated