Найдите шпаргалку по "netfilter packet flow" ( типа http://clip2net.com/clip/m17268/1259352160-clip-92kb.png ). Исходя из того, что вы написали, трудно сказать в чём дело, но, может, со шпаргалкой, вам самому станет понятнее.Не пытайтесь создать сразу сложную схему, особенно оесли она не получается с диагнозом "странно". Сделайте что-то совсем простое, и, потом, постепенно усложняйте.
> # Подменяю ip отправителя при обращении к порту 666 протокол udp
> /sbin/iptables -t nat -A POSTROUTING -j SNAT --to-source 8.8.8.8 -p udp --dport 666
Предположу, что это правило просто не применяется. Если вы в PREROUTING перенаправили пакет на 127.0.0.1, что пойдёт по цепочке INPUT, то никакого POSTROUTING ему уже не светит.
> # Перенапрявляю все обращения к порту 666 на локальный интерфейс.
> /sbin/iptables -t nat -A PREROUTING -p udp --dport 666 -j REDIRECT --destination 127.0.0.1
Вы точно REDIRECT хотели, а не DNAT?
> # Пытаюсь логировать все это
> /sbin/iptables -A INPUT -p udp --dport 666 -j LOG --log-prefix "iptabless: "
Если до этого правила в INPUT уже был применён какой-то "-j <action>", например ACCEPT, то это уже применятся не будет.
> /sbin/iptables -A OUTPUT -p udp --dport 666 -j LOG --log-prefix "iptabless: "
Если до этого правила в OUTPUT уже был применён какой-то "-j <action>", например ACCEPT, то это уже применятся не будет.
> /sbin/iptables -A FORWARD -p udp --dport 666 -j LOG --log-prefix "iptabless: "
Если до правила в FORWARD уже был применён какой-то "-j <action>", например ACCEPT, то это уже применятся не будет.
> cat messages | grep iptables
> # Ничего не работает и в логах пусто. Где я неправ?
Поделитесь, чего вы, собственно, пытаетесь достичь?
(Если всё равно, куда попадать, то и неважно, в какую сторону идти.)