URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94983
[ Назад ]

Исходное сообщение
"Дублирование порта"

Отправлено Frealka , 03-Сен-13 22:50 
Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере (Б) сделать правило желательно через iptables но возможно и другими любыми методами(если дадите хотя бы пример) что бы при доступе Б:999 которого в общем то нет,сразу была трансляция того что на А:999 , т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при этом никаких действий на сервере (А) выполнятся не должно.
Знаю что это возможно,подскажите знатоки.

Содержание

Сообщения в этом обсуждении
"Дублирование порта"
Отправлено reader , 03-Сен-13 23:03 
> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
> (Б) сделать правило желательно через iptables но возможно и другими любыми
> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
> в общем то нет,сразу была трансляция того что на А:999 ,
> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
> этом никаких действий на сервере (А) выполнятся не должно.
> Знаю что это возможно,подскажите знатоки.

http://www.opennet.me/docs/RUS/iptables/#DNATTARGET


"Дублирование порта"
Отправлено Sot , 04-Сен-13 02:55 
> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET

ИМХО. Это бы сработало, если бы в качестве шлюза для А выступал бы Б.
На вскидку приходит быстрое решение - rinetd. Пример: http://linuxnotes.net/debian/perenapravlenie-portov-s-pomosc...


"Дублирование порта"
Отправлено reader , 04-Сен-13 10:05 
>> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
> ИМХО. Это бы сработало, если бы в качестве шлюза для А выступал
> бы Б.
> На вскидку приходит быстрое решение - rinetd. Пример: http://linuxnotes.net/debian/perenapravlenie-portov-s-pomosc...

ниже таблички расписано про ответные пакеты


"Дублирование порта"
Отправлено sam , 04-Сен-13 04:20 
>> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
>> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
>> (Б) сделать правило желательно через iptables но возможно и другими любыми
>> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
>> в общем то нет,сразу была трансляция того что на А:999 ,
>> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
>> этом никаких действий на сервере (А) выполнятся не должно.
>> Знаю что это возможно,подскажите знатоки.
> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET

+SNAT


"Дублирование порта"
Отправлено Frealka , 04-Сен-13 12:50 
хочу дополнить что это нужно для UDP портов

"Дублирование порта"
Отправлено Sot , 04-Сен-13 16:21 
> хочу дополнить что это нужно для UDP портов

Тогда http://portfwd.sourceforge.net/


"Дублирование порта"
Отправлено Frealka , 04-Сен-13 19:53 
>> хочу дополнить что это нужно для UDP портов
> Тогда http://portfwd.sourceforge.net/

всё не то,может на питоне или перл есть демон какой-то?
Мне не нужны туча функций и тугого софта,мне нужно будет часто менять ип\запускать и не один раз.


"Дублирование порта"
Отправлено sabakka , 04-Сен-13 22:23 
>>> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
>>> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
>>> (Б) сделать правило желательно через iptables но возможно и другими любыми
>>> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
>>> в общем то нет,сразу была трансляция того что на А:999 ,
>>> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
>>> этом никаких действий на сервере (А) выполнятся не должно.
>>> Знаю что это возможно,подскажите знатоки.
>> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
> +SNAT

дык делай
раз - пакет приходит - меняем адрес назначения на А
два - тот же пакет когда уходит меняем адрес источника на Б, чтобы А возращал Б, а Б возвращал тому кто обратился
файрволл стайтфул, и все
получается SNAT+DNAT+statefull FW


"Дублирование порта"
Отправлено erera22 , 05-Сен-13 01:53 
stunnel?

"Дублирование порта"
Отправлено Frealka , 05-Сен-13 14:52 
мне казалось будет просто,я не совсем понимаю что нужно для этого сделать,это типо прокси по UDP порту и всё.Должны быть банальные правила какие нибудь.

"Дублирование порта"
Отправлено Andrey Mitrofanov , 05-Сен-13 15:50 
> типо прокси по UDP порту и всё.Должны быть банальные правила какие
> нибудь.

Вот тебе банальное правило: http://google.com/search?q=udp+port+forward

Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.


"Дублирование порта"
Отправлено Frealka , 05-Сен-13 15:59 
>> типо прокси по UDP порту и всё.Должны быть банальные правила какие
>> нибудь.
> Вот тебе банальное правило: http://google.com/search?q=udp+port+forward
> Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.

всё ссылки уже розовые.


"Дублирование порта"
Отправлено Andrey Mitrofanov , 05-Сен-13 16:07 
>> Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.
> всё ссылки уже розовые.

Нудк, если всё ещё "я не совсем понимаю что нужно для этого сделать", то кто-то что-то упускает.

Либо мы все тут "забыли" тебе пожевать основы ip сетей (ди ерсте пакетте марширт...) -- но ты ж не спросил.

Либо ты по ссылочкам щёлк-щёлк, а надо было почитать.

Либо... ну, всё против нас.

И да, Re: "мне казалось будет просто", я уже говорил, что тебе показалось?


"Дублирование порта"
Отправлено erera22 , 05-Сен-13 17:36 
> мне казалось будет просто,я не совсем понимаю что нужно для этого сделать,это
> типо прокси по UDP порту и всё.Должны быть банальные правила какие
> нибудь.

host A (address x.x.x.x)
==
service at port 999

host B (address y.y.y.y)
==
stunnel -c -d y.y.y.y:999 -r x.x.x.x:999

checking
==
telnet y.y.y.y 999 => host B stunnel redirect => host A port 999

Пример годен для stunnel ver. 3


"Дублирование порта"
Отправлено gapsf2 , 05-Сен-13 18:13 
На машине B c помощью iptables:
Для входящих пакетов с dst port 999 сделать DNAT на адрес машины A в nat PREROUTING + SNAT в nat POSTROUTING на адрес интерфейса, которым A соединен с B, чтобы из-за осуществленного SNAT A видил пакет, как пришедший от B.
И в обратную сторону A будет слать на B и далее от B клиенту.
На B включить ip_forward.

Можно повтыкать в эти картинки:
http://hlf.netii.net/#routing2steps


"Дублирование порта"
Отправлено Frealka , 05-Сен-13 19:07 
> На машине B c помощью iptables:
> Для входящих пакетов с dst port 999 сделать DNAT на адрес машины
> A в nat PREROUTING + SNAT в nat POSTROUTING на адрес
> интерфейса, которым A соединен с B, чтобы из-за осуществленного SNAT A
> видил пакет, как пришедший от B.
> И в обратную сторону A будет слать на B и далее от
> B клиенту.
> На B включить ip_forward.
> Можно повтыкать в эти картинки:
> http://hlf.netii.net/#routing2steps

вы не поняли что ли? А и Б разные сервера в разных странах.
Мне не нужен редирект портов по серверу,а нужен на удалённый сервер


"Дублирование порта"
Отправлено gapsf2 , 05-Сен-13 20:31 
> вы не поняли что ли? А и Б разные сервера в разных
> странах.
> Мне не нужен редирект портов по серверу,а нужен на удалённый сервер

Это будет работать независимо от того где сервера находятся.
Если глядя на картинку вы подумали, что я вам предлагаю port redirect в рамках одного хоста или одной сети, то это не так.
Если А и Б находятся в разных сетях и странах, то трафик будет марщрутизироваться между ними через Интернет если у них публичные адреса.
У "А" публичный адрес, на который можно подключиться извне (напр. из сети Интернет)?



"Дублирование порта"
Отправлено Frealka , 05-Сен-13 22:30 
>> вы не поняли что ли? А и Б разные сервера в разных
>> странах.
>> Мне не нужен редирект портов по серверу,а нужен на удалённый сервер
> Это будет работать независимо от того где сервера находятся.
> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
> в рамках одного хоста или одной сети, то это не так.
> Если А и Б находятся в разных сетях и странах, то трафик
> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
> Интернет)?

даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне хотелось бы пример,а не набор слов как бы.


"Дублирование порта"
Отправлено Frealka , 05-Сен-13 22:30 
del

"Дублирование порта"
Отправлено Frealka , 05-Сен-13 22:30 
del


"Дублирование порта"
Отправлено reader , 05-Сен-13 23:06 
>[оверквотинг удален]
>>> Мне не нужен редирект портов по серверу,а нужен на удалённый сервер
>> Это будет работать независимо от того где сервера находятся.
>> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
>> в рамках одного хоста или одной сети, то это не так.
>> Если А и Б находятся в разных сетях и странах, то трафик
>> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
>> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
>> Интернет)?
> даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне
> хотелось бы пример,а не набор слов как бы.

http://www.opennet.me/openforum/vsluhforumID10/4997.html

порты убрать, протокол изменить


"Дублирование порта"
Отправлено Frealka , 05-Сен-13 23:36 
>[оверквотинг удален]
>>> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
>>> в рамках одного хоста или одной сети, то это не так.
>>> Если А и Б находятся в разных сетях и странах, то трафик
>>> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
>>> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
>>> Интернет)?
>> даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне
>> хотелось бы пример,а не набор слов как бы.
> http://www.opennet.me/openforum/vsluhforumID10/4997.html
> порты убрать, протокол изменить

лучший ответ,правило iptables -t nat -I POSTROUTING -d 177.188.30.30 -p tcp --dport 4444 -j SNAT --to-source 197.178.20.20 всё сразу решило,я прям не знаю что сказать,жирное спасибо


"Дублирование порта"
Отправлено gapsf2 , 06-Сен-13 07:54 
> лучший ответ,правило iptables -t nat -I POSTROUTING -d 177.188.30.30 -p tcp --dport
> 4444 -j SNAT --to-source 197.178.20.20 всё сразу решило

А, вы сразу подключаетсь на "Б:999"!

С помощью DNAT можно сделать так, что подключающемуся не надо даже про "Б" знать:


iptables -t nat -A PREROUTING  -d А_адрес -p tcp --dport А_порт -j DNAT --to-destination Б_адрес
iptables -t nat -A POSTROUTING -d Б_адрес -p tcp --dport А_порт -j SNAT --to-source А_адрес

Т.е. подключаемся как обычно на "А:999", на самом деле соединение идет через "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать, в случае необходимости. Потом если выкинуть "Б" и убрать правила, все станет по старому и будет работать.

"Дублирование порта"
Отправлено gapsf2 , 06-Сен-13 10:02 
Да, делать DNAT для надо в OUTPUT на машине, с которой подключаемся:
 
iptables -t nat -A OUTPUT -d А_адрес -p tcp --dport А_порт
-j DNAT --to-destination Б_адрес

или на каком-либо вашем шлюзе, через который идет выход к Интернет
 
iptables -t nat -A PREROUTING  -d А_адрес -p tcp --dport А_порт
-j DNAT --to-destination Б_адрес

Да, кстати. Вы обошлись без DNAT на "Б"?


"Дублирование порта"
Отправлено Frealka , 06-Сен-13 12:54 
>[оверквотинг удален]
>
 
> iptables -t nat -A PREROUTING  -d А_адрес -p tcp --dport А_порт
> -j DNAT --to-destination Б_адрес
> iptables -t nat -A POSTROUTING -d Б_адрес -p tcp --dport А_порт -j
> SNAT --to-source А_адрес
>

> Т.е. подключаемся как обычно на "А:999", на самом деле соединение идет через
> "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать,
> в случае необходимости. Потом если выкинуть "Б" и убрать правила, все
> станет по старому и будет работать.

я так и делал,первое правило у меня было,не хватало второго,у меня был переезд демона на другой ИП,теперь даже не заметно,что он переехал,про порты я в курсе.