Первый (кривой) *filter не нужен, он у тебя перезаписывается (правильным) вторым.
Откуда nmap делаешь?
Ну а подробности - man iptables и
http://www.docum.org/docum.org/kptd/
Пользователь решил продолжить мысль 30 Марта 2011, 11:34:17:
Я бы, наверное, сделал так:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3899 -m conntrack --ctstate NEW -j DNAT --to-destination 192.168.0.66:3899
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
*mangle
:FORWARD ACCEPT [0:0]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
*filter
:FORWARD DROP [0:0]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
COMMIT
Только не уверен, что это прямо так можно загонять в таблицу.
Если у вас нет прямого доступа к консоли сервера, лучше не экспериментируйте.
Главная идея в том, чтобы первыми пропускать заведомо годные пакеты
-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
тогда не получится так, что по десятому разу заначеный порт переначивать будет.
Пользователь решил продолжить мысль 30 Марта 2011, 11:37:25:
Стоооп, а на терминальном сервер дефолтный маршрут куда показывает?