If you are referring to IRCd Servers then you would be usually using ports such as 6660-6669 7000 and possibly 6697 (which is unreal's default ssl port). Of course you would want to open another yet for doing server linking.
We're talking incoming ports of course since these would be the dst-port as the src would be the client connecting.
Firewall alone won't do much unless you are blocking out apache and such as well. Honestly have yet to see a hacker get into a server actually through the ircd itself (most ircd code is fairly secured and at best gets crash problems where the ircd itself would just core dump only). (Presume the system has a bunch of other processes running besides the ircd then obviously?).
In any case you're talking TCP mainly for the ircd and then UDP for it's dns lookups.