FreeBSD üzerinde bpf kullanan bir uygulamanız varsa(Trafik izleme, Sniffer, Saldırı Tespit/Engelleme Sistemleri vs) bu uygulamanın sistem üzerinden gidip-gelen tüm paketleri yakalayabildiğini görmek önemli bir şeydir.
FreeBSD 7 ile birlikte netstat’a -B parametresi eklenerek bu özellik sağlanmış gözüküyor( Eskiden port ağacından bpfstat kurularak yapılabiliyordu). Böylece kullandığınız yazılımın ne kadar sağlıklı çalıştığını görebilirsiniz.
Aynı anda Hem Firewall loglaması(Packet filter loglaması bpf kullanıyor) hem de Snort çalışan bir FreeBSD sistemde ekteki gibi bir çıktı alıyorum.
# netstat -B
Pid Netif Flags Recv Drop Match S blen Hblen Command
562 pflog0 p–s–l 2 03181642 0 203181642 1137024 0 pflogd
4951 lagg0 p–s— 80564996 0 80564996 5405484 0 snort
Görüleceği gibi her iki uygulamada paket kaçırmadan çalışıyor. Yine bpf kullanan ve paket kaçırdığını düşündüğümüz başka bir uygulamayı inceleyelim.
# netstat -B
Pid Netif Flags Recv Drop Match Sblen Hblen Command
14109 lagg0 p–s— 716609791 1175963 315031330 9547396 0 Uygulama1
14111 lagg0 p–s— 716609841 0 40677365 2608139 0 Uygulama1
14108 lagg0 p–s— 716609840 2975378 611795979 9262176 0 Uygulama1
14110 lagg0 p–s— 716609803 0 7578723 214966 0 Uygulama1
Çıktıdan görüleceği gibi Uygulama1 isimli programımız ciddi sayılabilecek oranlarda paket kaçırıyor.
netstat -B ile alınan çıktı sabitdir. Yani netstat -w(ekranı belirli aralıklarda yenile) benzeri bir özelliği yoktur. Bunun için aşağıdaki tek satırlık script kullanılabilir.
# while [ 1 ];do netstat -B;sleep 2;done
Pid Netif Flags Recv Drop Match Sblen Hblen Command
562 pflog0 p–s–l 208976932 0 208976932 1750144 0 pflogd
4951 lagg0 p–s— 101664407 0 101664407 734372 0 snort
Pid Netif Flags Recv Drop Match Sblen Hblen Command
562 pflog0 p–s–l 209035050 0 209035050 1700096 0 pflogd
4951 lagg0 p–s— 101870233 0 101870233 9502240 0 snort
Pid Netif Flags Recv Drop Match Sblen Hblen Command
562 pflog0 p–s–l 209090568 0 209090568 1451264 0 pflogd
4951 lagg0 p–s— 102070052 0 102070052 3575342 0 snort
Pid Netif Flags Recv Drop Match Sblen Hblen Command
562 pflog0 p–s–l 209147854 0 209147854 1330048 0 pflogd
4951 lagg0 p–s— 102278007 0 102278007 2218950 0 snort
….
çıktıdaki Flags değerindeki alanlar aşağıdaki anlamlara geliyor.
The bpf(4) flags displayed when netstat is invoked with the -B option represent the underlying parameters of the bpf peer. Each flag is repre-
sented as a single lower case letter. The mapping between the letters and flags in order of appearance are:
p Set if listening promiscuously
i BIOCIMMEDIATE has been set on the device
f BIOCGHDRCMPLT status: source link addresses are being filled auto-
matically
s BIOCGSEESENT status: see packets originating locally and remotely on
the interface.
a Packet reception generates a signal
l BIOCLOCK status: descriptor has been locked
bunu yazdığınız iyi oldu hocam elinize sağlık..