LINUX.ORG.RU
решено ФорумAdmin

iptables с localhost до lan

 , ,


0

1

Подключаюсь к сервису на сервере через проброс порта через ссш тунель, все работало замечательно, пока сервис не переехал дальше за шлюз.

Можно как то подключение к порту локалхоста перенаправить на порт в локальной сети через iptables ???

Форвардинг порта без ссш тунеля работает, но не для локалхоста почему то

★★★

Ответ на: комментарий от wolverin

Если я правильно понял, у тебя галиматья написана.

iptables -t nat -A PREROUTING -i lo -p tcp -m tcp -m multiport --dports 1111,2222 -m comment --comment tunnel -j DNAT --to-destination 192.168.x.x

UPD.

Проверил, все не так. Тебе, видимо, просто SNAT не хватает, а так все верно вроде бы.

Anoxemian ★★★★★
()
Последнее исправление: Anoxemian (всего исправлений: 2)
Ответ на: комментарий от wolverin

тебе надо SNAT добавь, то что я написал - удали, я тупанул. iptables -t nat -A POSTROUTING -o {192.168.x.x_INTERFACE} -j SNAT --to-source {YOUR_LOCAL_192.168.x.x}

Ибо твой 192.168.x.x понятия не имеет о 127.0.0.1, который сгенерил запрос )

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

извините, не понимаю зачем SNAT нужен, мне нужно чтобы пакеты идущие на локалхост ушли на сервер в локальной сети, а не менялся источник пакетов

пакеты все однозначно приходят на интерфейс lo, но там на шлюзе никто их не слушает, их слушают по другому ip на этих же портах

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от wolverin

Извиняю, у тебя на сервер летит пакет с источником 127.0.0.1 -> 192.168.x.x Куда ответ последует? Просто сделай.

Тебе надо из пакета

127.0.0.1 => 127.0.0.1:1111 надо сделать 192.168.х.х => 192.168.x.x:1111

это dnat+snat

Anoxemian ★★★★★
()
Последнее исправление: Anoxemian (всего исправлений: 1)
Ответ на: комментарий от Anoxemian

это вместе с моим правилом нужно ваше добавить? или одно ваше? если только последнее, то ничего такой трафик само по себе не создает 127.0.0.1 -> 192.168.x.x

wolverin ★★★
() автор топика

Можно средствами ssh указать адрес проброса, не помню только как,
на подобии ssh ssh@www.net -p 22 -ключXYLтипа 127.0.0.1:2222:192.168.x.x:2222
А потом во втором терминале ssh ssh@127.0.0.1 -p 2222 подключиться уже к 192.168.x.x через www.net

drl
()