Назад | Перейти на главную страницу

перенаправить исходящий трафик на внутренний IP с помощью iptables

Я пытаюсь использовать iptables для перенаправления исходящего трафика на внешний IP-адрес, как если бы это был входящий трафик. Моя установка выглядит следующим образом;

         NET A          NET B      
|------|       |------|       |--|
|SERVER|<----->|DD-WRT|<----->|FW|<--> WAN
|------|   |   |------|       |--|
           |
|------|   |
| COMP |<--|
|------|

Где SERVER и COMP - это компьютеры в сети A, а DD-WRT - это маршрутизатор, соединяющий сети A и B, а FW - это большой межсетевой экран, соединяющий сеть B с WAN.

У меня правильно настроена переадресация портов на моем маршрутизаторе DD-WRT и большой брандмауэр для пересылки пакетов на СЕРВЕР, когда внешние компьютеры пытаются подключиться к FW. Однако, когда COMP пытается подключиться к FW, пакеты отбрасываются, потому что FW не распознает, что пакеты, приходящие внутри, предназначенные для адреса WAN, предназначены для маршрутизации в соответствии с внешними правилами.

Поэтому я хотел бы каким-то образом маршрутизировать пакеты, исходящие из COMP, предназначенные для WAN-адреса FW, чтобы они отображались DD-WRT, как если бы они вместо этого были предназначены для его адреса в сети B, поскольку я знаю, что он способен правильно маршрутизировать эти типы пакетов. .

Если у кого-то еще есть предложение получше, я, конечно, был бы рад его услышать!

Я предполагаю, что вы выполняете NAT для трафика из NET A в NET B, и в этом случае вам нужно будет добавить правило для исключения трафика из NET A, предназначенного для адреса NET B DD-WRT - что-то вроде :

iptables -t nat -I POSTROUTING -s <net.a.ip.block/mask> -d <dd-wrt.net.b.address> -j ACCEPT

или вы можете переписать адрес так:

iptables -t nat -I PREROUTING -s <net.a.ip.block/mask> -d <dd-wrt.net.b.address> -j DNAT --to <SERVER.net.a.address>

РЕДАКТИРОВАТЬ: правильно перечитав вопрос, вам понадобится вариант второго метода:

iptables -t nat -I PREROUTING -s <net.a.ip.block/mask> -d <fw.wan.add.ress> -j DNAT --to <server.net.a.address>