A packet filter is a piece of software which looks at the header
of packets as they pass through, and decides the fate of the entire packet. It might decide to DROP
the packet (i.e., discard the packet as if it had never received it), ACCEPT
the packet (i.e., let the packet go through), or something more complicated.
Under Linux, packet filtering is built into the kernel (as a kernel module, or built right in), and there are a few trickier things we can do with packets, but the general principle of looking at the headers and deciding the fate of the packet is still there.Linux 2.4 Packet Filtering HOWTO