If I might suggest, you probably want to use a compiled language like C.
The GLib C framework is probably a good approach, especially with its
excellent glib-dbus integration.
I agree a long running daemon would best be written in C, perhaps pyGtk would be good enough for only the GUI config dialogs. I will start a request for a fedorahosted project, then I'll work on recruiting developers yes.
So this is what we have, the C deamon (fired :) is going to:
- Listen for port listen events (new ports listening)
- Control opening/closing of iptables via RTNETLINK
- Expose the functionality over dbus
The GUI component will:
- Be a NetworkManager style applet, but will only be started once "fired" decides to, it should not be running 24x7
- Configure which ports will be opened, and on which condition they will be closed
Although NAT-PMP was mentioned, I'm not exactly sure how it fits in this picture. Isn't this designed to open ports on routers ?