This could be solved with 'embryonic states' [...]

Sounds interesting, and far more general than the simple hack I was
envisioning.  If there's some way of convincing the kernel to send the
initial SYN and accept the SYN/ACK, then all that's needed (if it
doesn't already exist) is a means for the userland proxy to create a
state entry to simulate an established connection.  In the absence of
TCP connection state tracking, I image that this would be fairly
easy...

Anyway, good to see people are thinking about this, but at first sight
this seems to be a show stopper for me, and pushes me towards my
original plan of using linux and netfilter/iptables.

Hmm, I guess maybe I can live with continuing to allow all high
numbered ports into my ftp server.  At the moment, using linux and
ipchains, I have to allow this anyway, and ultimately it's pretty safe
since I know that nothing else should be listening on those ports on
my ftp server.  Is that what everyone else does?

Maybe it's worth it for the added security that a userland proxy gives
me over my outgoing ftp connections (I don't fully trust anything that
does packet-level snooping of the control connection, because of the
potential to get confused when commands or responses span packets).

Incidentally, the other big thing I get with iptables (that pf lacks,
as far as I can tell) is the ability for a rule to match on both the
interface that a packet was received on and the interface that it will
be forwarded out on.  Whilst not a showstopper, it makes the rules a
lot simpler and maintainable in the case of a large network (otherwise
you essentially have to duplicate your routing table in your filtering
rules in order to gain the same effect).

I guess this functionality could be implemented in userland as a
front-end in pfctl, assuming you only care about static routing
tables...  (I assume the antispoofing is done this way?)

Finally (and I realise that this is probably the wrong place to ask
this question) if I decide that pf is not ready for me should I be
considering ipfilter as an alternative to linux?  (Probably on FreeBSD
since this is currently one of our infrastructure platforms.)

Reply via email to