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.
Çizelge 1. TCP/IP Bilgileri
Kategori | Bilgileri
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.)
|