Ağ bağlantı noktası başına trafik istatistikleri


15

Birkaç ağ bağlantı noktasında (TCP ve UDP) birbirleriyle konuşan iki uygulamalı iki makinem var. Gönderdikleri ve aldıkları trafiği saymak istiyorum. Sadece genel sayıya değil, aynı zamanda liman başına makine başına istatistiklere de ihtiyacım var. Darkstat'ı denedim , ancak günlük istatistikler sağlamıyor, sadece genel sayaçlar.

Bu trafiği sayabileceğim başka bir yol var mı (bu iki makine arasına proxy veya ağ geçidi koyabilirim).

Yanıtlar:


16

iptables size her bir kuralın kaç tetiklendiğine dair istatistikler verebilir, böylece ilgili bağlantı noktalarına LOG kuralları ekleyebilirsiniz (bağlantı noktası 20 ve bağlantı noktası 80 diyelim):

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

ve sonra

iptables -n -L -v

size bu bağlantı noktaları üzerinden gönderilen paket ve bayt sayısını verecektir. Tabii ki, sizi ilgilendiren bağlantı noktalarını çıkıştan ayrıştırmanız gerekecektir.

Kesin değerlere ihtiyacınız varsa, bir -x ekleyin:

iptables -n -L -v -x

4
LOGKural koymanıza gerek yok (günlük dosyalarınızı akacak), bir kuralın kaç kez tetiklendiğini sayın.
Gilles 'SO- kötü olmayı kes'

4
Aslında. Bir kuralın eylem yapması gerekmez. Öğrenmek için yararlı bir ders: içermeyen kurallar -Jmuhasebe için iyidir.
Alexios


2

İptables yapılandırmanıza muhasebe kuralları ekleyebilirsiniz. Bunlar, KURULU ve İLİŞKİLİ trafiği kabul etmeden önce gerçekleşmeli veya geçen trafik sayımını kaçırırsınız. Web trafiğini saymak için aşağıdaki gibi bir kural deneyin:

iptables -A INPUT -p tcp --dport 80 

Bunlardan bir demet varsa, diğer zincirlerden ayrı olarak rapor ve sıfır sayaçları raporlamak için bir muhasebe zinciri oluşturmak isteyebilirsiniz.

Shorewall duvarı kolayca kural setine muhasebe kuralları eklemenizi sağlar.


1

Çıktı trafik istatistiklerini eklemeyi unutmayın.

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443

0

Tcpdump kullanmak,

tcpdump -i herhangi bir -nnn

yukarıdaki komutun çıktıları zaman damgası, src / dest ip adresleri, port ve paket uzunluğunu içerir. Bu bilgilerle, iyi yazılmış bir senaryo ile hedefinize kolayca ulaşabilirsiniz.


0

Hedef IP başına kullanım gerekip gerekmediği açık değildir, ancak vnstat arabirim başına trafik kullanımını kaydetmek için kullanışlı bir araçtır. Kurun ve vnstat -u -i eth0izlemek istediğiniz her arabirim için çalıştırın . Daha sonra günlük kullanım için kullanın vnstat -i eth0 -d.


1
Ben kullanarak vnstatport başına stat alabilirsiniz sanmıyorum ... Yoksa yanılıyor muyum?
pbm

1
@pbm Ah, TCP / UDP bağlantı noktası demek istediniz. Hayır, vnstat bunu yapmayacak.
mgorven
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.