The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Дублирование порта"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

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

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


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

https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Дублирование порта"  –1 +/
Сообщение от Sot on 04-Сен-13, 02:55 
> https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

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

+SNAT

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 04-Сен-13, 12:50 
хочу дополнить что это нужно для UDP портов
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Дублирование порта"  +/
Сообщение от erera22 (ok) on 05-Сен-13, 01:53 
stunnel?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 05-Сен-13, 14:52 
мне казалось будет просто,я не совсем понимаю что нужно для этого сделать,это типо прокси по UDP порту и всё.Должны быть банальные правила какие нибудь.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

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

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

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

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

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

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

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Дублирование порта"  +/
Сообщение от erera22 email(ok) on 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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Дублирование порта"  +/
Сообщение от gapsf2 (ok) on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 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

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

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

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

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


Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 05-Сен-13, 22:30 
del
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 05-Сен-13, 22:30 
del

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

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

https://www.opennet.ru/openforum/vsluhforumID10/4997.html

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

22. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 05-Сен-13, 23:36 
>[оверквотинг удален]
>>> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
>>> в рамках одного хоста или одной сети, то это не так.
>>> Если А и Б находятся в разных сетях и странах, то трафик
>>> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
>>> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
>>> Интернет)?
>> даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне
>> хотелось бы пример,а не набор слов как бы.
> https://www.opennet.ru/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 всё сразу решило,я прям не знаю что сказать,жирное спасибо

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "Дублирование порта"  +/
Сообщение от gapsf2 (ok) on 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", на самом деле соединение идет через "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать, в случае необходимости. Потом если выкинуть "Б" и убрать правила, все станет по старому и будет работать.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

24. "Дублирование порта"  +/
Сообщение от gapsf2 (ok) on 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 на "Б"?

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

25. "Дублирование порта"  +/
Сообщение от Frealka (ok) on 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", на самом деле соединение идет через
> "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать,
> в случае необходимости. Потом если выкинуть "Б" и убрать правила, все
> станет по старому и будет работать.

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

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру