Ağ istatistik uygulaması : IPTraf-ng

Ali Orhun Akkirman - Jun 11 '22 - - Dev Community

GNU/Linux sunucunuz var ve bu sunucunuz üzerindeki ağ trafiğini incelemek istiyorsunuz. Bu gibi bir durumda kullanılabilecek bir çok uygulama bulunmakta.

Alternatiflere bakalım

Ağ trafiğini takip etme uygulamalarından belki de en önemlisini tcpdump olarak söyleyebilirim. Bu uygulama ile belirli ağ arabirimi üzerinden geçen trafiği özellikle port ve IP bazlı olarak filtreleyerek toplayabiliyor ve detaylı inceleyebiliyorsunuz. Hatta pcap dosyası olarak kaydedip farklı ortamlarda (örneğin wireshark) sonradan da inceleyebiliyorsunuz. Ama bugünkü konumuz tcpdump değil, yani paketlerin içeriği çok da önemli değil.

Alternatif uygulamalara baktığımızda iftop'u görebiliriz. Bu uygulama canlı olarak belirli IP üzerindeki bandgenişliğini sunma özelinde detaylı bilgiler verebilmektedir. Yani hedefimiz IP bazlı olarak bandgenişliği de değil.

Bir başka kullanışlı uygulama da nload. Bu uygulamanın kullanım alanı ise gelen ve giden ağ trafiğini takip etmek diyebiliriz. Bu iş için diğerlerinden daha başarılı bir özet sunabilmektedir. Ama hedefimiz bu da değil.

Peki ne için IPTraf-ng?

Öncelikle IPTraf isimli bir uygulama bulunup, en son 3.0.0 sürümünü 2005 yılında duyurmuştur. Daha sonrasında "yeni jenerasyon" (ng) eki ile başka bir ekip tarafından güncellenerek şuanki sürecine devam etmiştir. Bu nedenle yazı içerisinde IPTraf isminden bahsetsem de IPTraf-ng olarak düşünülmelidir.

Image description

IPTraf-ng, konsol bazlı interaktif veya arkaplanda çalışan, ağ istatisik izleme aracıdır. En önemli özelliklerinden birisi loglamaya imkan vermesidir. Diğer uygulamalar gibi ağ arabirimlerine göre kısıtlayacak şekilde çalışabilmektedir. Belirli bir süre çalışıp durabilmektedir. Ve en önemlisi olarak TCP veya UDP trafiğin yönü ve taşınan paketin büyüklüğünü zamana göre sunmaktadır.

Kitabi bilgi olarak aşağıdaki protokolleri tanıyabilmektedir.

  • IP, TCP, UDP, ICMP, IGMP, IGP, IGRP, OSPF, ARP, RARP, ESP, AH, GRE and L2TP.

Konsol üzerinde Arayüz uygulaması

Uygulama normal şekilde çalıştırıldığında bir arayüz açılarak bu arayüzde belirli filtrelere göre ağ izlemesi yapılabilmesini sağlamaktadır.

Image description

Komut satırı üzerinde çalışma

Arayüzdense daha çok sevdiğim kısım CLI (Komut Satırı) kısmıdır. Tüm özellikleri komut satırı uygulamasında olmasa da önemli kısımlardan bahsedeceğim.

Öncelikle komut satırı olarak iptraf-ng komutu kullanılmaktadır. Fakat tek başına çalıştırmak yerine aşağıdaki parametrelerle çalıştırmak gerekecektir.

Kurulum

Uygulamanın kurulum oldukça kolaydır. Hem iptraf hem de iptraf-ng paketleri hem DEB tabanlı sistemler hem de RPM sistemlerindeki güncel depolarda bulunmaktadır. Dolayısıyla aşağıdaki şekillerde kurulum yapabilirsiniz:

sudo apt install iptraf
Enter fullscreen mode Exit fullscreen mode

veya

sudo yum install iptraf
Enter fullscreen mode Exit fullscreen mode

Loglama yeteneği

Arayüz açılması yerine arkaplanda loglama yapılabilmesi için aşağıdaki şekilde log oluşturulacak yolun belirtilmesi gerekmektedir.

iptraf-ng -L /opt/orneklogdosyasi.txt
Enter fullscreen mode Exit fullscreen mode

Bu kısımda en önemli nokta log dosyasının göreli yol (relative path) olarak değil mutlak yol (absolute path) olarak verilmesi gerekliliğidir.

Uygulamayı bu şekilde başlatmaya çalıştığınızda size yine bir araüz açılacak ve "Yapılandırma" da yapabileceğiniz, izlemeyi başlatacağınız bir arayüz çıkacak. Tabi ki buradaki adımları biraz sonraki parametrelerle seçili hale getirebiliriz.

Image description

Ağ arayüzü seçilmesi

Uygulamanın dinleyeceği ağ arayüzü spesifik olarak belirtilebilir veya tüm arayüzlerden, tüm ağ trafiğini analiz edebilirsiniz. Bunun için aşağıdaki gibi uygulama yapılması gerekmektedir:

iptraf-ng -i eno1 -L /opt/orneklogdosyasi.txt
Enter fullscreen mode Exit fullscreen mode

veya

iptraf-ng -i all -L /opt/orneklogdosyasi.txt
Enter fullscreen mode Exit fullscreen mode

Bu şekilde ağ arayüzünü de seçmiş olacağız. Fakat sürecin başlatılması için hala daha arayüzün açılmasını beklemekteyiz.

Image description

Arkaplanda açmak ve durdurmak

Uygulamanın arayüzünü hiç görmeden arkaplanda başlatmak için "-B" ile arkaplanda başlatabiliyoruz.

iptraf-ng -B -i eno1 -L /opt/orneklogdosyasi.txt
Enter fullscreen mode Exit fullscreen mode

Bu şekilde arayüz açılmadan direkt olarak sürecin başlatıldığını görebiliriz. Bu süreci kapatmak için "-9" yerine "-USR2" ile süreç id'sini kapatmak daha doğru olacaktır. Nedeni -9 ile anında kapatılırken, USR2 ile şeffaf bir kapatma sağlanabilmektedir.

sudo kill -USR2 43537 
Enter fullscreen mode Exit fullscreen mode

Tabi ki bu adıma hiç gerek kalmadan belirli dakika sonrasında otomatik kapatılmasını sağlamak için "-t" parametresi de oldukça verimli olacaktır. Bunun için de dakika cinsinden değer girilmesi gerekmektedir.

iptraf-ng -t 5 -B -i eno1 -L /opt/orneklogdosyasi.txt
Enter fullscreen mode Exit fullscreen mode

Log formatı ve okunması

İşlem başlatıldığında aşağıdaki gibi IP trafik izlenmesi başlandığı yönünde bir mesaj verilmektedir.

Sun Jun 12 00:57:21 2022; ******** IP traffic monitor started ********
Enter fullscreen mode Exit fullscreen mode

Ve tabi ki işlem durdurulduğunda da aşağıdaki mesajı görmekteyiz.

Sun Jun 12 00:58:35 2022; ******** IP traffic monitor stopped ********
Enter fullscreen mode Exit fullscreen mode

Trafik akışı sırasında ise aşağıdaki gibi UDP veya TCP paketlerini görebilmekteyiz.

un Jun 12 00:57:22 2022; UDP; eno1; 61 bytes; from 192.168.1.39:43386 to 216.58.206.202:443
Sun Jun 12 00:57:23 2022; UDP; eno1; 53 bytes; from 216.58.206.202:443 to 192.168.1.39:43386
Sun Jun 12 00:57:23 2022; TCP; eno1; 60 bytes; from 192.168.1.39:49708 to 192.168.1.66:8006; first packet (SYN)
Sun Jun 12 00:57:23 2022; TCP; eno1; 60 bytes; from 192.168.1.66:8006 to 192.168.1.39:49708; first packet (SYN)
Sun Jun 12 00:57:23 2022; TCP; eno1; 52 bytes; from 192.168.1.39:49708 to 192.168.1.66:8006; FIN sent; 6 packets, 867 bytes, avg flow rate      6,94 kbps
Sun Jun 12 00:57:23 2022; TCP; eno1; 52 bytes; from 192.168.1.66:8006 to 192.168.1.39:49708; FIN acknowleged
Sun Jun 12 00:57:23 2022; TCP; eno1; 52 bytes; from 192.168.1.66:8006 to 192.168.1.39:49708; FIN sent; 5 packets, 2050 bytes, avg flow rate     16,40 kbps
Sun Jun 12 00:57:23 2022; TCP; eno1; 52 bytes; from 192.168.1.39:49708 to 192.168.1.66:8006; FIN acknowleged
Sun Jun 12 00:57:23 2022; UDP; eno1; 61 bytes; from 192.168.1.39:43386 to 216.58.206.202:443
Sun Jun 12 00:57:23 2022; UDP; eno1; 53 bytes; from 216.58.206.202:443 to 192.168.1.39:43386
Sun Jun 12 00:57:23 2022; UDP; eno1; 61 bytes; from 192.168.1.39:43386 to 216.58.206.202:443
Sun Jun 12 00:57:23 2022; UDP; eno1; 53 bytes; from 216.58.206.202:443 to 192.168.1.39:43386
Enter fullscreen mode Exit fullscreen mode

Özet

Bu şekilde temel bir şekilde loglanabilecek bir ağ istatistiği çıkartılabilmektedir. Eğer ihtiyaç bu seviyede ise bu uygulamanın kullanılması oldukça verimlidir. Daha üst ihtiyaçlar için başta bahsettiğim uygulamalar ve ntop gibi gelişkin aracı da deneyebilirsiniz. Ve tabi ki bunların dışında farklı seviyede zaman serisi veritabanı kullanarak ağ izlemesi de yapabilen daha gelişkin uygulamalar da kullanabilirsiniz.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .