По первой задаче.
Ух, сколько всякого насоветовали, хотя единственное полезное предоставил Pahanivo
Для начала неплохо бы узнать что во фре есть три(а не два как видится некоторым) различных фаерволла: ipfw, ipf и pf. Первые два примерно равносильны, а вот последний, пришедший из опенка, очень продвинут именно в плане безопасности. То что на других отбрасывается десятком правил на pf можно отбросить одним единственным. С учетом вашей паранойи и того, что вы позже сказали про ваш шлюз я бы порекомендовал поставить на нем именно OpenBSD и почитать доку по pf. По второй задаче.
Самый простой способ вычислить NAT это проверить TTL у пакетов, ставьте его принудительно в одно число как для транзитных так и для исходящих пакетов. А вот выдать шлюз под стандартную хрюшку вряд ли получится, нет стандартных для хрюши дырок да и tcp/ip стек отличается.
По третей задаче.
Не занимайтесь ерундой, у самого ssh мер безопасности более чем достаточно, не нужно сюда фаервол пихать.
По четвертой задаче.
На основе фаерволла не реализуемо в принципе. Лучше всего для этих протоколов поставить SQUID(или другой проски, например oops), а уже его подружить с антивирусом.