>{$fwcmd} add allow tcp from $office_net $unprivports to any $unprivports
>{$fwcmd} add allow tcp from any $unprivports to $office_net $unprivports established
Вот этими правилами ты разрешил работу всех пиринговых клиентов (ICQ, Napster, Gnutella etc) и троянов всех мастей!
>можно как-то по-другому пропустить passive ftp через firewall?
А почему ты так настаиваешь на passive ftp? IMHO лучше реализовать правила для нормального FTP, чем допускать в сеть Napster.
Попробуй вместо этих двух правил сделать:
${fwcmd} add allow tcp from any 20 to $office_net $unprivports
${fwcmd} add allow tcp from $office_net $unprivports to any 20 established
Будет нормальный FTP
Конечно, без connection tracking возникает небольшая потенциальная дырка. Но для ее реализации нужно ну очень постараться: на внутреннем хосте должен слушать троян на верхних портах (именно слушать - сам троян наружу не пройдет - established). При этом, снаружи нужно устанавливать с ним связь только с 20 порта. IMHO маловероятно.