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

Исходное сообщение
"перенаправление запросов,если в двух сетя диапазон адресов 1..."

Отправлено pible , 24-Янв-08 11:01 
Есть сервер slackware 11
eth0 - внутренняя локальная сеть 192.168.0.0
eth1 - выход в другую подсеть 192.168.172.0 с нее на cisco, с cisco в другую сеть, где есть такой же диапазон адресов как и у нас 192.168.0.0

используется iptables

Вопрос:
Если при обращении в нашей внутренней сети к ip-адресу 192.168.0.3 сервер перенаправлял бы на интерфейс eth1 и все уходило бы через cisco в другую подсеть где и находиться сервер с ip-адресом 192.168.0.3. Как можно организовать это с помощью iptables. (В нашей сети ip-адрес 192.168.0.3 не используется)


Содержание

Сообщения в этом обсуждении
"запросов,если в двух"
Отправлено Andrey Mitrofanov , 24-Янв-08 13:41 
>eth0 - внутренняя локальная сеть 192.168.0.0
>eth1 - выход в другую подсеть

[...]
>в другую сеть, где есть такой же диапазон адресов как и у нас 192.168.0.0
>используется iptables
>Вопрос:
>Если при обращении в нашей внутренней сети к ip-адресу 192.168.0.3 сервер перенаправлял
>бы на интерфейс eth1 и все уходило бы через cisco в
>другую подсеть где и находиться сервер с ip-адресом 192.168.0.3. Как можно
>организовать это с помощью iptables. (В нашей сети ip-адрес 192.168.0.3 не
>используется)

:) Поменять адреса всех машин "тут".
Или поменять адреса всех машин "там".
Или продолжить извращения. Например, поставить на _роутере_ в своей сети "этот" адрес и "NAT-ить" его нещадно(?дважды вложенный "маскарадинг" - плюрализм в одном роутере...)... С _одним_ адресом может "прокатить", а может и не...


"запросов,если в двух"
Отправлено CrAzOiD , 24-Янв-08 13:45 
>[оверквотинг удален]
>>бы на интерфейс eth1 и все уходило бы через cisco в
>>другую подсеть где и находиться сервер с ip-адресом 192.168.0.3. Как можно
>>организовать это с помощью iptables. (В нашей сети ip-адрес 192.168.0.3 не
>>используется)
>
>:) Поменять адреса всех машин "тут".
>Или поменять адреса всех машин "там".
>Или продолжить извращения. Например, поставить на _роутере_ в своей сети "этот" адрес
>и "NAT-ить" его нещадно(?дважды вложенный "маскарадинг" - плюрализм в одном роутере...)...
>С _одним_ адресом может "прокатить", а может и не...

вообще не прокатит... они хотят с сети 192.168.0 "перехватывать" адрес 192.168.0.3 (т.е. его что, на сервак цеплять? или интерфейс сервера переводить в промиск моду?) и дальше отправлять куда-то
Вообщем iptables невыручит
можно придумать туннели


"шизофренический маскарадинг одного адреса"
Отправлено Andrey Mitrofanov , 24-Янв-08 15:04 
#>>eth1 - выход в другую подсеть 192.168.172.0 с нее на cisco, с cisco в другую сеть, где есть такой же диапазон адресов как и у нас 192.168.0.0

>>Или продолжить извращения.

Продолжим!? Ж-)
>> Например, поставить на _роутере_ в своей сети "этот" адрес
>>и "NAT-ить" его нещадно(?дважды вложенный "маскарадинг" - плюрализм в одном роутере...)...
>>С _одним_ адресом может "прокатить", а может и не...
>
>вообще не прокатит... они хотят с сети 192.168.0 "перехватывать" адрес 192.168.0.3 (т.е.

_Свой_ адрес в своей сети поставить _равным_ адресу "того парня" и...
всё (ну, или не все...) входящие жестоко Ж)) натить-маскарадить.

Примерно так: 1) выбираем совсем новый, не рутившийся ранее адрес, например 10.1.1.1
2) добавляем (только локальный) роутинг на 10.1.1.1 --> на "внешнюю" циску~~
3) на ifcinfig eth0 ставим ip 192.160.0.3 (клиенты, роутинг -- поправить)
сооружаем "матрёшку" вроде--

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

-t nat -A PREROUTING -i eth0 -d 192.160.0.3 -j DNAT --to-destination 10.1.1.1
-t nat -A POSTROUTING -i eth1 -d 10.1.1.1 -j SNAT --to-source 192.168.172.наш
-t mangle -A PREROUTING -i eth1 -s 192.160.0.3 -j SNAT --to-source 10.1.1.1
-t mangle -A POSTROUTING -i eth0 -s 10.1.1.1 -j SNAT --to-source 192.168.0.3

...и не сростается, скорее всего ?-)) Полный бред, короче. :( Sorry.

>его что, на сервак цеплять? или интерфейс сервера переводить в промиск
>моду?) и дальше отправлять куда-то

А никто не обещал, что будет легко. :-D

Ладно, в одном ящике не срослось, а в двух? Скажем роутер-роутером, но добавить ещё "полуроутер"/второй нат-тер в 192.160.173. скажем.... На роутере входящие DNAT-ить в вооброжаемую сетку (10.1.1.~ скажем), роутинг к ней -- на нат-тер#2, в нём 10.1.1.1 DNANить в 162.168.0.3/внешний и тд.

##роутер, eth0/eth1 ^^выше
route add -host 10.1.1.1 gw 192.168.172.999
+никакого роутинга на "внешнюю" 192.168.0.
-t nat -A PREROUTING -i eth0 -d 192.160.0.3 -j DNAT --to-destination 10.1.1.1
-t nat -A POSTROUTING -i eth1 -d 10.1.1.1 -j SNAT --to-source 192.168.172.наш
##нат-тер2, eth0=192.168.172.999
route add -host 10.1.1.1 gw 192.168.172.999
+никакого роутинга на "внутреннюю" 192.168.0, и правильный на внешнюю
-t nat -A PREROUTING -i eth0 -d 10.1.1.1 -j DNAT --to-destination 192.160.0.3
-t nat -A POSTROUTING -i eth1 -s 192.168.172.наш -j SNAT --to-source 192.168.172.999
##^^ вот тут надо бы как-то редиректы "давить".... или опять не срастается??

Уф, %) сдаюсь... лениво дальше грабли сооружать. Хотя, да, забавно чувствовать себя идиотом.


"шизофренический маскарадинг одного адреса"
Отправлено Andrey Mitrofanov , 24-Янв-08 15:31 
>#>>eth1 - выход в другую подсеть 192.168.172.0 с нее на cisco, с cisco в другую сеть, где есть такой же диапазон адресов как и у нас 192.168.0.0
>
>>>Или продолжить извращения.
>Продолжим!? Ж-)

Два раза!!

>>вообще не прокатит... они хотят с сети 192.168.0 "перехватывать" адрес 192.168.0.3 (т.е.

Не прокатит, совсем. Но искусство требует! ;-)

>Примерно так: 1) выбираем совсем новый, не рутившийся ранее адрес, например 10.1.1.1

[...]
>...и не сростается, скорее всего ?-)) Полный бред, короче. :( Sorry.

[...]
>А никто не обещал, что будет легко. :-D
>
>Ладно, в одном ящике не срослось, а в двух? Скажем роутер-роутером, но
>добавить ещё "полуроутер"/второй нат-тер в 192.160.173. скажем....

Очепя, ^^^192.160.173. читать как 192.160.172.
> На роутере входящие DNAT-ить
>в вооброжаемую сетку (10.1.1.~ скажем), роутинг к ней -- на нат-тер#2,
>в нём 10.1.1.1 DNANить в 162.168.0.3/внешний и тд.
>
>##роутер, eth0/eth1 ^^выше
>route add -host 10.1.1.1 gw 192.168.172.999

[...]
>##нат-тер2, eth0=192.168.172.999
>route add -host 10.1.1.1 gw 192.168.172.999

Э-э-э... мммм... очепя, cut-n-paste slip off. И опять не срослось. %)
>+никакого роутинга на "внутреннюю" 192.168.0, и правильный на внешнюю

[...]
> ##^^ вот тут надо бы как-то редиректы "давить".... или опять не
>срастается??

Опять.

>Уф, %) сдаюсь... лениво дальше грабли сооружать.

Граблестроительный Техникум Имени... (меня?...) представляет!

А с двумя "левыми" сетками?

##роутер, eth0/eth1 ^^выше
route add -host 10.1.1.1 gw 192.168.172.999
+никакого роутинга на "внешнюю" 192.168.0., внутренняя = на собственном eth0
-A PREROUTING -i eth0 -d 192.160.0.3 -j DNAT --to-destination 10.1.1.1
-A POSTROUTING -i eth1 -d 10.1.1.1 -j SNAT --to-source 10.2.2.2

##нат-тер2, eth0=192.168.172.999
route add -host 10.2.2.2 gw 192.168.172.наш
+никакого роутинга на "внутреннюю" 192.168.0, и правильный на внешнюю
-A PREROUTING -i eth0 -s 10.2.2.2 -d 10.1.1.1 -j DNAT --to-destination 192.160.0.3
-A POSTROUTING -i eth0 -s 10.2.2.2 -d 192.160.0.3 -j SNAT --to-source 192.168.172.999


"двойные виртуальные грабли!"
Отправлено Andrey Mitrofanov , 24-Янв-08 16:02 
>Граблестроительный Техникум Имени... (меня?...) представляет!

С _гордостью_ представляет $SUBJ.

>А с двумя "левыми" сетками?
>##роутер, eth0/eth1 ^^выше

[...]
>##нат-тер2, eth0=192.168.172.999

Задание на 5 с плюсом, для самостоятельного изучения: то же самое, но нат-тер#2 засунуть в Xen(UML,lguest,kvm,qemu,... по вкусу) на роутере?


"кто хотел СТРАННОГО... таков и ответ"
Отправлено Andrey Mitrofanov , 24-Янв-08 15:44 
>Вообщем iptables невыручит

В общем, похоже. Чего-то я сомневаюсь :-D , что найдётся ССЗБ, который _захочет_ проверять мою конструкцию из двух встречных граблей-маскарадеров.
>можно придумать туннели

"Протуннелить" удалённый ---.0.3 в локальную сетку с помощью включения в мосты (там и тут) ethN(реального) и tun0(vpn). При этом всё равно нужна будет "развязка" -- роутить сам vpn м/у двумя одинаковыми сетками. А ещё NAT всё равно понадобится -- "внутренние" адреса прятать от "внешнего" сервера, если хосты пересекаются....


"кто хотел СТРАННОГО... таков и ответ"
Отправлено reader , 24-Янв-08 23:58 
допустим:
ваш сервер:
eth0 - внутренняя локальная сеть 192.168.0.0 - его ip=192.168.0.1
eth1 - выход в другую подсеть 192.168.172.0 -его ip=192.168.172.1

их сервер:
eth0 - внутренняя локальная сеть 192.168.0.0 - его ip=192.168.0.1
eth1 - выход в другую подсеть 192.168.100.0 -его ip=192.168.100.1

и ваш сервер уже видет их сервер и на оборот

1 на клиентах вашей 192.168.0.0 сети
route add -host 192.168.0.3/32 gw 192.168.0.1 metric 1
2 на вашем сервере
route add -host 192.168.0.3/32 gw 192.168.100.1 metric 1
iptables -t nat -A POSTROUTING -o eth1 -d 192.168.0.3 -j SNAT -to-source 192.168.172.1

циску незнаю, поэтому ее не упоминал


":) и работает?"
Отправлено Andrey Mitrofanov , 25-Янв-08 09:31 
>и ваш сервер уже видет их сервер и на оборот
>1 на клиентах вашей 192.168.0.0 сети
>route add -host 192.168.0.3/32 gw 192.168.0.1 metric 1

Кстати, в http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-9.html aka  file:///usr/share/doc/iptables/html/NAT-HOWTO-9.html написано, как это делается на сервере.

>2 на вашем сервере
>route add -host 192.168.0.3/32 gw 192.168.100.1 metric 1

О, работает. Проверил - получил положенное "Host Unreachable" от подопытного роутера. %)

>iptables -t nat -A POSTROUTING -o eth1 -d 192.168.0.3 -j SNAT -to-source
>192.168.172.1

Отличное, простое решение! %-)


"--> The Double NAT MINI-HOWTO"
Отправлено Andrey Mitrofanov , 11-Июл-08 10:12 
>>Вообщем iptables невыручит
>
>В общем, похоже. Чего-то я сомневаюсь :-D , что найдётся ССЗБ, который
>_захочет_ проверять мою конструкцию из двух встречных граблей-маскарадеров.

Вы-таки будете... радоваться, но "двойные виртуальные грабли" были _документированы_ проектом Netfilter, под не таким вольным :) названием: "The Double NAT MINI-HOWTO". Как решение проблемы, более-менее вытекающей из RFC 1918, кстати.

http://netfilter.org/documentation/HOWTO/netfilter-double-na...

И алиасы на интерфейсы использует, и два "встречных" роутера...
Приятно чувствовать себя "умным" открывателем велосипедов (& "дураком", не читающим TFM)! %)


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 08:52 
Слишком сложно. Нельзя IP сервера поменять и прописать к нему маршруты на рутерах?


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 08:59 
Можно не менять - добавить ещё один IP на интерфейс сервера. С такими зашибатыми конструкциями следующий админ будет нелестного мнения о Вас.


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено reader , 25-Янв-08 10:12 
>Можно не менять - добавить ещё один IP на интерфейс сервера. С
>такими зашибатыми конструкциями следующий админ будет нелестного мнения о Вас.

:) а никто и не говорит, что это все правильно.
при добавлением адреса 192.168.0.3 на интерфейсе сервера , все равно придется делать проброс
и следующему админу счастья это не добавит :)


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 10:25 
>>Можно не менять - добавить ещё один IP на интерфейс сервера. С
>>такими зашибатыми конструкциями следующий админ будет нелестного мнения о Вас.
>
>:) а никто и не говорит, что это все правильно.
>при добавлением адреса 192.168.0.3 на интерфейсе сервера , все равно придется делать
>проброс
>и следующему админу счастья это не добавит :)

Зачем проброс то?, взять IP из не используемой серой сети и прописать маршрут к ней где потребуется.


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено reader , 25-Янв-08 10:47 
>>>Можно не менять - добавить ещё один IP на интерфейс сервера. С
>>>такими зашибатыми конструкциями следующий админ будет нелестного мнения о Вас.
>>
>>:) а никто и не говорит, что это все правильно.
>>при добавлением адреса 192.168.0.3 на интерфейсе сервера , все равно придется делать
>>проброс
>>и следующему админу счастья это не добавит :)
>
>Зачем проброс то?, взять IP из не используемой серой сети и прописать
>маршрут к ней где потребуется.

или я не понял что Вы имеете ввиду или использовать, скажем так, 10.0.0.3 для доступа к 192.168.0.3 другой подсети?


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 10:59 
Да, прицепить к удалённому серверу второй IP ну может 10.0.0.3 ? маска? главное чтоб с другими сетями не пересекалось. На cisco маршрут к 10.0.0.3. На slackware придётся SNAT для dest 10.0.0.3.



"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено reader , 25-Янв-08 11:26 
>Да, прицепить к удалённому серверу второй IP ну может 10.0.0.3 ? маска?
>главное чтоб с другими сетями не пересекалось. На cisco маршрут к
>10.0.0.3. На slackware придётся SNAT для dest 10.0.0.3.

Согласен, но уже требует изменений и на своем, и не на своем сервере, что не всегда возможно.

В данном случае для меня было интересно попробывать получить доступ к удаленному серверу с адресом 192.168.0.3, при условии отправления запроса из подсети 192.168.0.0/24. :)
Изврат конечно же, но в этом и интерес. :)


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 11:59 
Не такой уж и изврат, только клиентам маршруты прописывать.... Лучше сервер научить по арпу представляться 192.168.0.3.


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено reader , 25-Янв-08 12:27 
>Не такой уж и изврат, только клиентам маршруты прописывать.... Лучше сервер научить
>по арпу представляться 192.168.0.3.

Другими словами присвоить серверу еще и 192.168.0.3, что бы не прописывать маршруты у клиентов?

Не сомневаюсь, что решений еще много.


"перенаправление запросов,если в двух сетя диапазон адресов 1..."
Отправлено tux2002 , 25-Янв-08 15:12 

>Другими словами присвоить серверу еще и 192.168.0.3, что бы не прописывать маршруты
>у клиентов?
>

Не, я не знаю какими средствами (просто знаю что теоретически возможно) -  может arpd или ещё что - то, заставить сервер отвечать на запрос who-has 192.168.0.3.
Сам не делал.