When I was at LISA, one of the sysadmins I met mentioned a firewall
unit testing script that a coworker of his had come up with. The idea
was to run your OpenBSD firewall in a QEMU instance, then try passing
traffic back and forth to make sure everything worked as
expected. I've been looking for that tool to be released, but haven't
seen it....or anything else like it either…
Until today, that is, when I stumbled on NetUnit. It's a
Java-based tool that tests basic network connectivity, using XML files
to specify tests. So far he's got tests for ICMP/port 7 (which I never
knew was the echo port), TCP ports, HTTP/HTTPS and MySQL. Not bad
at all, except for my lack of Java experience.
Of course, now I want to write my own tester using Perl and QEMU. Like
I've got time. But here's an idea for anyone who can use it: test your
firewall using three instances of QEMU (inside, outside and firewall),
and have the inside and outside hosts communicate using the serial
port. "I'm gonna send an echo request, did you see it?" "Yes, did you
see the reply?" It's a bit more feedback than simply noting the lack
of the expected reply.
And it's not at all like conversations that start out with, "I sent
you an email. Did you get it?"