Господа с iptables уже дел не имел давно так что если что извиняйте.
Вот подвернулась задача просто перебросить порты с одного сервера на другой.
Написал маленький скрипт
-----------------------------------------
#!/bin/shEXT_IP=XXX.XXX.XXX.XXX
INT_IP=192.168.2.1
EXT_IF=eth1
PORT1=443
PORT2=443
iptables -F
iptables -F -t nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d $EXT_IP -i $EXT_IF -p tcp -m tcp --dport $PORT2 -j DNAT --to-destination $INT_IP:$PORT1
iptables -t nat -A POSTROUTING -s $INT_IP -o $EXT_IF -p tcp -m tcp --dport $PORT1 -j SNAT --to-source $EXT_IP
iptables -A FORWARD -d $INT_IP -p tcp -m tcp --dport $PORT1 -m state --state NEW -j ACCEPT
-----------------------------------------------------
При запуске никаких ошибок не возникает
iptables -L и iptables -L -t nat показывают что все правила применились.
Тем не менее ничего не работает никакой переброски не наблюдается. При этом телнет на машину 192.168.2.1 443 отрабатывает и подключается, а тот же телнет на XXX.XXX.XXX.XXX 443 - получаю таймаут.
проверил
cat /proc/sys/net/ipv4/ip_forward
1
Далее проверил что модуль загружен
lsmod
Module Size Used by
ipt_state 3393 1
iptable_filter 4673 1
iptable_nat 31077 1
ip_conntrack 54297 2 ipt_state,iptable_nat
ip_tables 22337 3 ipt_state,iptable_filter,iptable_nat
parport_pc 29569 0
lp 15345 0
parport 44621 2 parport_pc,lp
Даже не знаю уже что ещё сделать, у кого есть какие идеи?
От чего это может не работать ?