Re: iptables
>>>>> On Thu, 13 Mar 2003 14:40:08 +0200
>>>>> "S" == Sergey <lutay@ciet.kiev.ua> wrote:
S>
S> Привет всем !
S> Как с помощью iptables сделать такую переадресацию:
S> a.b.c.d:XXXX -> e.f.g.h:YYYY
S> Все мои попытки закончились тем, что позволяет или изменить порт, или
S> же получателя. Вместе - никак. Подскажите плс, в какую сторону копать.
У нас роутер. Получает пакет (TCP?) на a.b.c.d:XXXX.
Хотим его завернуть на e.f.g.h:YYYY. Это делается DNAT'ом:
iptables -t nat -A PREROUTING -p tcp -d a.b.c.d --destination-port XXXX \
-j DNAT --to-destination e.f.g.h:YYYY
Но это не все. Если оставить так, то ответы (в частности, <SYN,ACK> на
инициирующий SYN) пойдут на source адрес. Но пойдут они с source
address'ом e.f.g.h, а ждут-то с a.b.c.d. Решить это можно так: в
POSTROUTING поменяем source address пакета, который изначально был
послан на a.b.c.d на адрес router'а.
iptables -t nat -A POSTROUTING -p tcp -d e.f.g.h --destination-port YYYY\
-j SNAT --to-source <local>
С UDP последнее правило может быть излишним. А может и не быть.
--
Alexander Kotelnikov
Saint-Petersburg, Russia
Reply to:
- References:
- iptables
- From: Sergey <lutay@ciet.kiev.ua>