I'm trying to get my server open so I can ftp it to put stuff on my web site. I thought ftp only used ports 20 (data) and 21 (control), but I've opened those ports and it still isn't fully functional. I can ftp to it but when I try to put a file, it just sits there. I have to tell it to accept all packets from my computer to get it to work. I know the FreeBSD firewall is a little different, but if you're good with networking, you should be able to read basic ipfw commands without a tutorial. Here's my set of firewall rules on the computer:

ipfw -f flush
ipfw add pass all from to
ipfw add pass tcp from any to ${ip} 20 setup
ipfw add pass tcp from any to ${ip} 21 setup
[similar lines to open other ports]
ipfw add pass tcp from ${subnet} to ${ip} 23 setup
ipfw add deny tcp from any to ${ip} setup
The default is set to accept by the way. ${ip} is set to the machine's ip and ${subnet} is set to the subnet of the whole school.