Stateful inspection vs connection tracking?
OK, I'm confused.....
I've been considering OpenBSD for my home router, and in the course of my research I ran across this piece on pf, OpenBSD's packet filtering utility, with a very interesting comment at the bottom:
Quote:
IPTables does not do stateful inspection/filtering, only connection tracking. As to how that would impact your needs, that is something you need to investigate. To me it sounds like a shortcoming in IPTables, one that hopefully will be changed.
Conventional wisdom holds that netfilter is a stateful packet filter. So then I got curious..... and I found this post to the netfilter mailing list that seems to confirm that, with the following comment:
Quote:
This configuration can't be done with Netfilter because you are doing what we could call "connection tracking" and not "stateful inspection".
I don't really understand the point he was making about the syn packet, but he certainly says that netfilter is not stateful.
Then in this interview with Daniel Hartmeir, the author of pf, he goes into a very in-depth discussion of stateful inspection. I found this comment particularly interesting:
Quote:
We check each sequence number in each TCP packet against narrow windows of legal values. Mike Frantzen wrote this implementation, and he also fine-tuned all parameters to minimize the number of mismatches in real traffic. I don't know about commercial firewalls, but I believe this is the best implementation of stateful filtering around. Linux' netfilter is heading in the same direction, I think.
Say what? I thought that was what netfilter did.....
So what exactly is the difference between stateful inspection and conenction tracking?