Last months I saw in various support lists and forum questions about lost connections and Firebird
As said in firebird.conf :
Normally,Firebird uses SO_KEEPALIVE socket option to keep track of active connections. If you do not like default 2-hour keepalive timeout then adjust your server OS settings appropriately.
I found a good web page explaining how to setup these values for various OS, so here is the link : http://www.gnugk.org/keepalive.html
Note that MacOsX behaviour is the same as FreeBSD
When Firebird 2.5 will be there, with monitoring tables, it will be possible to kill connections if need.