Ну так разберись. Возьми этот кусочек скрипта, что я привёл, и построчно на русском языке опиши, что там делается. Я не буду разжевывать тебе каждую строчку, разве что четыре последних.
Правила с назначением ULOG являются частью системы подсчёта трафика.
Правило с назначением REJECT - это вариант назначения DROP, только быстрее приводящий к успокоению клиента. Поскольку клиент, подключившись на определённый порт, не ждёт ответа до истечения таймаута, а сразу получает ответ "тут ловить нечего" и идёт лесом.
Если говорить о том, почему у тебя через зад работает SNAT, обрати внимание, у тебя проверяется только адрес осточника. С таким же успехом ты мог вообще пропустить проверку.
Хотя бы проверяй, что адрес назначения НЕ принадлежит к нашей сети, если не хочешь писать имя исходящего интерфейса.
MASQUERADE можно использовать со статическим IP, но это менее эффективно, при условии, что правильно написано само правило трансляции.