NFDUMP

Bu yazımda bir netflow toplama programı olan nfdump’tan bahsedeceğim. Netflow’un ne olduğunu ve nasıl çalıştığına ilişkin Barış Özay’ın yazmış olduğu yazıya buradan ulaşabilirsiniz. Nfdump BSD lisansı altında dağıtımının yapıldığı bir netflow toplama aracıdır. Kısaca nfdump komut satırı üzerinden netflow bilgilerini toplar ve bunlar üzerinde istediğimiz işlemleri gerçekleştirmemizi sağlar. Nfdump’ın konfigüre edilmesi sonucu topladığımız bilgiler ile; istenilen bir tarihte, her hangi bir IP adresinin, her hangi bir portundan ne kadarlık veri transferi olmuş gibi bilgileri elde edebiliriz. Ya da geçtiğimiz hafta sonu open dns adreslerine ne kadarlık sorgu gitmiş gibi çok özel sorgular gerçekleştirebiliriz.

Kısaca nfdump’ın nasıl çalıştığına değinecek olursak; nfdump netflow verisini toplamak için bazı araçlar kullanmaktadır. Bunlar:

  • nfcapd: (Netflow Capture Daemon) Netflow verilerini yakalayıp dosyalar halinde muhafaza etmeye yarayan araçtır.
  • nfdump: (Netflow dump) nfcapd tarafından saklanan araçları okuyup, bunları istatistikler halinde görüntülememizi sağlayan araçtır.
  • nfprofile: (Netflow profiler)Netflow verisi üzerinde istenilen filtrelemeleri uygulayarak, depolayan araçtır.
  • nfreplay: (Netflow replay)Yakalanmış verilerin ağ üzerinde başka bir noktaya gönderilmesini sağlayan araçtır.
  • ft2nfdump: dosyalar üzerinde bulunan netflow verilerini nfdump formatına çeviren araçtır.
  • nfclean.pl: Depolanmış verilerin silinmesini sağlayan script’tir.

Linux sistemlerde nfdump’ı kurmadan önce IP trafiğini toplamak için kullanılan netflow probe yazılımına ihtiyaç duyulabilmektedir. Bunun için herhangi bir probe yazılımı kullanılabilir. Bu amaç için kullanılacak fprobe yazılımı aşağıdaki şekilde kurulabilir.
wget http://sourceforge.net/projects/fprobe/files/fprobe/1.1/fprobe-1.1.tar.bz2/download
tar -xvjf fprobe-1.1.tar.bz2
cd fprobe-1.1
./configure –prefix=/
make
make install

Bu noktadan sonra “fprobe -i p3p1 192.168.2.5:9005” komutuyla belirtilen interfaceden(p3p1), belirtilen ip adresinin(192.168.2.5), belirtilen portuna(9005) gelen paketlerin nfdump için biriktirilmesini belirtmiş olacağız. Artık nfdump kurulumuna geçebiliriz. 🙂
wget http://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.2/nfdump-1.6.2.tar.gz/download
tar -xvzf nfdump-1.6.2.tar.gz
cd nfdump-1.6.2
./configure –prefix=/ –enable-nfprofile
make
make install

Bu noktadan sonra netflow datasının toplanacağı yeri belirtmek gerekmektedir. Örnek olarak /var/flow/ROUTER1 klasörünü verecek olursak. “mkdir –p /var/flow/ROUTER1” komutuyla klasörü oluşturduktan sonra verilerin bu klasörde toplanmasını belirtmek için “nfcapd -w -D -l /var/flow/ROUTER1 -p 9005” komutunu kullanırız.( Agciyiz.net te bulunan netflow yazısında bir cihaz üzerinden netflow verilerinin istenilen noktaya nasıl gönderebilebileceği bilgisi bulunmaktaydı. Router’da yapılacak ayarlar için o dökümanı inceleyebilirsiniz.)

Yukarıdaki işlemlerden sonra nfdump bizim için verileri istenilen klasörde depolamaya başlar. Veriler varsayılan olarak zaman formatında depolanmaktadır. Belirtilen her bir n dakikada(varsayılan olarak 5 dakikadır) veriler belirtilen klasörde nfcapd.YYYYAAGGSSDD dosyaları halinde tutulmaya başlar. (Y: yıl, A: ay, G:gün, S:saat, D:dakika) Örnek verecek olursak 30/Haziran/2011 günü saat 15:30 ile 15:35 arasındaki veriler nfcapd.201106301535 dosyasında tutulur.

Bu noktadan sonra kaydedilen verileri komut satırında görüntülemek için nfdump komutu ve parametreleri kullanılır. Örneğin nfcapd.201106301535 dosyası okunmak istendiğinde “nfdump -r nfcapd.201106301535” komutunun girilmesi yeterlidir. Fakat bu komut pek anlaşılır sonuçlar vermemektedir. Bunun için “–o” parametresi ile birlikte istenilen çıktının formatını belirleyebiliriz.

  • -o raw: Her bir kayda ait veriyi alt alta satırlar halinde görüntüler.
  • -o line: Her bir kaydı bir satır içerisinde gösteririr.
  • -o long: Kayda ait ekstra bilgiler içerir.(TCP flagleri, Tos bilgileri v.s.)
  • -o extended: long formatına pps ve bps vb ekstra bilgileri ekler.
  • -o fmt: Bu parametre kendi belirleyeceğimiz formatta çıktı almak için kullanılır.  Bu parametre şüphesiz kendi yaratacağımız spesifik sorgularda kullanacağımız format olacak. Bu parametre ile kullanabileceğimiz diğer parametreler aşağıdaki tabloda belirtilmiştir. Gerisi bizim ihtiyaçlarımıza kalmış durumdadır.(Örn: nfdump -r nfcapd.201106301635 -o “fmt:%sap %dap %pr %bps”)

Eğer sadece bir dosyayı değil birden fazla dosyayı birleştirerek bir çıktı almak istiyorsak. Bu durumda -R /dosya/konumu/ilk dosya:son dosya parametresini kullanabiliriz. Örneğin 25/Haziran/2011 saat 09:00 ile 09:30 arası verilere bakmak istiyorsak kullanacağımız komut
“nfdump -R /var/flows/ROUTER1/2011/06/25/09/nfcapd.201107010900:nfcapd.201107010930 -o line”
olabilir. Eğer bir klasöre ait bütün verileri okumak istiyorsak yapmamız gerek dosya konumu kısmında o klasörü işaret etmektir. (Örn: nfdump -R /var/flows/ROUTER1/2011/06/25/09 -o line) Böyle bir durumda bir çok sayıda veri komut arayüzünde gözükebilmektedir. Amacımız bütün verileri görüntülemek yerine en fazla trafik yapmış noktaları görüntülemek ise “-n SAYI” parametresini kullanabiliriz. Bu durumda
“nfdump -R /var/flows/ROUTER1/2011/06/25/09/ -o line -n 20” komutu bize ilk 20 sıradaki verileri gösterecektir.

Yavaş yavaş günlük hayatımıza girmeye başlayan IPv6 adresleri de nfdump ile görüntüleyebileceğimiz netflow verileri arasındadır.  Bunun için yapmamız gereken, netflow verilerinin gönderildiği cihazda versiyon 9 u kullanmak ve verilerin toplandığı sunucuda yapılacak sorgularda format belirtirken  -o line6, -o long6 ve –o extended6 seçeneklerini kullanmak ya da sorgulara “-6” parametresini eklemek olacaktır. (Örn: -o extended -6)

Nfdump vasıtasıyla yapabileceklerimiz şüphesiz bunlarla sınırlı değildir. Bunun için “man nfdump” komutunu kullanabileceğimiz gibi nfdump.sourceforge.net sitesinden de faydalanabiliriz. Yararlanabileceğimiz bir diğer kaynak  nfdump ile birlikte gelen INSTALL ve README dosyalarıdır.
Bu yazımda kısaca nfdump tan bahsetmeye çalıştım. Sonraki yazılarımda nfdump verilerini grafiksel olarak yorumlayabilen nfsen programından da bahsetmeye çalışacağım. Umarım faydalı olmuştur.

Görüşmek üzere…

Mehmet Burak Uysal

“NFDUMP” için bir cevap

Bir Cevap Yazın

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