Re: [tcpdump-workers] Promiscuous mode and BPF filters?

2004-12-02 Thread Claudio Lavecchia
Guy Harris wrote:
if it *does* use pcap_compile() and pcap_setfilter(), i.e. it 
already does packet filtering, it *adds* to the filter an expression 
to reject all the traffic from laptop B, i.e. instead of filtering 
with an expression X, you filter with (not wlan src 
BB:BB:BB:BB:BB:BB) and (X), where BB:BB:BB:BB:BB:BB is the source 
MAC address of laptop B's 802.11 card.

It will not be the solution if you expect it to be able to filter out 
packets transparently to libpcap - there's only one filter per packet 
capture handle, and libpcap uses that for its filtering.  (That also 
applies if you're not using libpcap, but are directly opening a 
PF_PACKET socket - the only difference in that case is that your 
application contains code that duplicates what libpcap does, and that 
code has the same limitations as libpcap, as the limitation of one 
filter per handle is an OS limitation.)
That is pretty much what I wanted to realize and of course it is 
working. At the beginning I was looking for a clean way to tell to the 
interface that is set in promiscuous mode, not to send out the packets 
that were matching the address of laptop B. Of course the solution of 
not letting the sniffer process packets that I do not want to see 
works. At the beginning I just felt it was cleaner to setup things 
outside the sniffer code, but that was just for design sake.

Thx a lot
Claudio
-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.


[tcpdump-workers] Promiscuous mode and BPF filters?

2004-12-01 Thread Claudio Lavecchia
Hello ppl,
I need a little assistance from you experienced packet filtering guys:
I am running a Linux Redhat 7.3 distribution (kernel version 2.4.18-3).
My problem is the following:
I have two laptops (say A and B) that have 802.11 wireless cards. I am 
developing some application that essentially perform sniffing functions 
using wireless cards in promiscuous mode. To test my code, I need those 
two laptops not to see each other (-- I do not want the wireless card 
of laptop A, which is operating in promiscuous mode to process packets 
coming from laptop B) and I want to test my appliction having my laptops 
on my desk, hence I need a way to hide the two laptops from each others.
I want to apply some kind of filters to laptops A and B, and I want the 
filtering to happen BEFORE the packets reach the promiscuous mode 
filter. Quickly borwsing the web I found BPF (BSD Packet Filter). Can 
that be the solution to my problem? If yes can anyone tell me how to 
quickly set up a BPF filter on laptop A that rejects all the traffic 
coming from laptop B?

Thx  a lot
Claudio
-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.


Re: [tcpdump-workers] Promiscuous mode and BPF filters?

2004-12-01 Thread Guy Harris
On Dec 1, 2004, at 7:53 AM, Claudio Lavecchia wrote:
I have two laptops (say A and B) that have 802.11 wireless cards. I am 
developing some application that essentially perform sniffing 
functions using wireless cards in promiscuous mode. To test my code, I 
need those two laptops not to see each other (-- I do not want the 
wireless card of laptop A, which is operating in promiscuous mode to 
process packets coming from laptop B) and I want to test my appliction 
having my laptops on my desk, hence I need a way to hide the two 
laptops from each others.
I want to apply some kind of filters to laptops A and B, and I want 
the filtering to happen BEFORE the packets reach the promiscuous mode 
filter.
What do you mean by the promiscuous mode filter?  Promiscuous mode 
is a hardware mode on LAN adapters (including WLAN adapters), in which 
the adapter doesn't filter out packets that it sees but that are sent 
to a unicast address other than one of the adapter's unicast addresses 
or, on adapters that can be configured with a list of multicast 
addresses, sent to a multicast address other than one of those 
multicast addresses.

That filter is in the hardware or firmware of the adapter, so you're 
not going to be able to do the filtering before that.

Quickly borwsing the web I found BPF (BSD Packet Filter). Can that be 
the solution to my problem?
BPF is used to refer to two things:
	1) the raw packet capture mechanism on various BSDs (including OS X) 
and AIX;

	2) the packet filtering mechanism used by that raw packet capture 
mechanism *and* in the Linux socket filter mechanism and in 
Digital/Tru64 UNIX's raw packet capture mechanism *and* in the WinPcap 
driver *and* in libpcap when reading from a savefile or capturing on a 
platform whose raw packet capture mechanism doesn't support that 
filtering mechanism.

BPF, in the first sense, won't be the solution to your problem, as 
that's not the raw packet capture mechanism on Linux.  On the platform 
where it *is* the raw packet capture mechanism, it's not really the 
solution, either, it's just a requirement for capturing packets at all.

In the second sense, it's the filter mechanism used by pcap_compile() 
and pcap_setfilter() in libpcap.  It *could* be the solution *if* 
you're willing to modify your application slightly so that

	if it doesn't use pcap_compile() and pcap_setfilter(), i.e. it 
doesn't do any packet filtering, it temporarily sets a filter, while 
you're testing it, to reject packets from laptop B;

	if it *does* use pcap_compile() and pcap_setfilter(), i.e. it 
already does packet filtering, it *adds* to the filter an expression to 
reject all the traffic from laptop B, i.e. instead of filtering with an 
expression X, you filter with (not wlan src BB:BB:BB:BB:BB:BB) and 
(X), where BB:BB:BB:BB:BB:BB is the source MAC address of laptop B's 
802.11 card.

It will not be the solution if you expect it to be able to filter out 
packets transparently to libpcap - there's only one filter per packet 
capture handle, and libpcap uses that for its filtering.  (That also 
applies if you're not using libpcap, but are directly opening a 
PF_PACKET socket - the only difference in that case is that your 
application contains code that duplicates what libpcap does, and that 
code has the same limitations as libpcap, as the limitation of one 
filter per handle is an OS limitation.)

-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.