Bu yazı ilk olarak Linux Jornal'da yayınlanmıştır. Yazarın izniyle, çevrilerek, buraya da alınmaktadır.
Giriş
Tüm hesaplama olaylarinin iletişim ağı kavramı çevresinde dolaşır olduğu günümüzde, sistem yönetmenlerinin işi gittikçe altından kalkılmaz hale gelmektedir. Router, hub, sunumcu gibi kaynakların ve iletişimağındaki her kritik aygıtın kullanıma hazır tutulması yönetmenin temel görevi olarak ortaya çıkmaktadır.
İşletmenlerin iletişimağı aygıtlarını denetim altında tutmaları için çok sayıda neden bulunmaktadır. Bunlar arasında, bangenişliği kullanımı, bağlantıların yöneylem durumu, şişeboyunları, kablolama ya da aygıtlar arası bilgi aktarımındaki sorunlar gibi sıralanabilirler. İletişimağı etkinliğinin denetim altında tutulması da güvenlik sorunlarının ve olumsuz davranışların saptanması için iyi bir başlangış noktası oluştururlar.
Birçpk durumda, bir kuruluşa ait iletişimağında uzaktaki iletişimağlarına (WAN: Geniş Alan İletişimağı) ya da Internet'e bağlantılar bulunur ve bu bağlantıların parasal götürülerinin belirlenmesinde bütünüyle trafik hacmı taban alınabilir. Dolayısıilya bu bağlantılar üzerinden yapılan iletişimin istatistiğinin tutulması büyük önem kazanİr. Bu X.25 bağlantılarının hala yaygın olduğu Avrupa'da çok yaygın olarak karşılaşılan bir görevdir. Bu bağlantılar, gönderilen ve alınan paketler tabanında faturalandırılırlar.
Noktadan Noktaya veya Çerãeve Gecikmeli türden bağlantılar genellikle düz bir tutar üzerinden faturalandırılırlar. Bunlarda telco denetim altında tutulması önemli olan bir bandgenişliği güvencesi ister.
Bu yazının son bölümünde, yönlendirici (router) arayüzlerindeki tafiğin denetim altında tutulmasına odaklanarak, bu bilginin büyük bir grafiksel gösterilimiyle birlikte sunacağız. Bu, diğer tür bilgilerin denetim altında tutulmasında kullanılmak üzere de kolayca değiştirilebilir bir yapıdadır.
SNMP nedir?
Bu gereksinimlerin tümüne yanıt olarak Basit İletişimağı İşletim Antlaşması (SNMP) adlı bir protokol verilebilir. 80'lerde tasarlanan SNMP'nün ilkbaştaki amacı farklı türden iletişimağlarının işletiminin, ıletişimağı'nda çok küçük gerilmelere neden olabilecek basit bir tasarımla işletilmesiydi.
SNMP, TCP/IP aktarım düzey protokollerini kullanarak uygulama düzeyinde çalışır. Dolayısıyla, altta yatan iletişimağı donanımı güzardı edebilir. Bu, işletim yazılımının IP'yi kullandığı ve bu yüzden de, yalnızca kendi fiziksel iletişimağına bağlı olanları değil, herhangi bir bağlı iletişimağındaki aygıtları denetleyebileceği anlamına gelir. Bunun sakıncalı yanları da vardır. Sözgelimi, IP yönlendiriminin iki aygıt arasınmda doğru çalışmaması durumunda erekteki aygıta ulaşıp onu denetlemek ya da yeniden biçimlendirmek olanaksızdır.
SNMP mimarisinde iki ana öge bulunmaktadır: ajan ve yönetici. O bir sunumcu - istemci mimarisi olup ajan sunumcuya yönetici de istemciye karşılık gelmektedir.
Ajan denetim altında tutulan ya da yönetilen iletişimağı düğümlerinden her birinde çalışan bir programdır. O, biçimlendirilmiş yapı içindeki ögelerin tümüne bir arayüz sağlar. Bu ögeler, İşletim Bilgi Tabanı (MIB: Management Information Base) adını taşıiyan ve daha sonra açİklanacak olan bir veri yapısı içinde depolanırlar. Bu, yönetilecek bilgiyi alıkoyduğu sürece sunumcu tarafı olup istemciden güdüm bekler.
Yönetici iletişimağının denetlenen istasyonunda ãalışan bir yazılım olup rolü farklı iletişimağında çalışmakta olan ajanlarla iletişim kurup iç verisi için statistik veri toplamaktır. O, iletişimin istemci yanıdır.
SNMP güdüm takımı içinde trap adlı özel bir güdüm bulunmaktadır. Bu güdüm ajanlara, yöneticiye, hata, kapatım gibi olaylardan haberdar olması için davetsiz veri gönederebilme yetkisi sağlar.
Temelde, SNMP, gerçekleştirdiği tüm işlemler getir-depola ilkesi çerçevesi içinde kaldığı sürece çok basit bir protokoldür ve bu durum az sayıda güdüm içeren bir yağıyla çalışma olanağı vermektedir. Bir işletmen bir ajan üzerinde yalnızca iki farklı işlem gerçekleştirebilir: ajanın MIB'indeki bir değişkenin değerini ister ya da onu ayarlar. Bu iki işlem al istemi ve ayarla istemi olarak bilinir. Yalnızca ajan tarafından kullanılabilen ve al-yanıtı olarak bilinen ve al-istemine yanıt olan bir güdüm de bulunmaktadır.
Protokolün genişletilebilirliği bütünüyle MIB'in yeni şeyler depolayabilme sığasıyla ilişkilidir. Eğer bir üretici router gibi bir aygıta yeni güdümler eklemek isterse, onun veritabanına (MIB) uygun değişkenler eklemelidir.
Hemen hemen tüm üreticiler kendilerinin, router, hub, işletim sistemi aygıtlarında SNMP ajanlarının sürümlerini devreye sokarlar. Linux da bunun dışında değildir. Linux için özgürce erişilebilen SNMP ajanları Internet'te bulunabilir.
Güvenlikle İlgilenim
SNMP kökenlileştirme çizemleri (authentication schemes) için çok az şey sunar. O yalnızca bir iki geçişsözcüklü çizemi destekler. public, işletmenin değişken değerleri için istemde bulunmasına izin verir. private ise bu değerlerin atanmasına izin verir. SNMP'deki bu geçişsözcükleri communities olarak adlandırılır. Bir SNMP-işletimli iletişimağına bağlı olan her bir aygıt bu büyüklüklerin biçimlendirilmiş olmasını gerektirir.
Çok alışılmış olanı public community'nin "public"e private comunity'nin de "private"e ayarlanmasıdır. Ancak, bu değerlerin değiştirilmesi kuruluşunuzun güvenlik politikasını yansıtması açısından çok önemlidir
MIB Nedir?
SNMP, protokol tarafından yönetilen bilgiye farklı bir ölçüt tanımlar.Bu ölçüt bilgiyi networkteki bir aygıt içinde korunan ve buradaki işlemlere izin verilmiş olarak tanımlar.Bilgi, bir ağaç yapısında inşa edilmiştir.Ve her değişkene ulaşmak için tek bir yol vardır.Yapılandırılmış bu ağaç Yönetim Bilgi Tabanı (Management Informatıon Base) (MIB) olarak adlandırılır.Ve birçok RFC'de belgelendirilmiştir.
TCP/ IP 'in son sürümü MIB-II 'dır ve RFC-1213 olarak tanımlanır.Bilgiyi TCP/ IP aygıtları 8 katagoride sahip olabilecek şekilde böler.(1.tabloda görüldüğü gibi)Bu bilgide olan her değişken bu gruplardan birine girer.
Bilgileri
Çizelge 1. TCP/IP Bilgileri
Kategori |
sistem |
Konak ya da yolverici işletim sistem bilgileri |
arayüzler |
İletişimağı arayüzleri bilgileri |
adres-çevirisi |
Adres çeviri bilgileri |
ip |
IP Antlaşma Bilgileri |
icmp |
ICMP Antlaşma Bilgileri |
tcp |
TCP Antlaşma Bilgileri |
udp |
UDP Antlaşma Bilgileri |
egp |
Dış Geçityolu Antlaşma Bilgileri |
MIB'in belirli bir müfredat hakkındaki tanımı müfredatın sahip olduğu bilgiyi de özelleştirir.Genelde MIB'in müfredatı yalnız sayıları depolar fakat onlar dizileri veya tablolar gibi daha karışık yapılarıda ihtiva eder.MIB'deki müfredat nesne(object) olarak da adlandırılır.Nesneler MIB ağacının yaprak boğumlarıdır, fakat bir nesne birden çok örneğe sahiptir.Mesela; bir tablo nesnesi.Bir object'in sahip olduğu değeri (value) bulmak için örnek sayısına sayı eklenir.Ne zaman ki bir object için bir örnek var olursa bu 0 örnek demektir.
Örneğin,interface kategorisindeki ifnumber nesnesi bir sayı içerir.Bu sayı bu aygıtta olan ve ayrıca interface numaralarını içeren bir sayıdır.Fakat IP kategorisinden ipRoutingTable nesnesi aygıtın takip edilecek çizelgesini içerir.
Bir nesnenin değerini (value) yeniden elde etmek için örneğin numarasını kullanmayı unutmatın.Bu halde ,bir takip edici (Router) içindeki interfaces sayısı ifNumber.0 adlı örnekle görülebilir.
Bir tablo nesnesi halinde; tablonun indeksi özel bir örneği belirtmek için son sayı gibi kullanılır.(Tablonun sırası).
MIB değişkenini tanımlamak ve belirtmek için kullanılan bir başka ölçüte de yönetim bilgisinin yapısı denir. (Structure of management Information) (SIM). ISO dillerinden birinde yazılmış olan MIB değikenlerini ASN.1 diye adlandırır.Bu değişkenlerin formunu ve içeriğini şüpheden uzak , açıklayıcı yapar.
ISO isim boşluğu diğer ölçüt kurumları için olan diğer ağaçlarla birlikte global isim boşluğu içerisindedir.ISO isim boşluğuyla birlikte MIB bilgisi için özel bir ağaç vardır.Ağacın bu MIB tarafında bütün protokollerden ve uygulamalardan olan nesneler(object) için alan vardır.Böylece onların bütün bilgileri açıklayıcı bir şekilde temsil edilir.
Şekil 1.'de TCP/ IP isim boşluğu IAB.'ın mgnt isim boşluğunun hemen altındadır.Ayrıca bu yapı her seviye için bir sayı da belirtir.
Şekil 1. TCP/IP Düzenleme Ağacı
|
Nesnenin MIB'de olması için hemen hemen bütün yazılımın temsili noktaya (leading dot(root)) ihtiyaç duyduğunun bilinmesi önemlidirEğer leading dot 'ınız yoksa size .iso.org.dod.internet.mgmt.mib-2. 'den farklı bir yol sunacaktır.
Bu halde "Interfaces" kategorisinden ifnumber nesnesi şöyle adlandırılır:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber
veya sayısal eşdeğeri şöyledir:
.1.3.6.1.2.1.2.1
ve örnek olarak:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0
ya da onun sayısal eşdeğeri şu şekildedir:
.1.3.6.1.2.1.2.1.0
Satıcılar yarattıkça eklenebilen MIB'ler bu ağaca eklenebilir ve uygun RFC'ler kurulabilir
SNMP'nin Geleceği Nedir?
SNMPv2 denilen yeni bir tür geliştirildi.Bu; gerçek protokolun güvenlik eksiğine hitap ediyor ve gizlilik ,doğruluk üzerine odaklanıp kontrolü sağlıyor.Ayrıca daha karışık değişken belirtimlerine izin veriyor ve farklı güdümleri ihtiva ediyor.SNMPv2'nin sorunu ise SNMPv1'in aksine hala kabul edilmiş bir ölçüt olmayışıdır.Ayrıca yazılımın ve ajentanın SNMPv2 sürümünü bulmak yani yeni güdümlerinden yararlanmak oldukça zor.Gelecekte neler olacağı bilinmez...
Linux'la SNMP
En popüler SNMP paketi CMU-SNMP 'dir. Carnegie Mellon Üniversitesi tarafından şekillendirilmiş ; Juergen Schoenwaelder ve Erik Schoenfelder tarafında Linux 'a kazandırılmıştır. SNMPv1 ölçütü ile tamamen uygun olup SNMPv2'nin bazı yeni fonksiyonlarını içerir.
Dağıtım bazı yönetici aygıtlara (tool) sahiptir Ve bunlar komut satırı şeklinde SNMP ajentasını çalıştıran aletlere emirler gönderirler.Linux altında çalıştırmak üzere şekillendirilmiş bir SNMP ajenta programı da vardır.Bu, yöneticiye networküzerinde interface'ler , routing table gibi konuların statülerinin bilgilerini sunar.
CMU-SNMP 'nin getirdiği en önemli yeniliklerden biri de SNMP C-API 'dir.Programcının dağıtımın network yeteneği hakkında daha karışık yönetici elaygıt (tool) yapmasına izin verir.
Linux sistem üzerine kurulum kolay fakat orjinal CMU dağıtımından biraz farklıdır.Dağııtm derlenmiş yönetici aygıtın ( the daemon, ve the API lıbrary) binary versiyonu ile gelir.
Öncelikle binary mi yoksa kaynak dağıtıcı mı alınacağına karar verilmelidir .Paketi internet üzerine kurmak kolaydır (Yandaki kaynaklara bakınız) Binary dağıtımı 2.0 Kernel serisini kullanır ve ELF tabanlıdır.Binary dağıtıcısının nasıl kullanılacağını anlatacağız.Binary dağıtıcısının sadece güvenilen bölümlerden alınması virüsleri, Truva atı türünden saldırıları önlemede bir çözüm olabilir.
cmu-snmp-linux-3.2-bin.tar.gz dosyasını linux sistemdeki root dizini (/) içine koyun.Ve şu komutla sıkıştırın:
gunzip cmu-snmp-linux-3.2-bin.tar.gz
Sonra ; dağıtımı son durumuna getirmek için şu komutu kullanın:
tar xvf cmu-snmp-linux-3.2-bin.tar
Şu anda bütün kitaplıklar ve diğer yararlı elemanlar sisteminize yüklenmiş bulunmaktadır.the SNMP ajentası dosyasını( /etc/snmpd.conf.) almak için şu komutun çalışırılması gerekir:
/tmp/cmu-snmp-linux-3.2/etc/installconf
bu seçeneklerle birlikte:
/tmp/cmu-snmp-linux-3.2/etc/installconf -mini
Kullanacağınız password kamu toplumu olmalıdır.Şimdi yeni kurulmuş /etc/snmpd.conf biçimlendirim dosayasını yükleyebilirsiniz. Bu dosyadaki, ajan tarafından UDP portları için kullanılan değeri değiştirebilirsiniz. Ayrıca systemContact, systemLocation ve systemName değişkenlerini; network kartı ve PPP portunuz için interface hız parametresini de değiştirme imkanı var. En önemli işletim elaygıtları şöyledir:
Aldığınız en önemli yönetici aygıtlar şunlardır:
- /usr/bin/snmpget MIB'nin networkteki (router veya hub gibi) bir ajentası için belirli bir değeri bulmak üzere tasarlanmıştır.
- /usr/bin/snmpgetnext Bir MIB ağacı üzerinde ismini bilmeksizin bir sonraki nesneyi almayı sağlar.
- /usr/bin/snmpset Uzaktaki bir ajentada değişkenleri kurmayı sağlar.
- /usr/bin/snmpwalk Örneği özelleştirmeden bir bütün nesneyi veya nesneler serilerini çağırmayı sağlar.Table object'ler için kullanışlıdır.
- /usr/bin/snmpnetstat
- /usr/bin/snmptrapd Ajenta tarafından gönderilen tuzaklar (trap) içindir.
- usr/bin/snmptest API sığasını ölçmek için kullanılan etkili bir aygıttır.
Ajan /usr/sbin/snmpd dizininin içindedir.
CMU-SNMP ayrıca /usr/lib/mib.txt.içindeki MIB dosyasını da yükler.Bu herhangi bir aygıttan isteyeceğimiz bilgiyi aramada da avantajlıdır.
Ajenta başlangıç zamanında başlamalıdır.Herhangi bir boot dosyanızın (/etc/rc.d/rc.local, örneğin) içindeki şu satırla kurulmalıdır:
/usr/sbin/snmpd -f ; echo 'starting snmpd'
Bir kere linux kutusunda çalışan SNMP ajentasını aldıktan sonra herhangi bir yönetici aygıtla onu deneyebilirsiniz.Öncelikle şunu girmeniz gerekir:
/usr/bin/snmpget -v 1 localhost public interfaces.ifNumber.0
Bu size bu sistemdeki iletişimağı arayüzleri sayısını verir ve:
/usr/bin/snmpwalk -v 1 localhost public system
MIB 'in alt kollarındaki bütün değerleri verir.. (Bu komutun ne yaptığını görmek için şekil 2 ye bakın.)
|