The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"IPTables. Не подменять адрес отправителя пакета."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 22-Апр-09, 15:28 
Внутри сети установлен web-сервер. Шлюзом выступает роутер под Slackware. В iptables реализован проброс портов 443 и 80 из внешней сети на внутренний вебсервер. Сложность в том, что адрес отправителя в пересылаемых пакетах меняется на адрес шлюза. То есть, веб-сервер видит не IP пользователя, а IP шлюза.
Команда используется такая:
$IPT -t nat -A PREROUTING -p tcp -i ppp+ -s ! 192.168.0.0/16 -m multiport --dports 80 -j DNAT --to-destination $webserver:80

В руководстве по iptables пишется, что действие DNAT подменяет адрес получателя, а не отправителя. Но все равно адрес отправителя изменяется. Помогите с решением, плз.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от reader (ok) on 22-Апр-09, 15:38 
>[оверквотинг удален]
>Сложность в том, что адрес отправителя в пересылаемых пакетах меняется на
>адрес шлюза. То есть, веб-сервер видит не IP пользователя, а IP
>шлюза.
>Команда используется такая:
>$IPT -t nat -A PREROUTING -p tcp -i ppp+ -s ! 192.168.0.0/16
>-m multiport --dports 80 -j DNAT --to-destination $webserver:80
>
>В руководстве по iptables пишется, что действие DNAT подменяет адрес получателя, а
>не отправителя. Но все равно адрес отправителя изменяется. Помогите с решением,
>плз.

прочитайте про SNAT и исправте

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 22-Апр-09, 15:42 
>[оверквотинг удален]
>>шлюза.
>>Команда используется такая:
>>$IPT -t nat -A PREROUTING -p tcp -i ppp+ -s ! 192.168.0.0/16
>>-m multiport --dports 80 -j DNAT --to-destination $webserver:80
>>
>>В руководстве по iptables пишется, что действие DNAT подменяет адрес получателя, а
>>не отправителя. Но все равно адрес отправителя изменяется. Помогите с решением,
>>плз.
>
>прочитайте про SNAT и исправте

Дык: "SNAT используется для преобразования сетевых адресов (Source Network Address Translation), т.е. изменение исходящего IP адреса в IP заголовке пакета." То есть оно как раз и должно менять адрес отправителя. Или я не так понимаю?

Сейчас еще раз перечитаю...


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от reader (ok) on 22-Апр-09, 16:11 
>[оверквотинг удален]
>>>плз.
>>
>>прочитайте про SNAT и исправте
>
>Дык: "SNAT используется для преобразования сетевых адресов (Source Network Address Translation), т.е.
>изменение исходящего IP адреса в IP заголовке пакета." То есть оно
>как раз и должно менять адрес отправителя. Или я не так
>понимаю?
>
>Сейчас еще раз перечитаю...

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Andrey Mitrofanov on 22-Апр-09, 17:20 
>Сложность в том, что адрес отправителя в пересылаемых пакетах меняется на
>адрес шлюза.

У Вас ещё где-то есть SNAT _в_дополнение_ к DNAT ниже.

>$IPT -t nat -A PREROUTING -p tcp -i ppp+ -s ! 192.168.0.0/16
>-m multiport --dports 80 -j DNAT --to-destination $webserver:80

Ищите SNAT, отключайте SNAT, настраивайте роутинг на свойм внутреннм серевере -- будет Вам "без подмены отправителя"...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 27-Апр-09, 16:15 
>>Сложность в том, что адрес отправителя в пересылаемых пакетах меняется на
>>адрес шлюза.
>
>У Вас ещё где-то есть SNAT _в_дополнение_ к DNAT ниже.
>
>>$IPT -t nat -A PREROUTING -p tcp -i ppp+ -s ! 192.168.0.0/16
>>-m multiport --dports 80 -j DNAT --to-destination $webserver:80
>
>Ищите SNAT, отключайте SNAT, настраивайте роутинг на свойм внутреннм серевере -- будет
>Вам "без подмены отправителя"...

Все еще борюсь...
Под вышеуказанной строкой есть две следующие строки:
$IPT -t nat -A POSTROUTING -o ppp0  -j MASQUERADE
$IPT -t nat -A POSTROUTING -o lan0 -d $webserver -j MASQUERADE
Я так понял, они и прячут исходный IP. Однако без этих строк подключение не происходит вообще.

Скажите. Правильно ли я понимаю? Пакеты приходят на роутер, где они по номеру порта идентифицируются, как требующие форварда на веб-сервер. Действием MASQUERADE в них меняется адрес источника на адрес роутера и они отправляются на вебсервер. В ответ вебсервер на адрес роутера отправляет ответные пакеты, которые роутером пересылаются автору первоначальных пакетов. Ежели убрать строки маскарадинга, то вебсервер получает пакеты с первоначальным адресом, но ответить на них не может, т.к. он "не знает", что пакеты отсылать надо на роутер, а не на внешний адрес. Поэтому подключения не происходит.

Чтобы работа пошла так как надо, нужно фактически вебсервер сделать роутером? Так?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от angra (ok) on 27-Апр-09, 17:17 
>$IPT -t nat -A POSTROUTING -o ppp0  -j MASQUERADE

это оставьте


>$IPT -t nat -A POSTROUTING -o lan0 -d $webserver -j MASQUERADE

а это уберите

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 27-Апр-09, 17:38 
>>$IPT -t nat -A POSTROUTING -o ppp0  -j MASQUERADE
>это оставьте
>
>
>>$IPT -t nat -A POSTROUTING -o lan0 -d $webserver -j MASQUERADE
>а это уберите

   Тогда связь с вебсервером пропадает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от reader (ok) on 27-Апр-09, 17:43 
>>>$IPT -t nat -A POSTROUTING -o ppp0  -j MASQUERADE
>>это оставьте
>>
>>
>>>$IPT -t nat -A POSTROUTING -o lan0 -d $webserver -j MASQUERADE
>>а это уберите
>
>   Тогда связь с вебсервером пропадает.

а кто шлюзом у вебсервера прописан?
route -n с него.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 27-Апр-09, 18:31 
>[оверквотинг удален]
>>>это оставьте
>>>
>>>
>>>>$IPT -t nat -A POSTROUTING -o lan0 -d $webserver -j MASQUERADE
>>>а это уберите
>>
>>   Тогда связь с вебсервером пропадает.
>
>а кто шлюзом у вебсервера прописан?
>route -n с него.

Кажется оно! Сейчас попробую.
Спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от zerot email(ok) on 28-Апр-09, 13:57 
если я правильно понял, вам необходимо разрешить пользователям вашей сети ходить в Инет,

для чего вы используете в конфигурации iptables строки, конфигурирующие SNAT (или частный случай - маскарадинг - MASQUERADE). Ремарка - для многих случаев проще поднять на вашем промежуточном сервере прокси-сервер, например SQUID, и пускать пользователей в Инет через него, а не через SNAT (ну, для электронного банка, возможно, открыть SNAT с машины бухгалтера)

кроме этого, вам необходимо обеспечить проброс запросов из Инета по определенным порnам (80 и 443) на выделенный www сервер, для чего вы в конфигурации iptables используете еще и другие строки, конфигурирующие DNAT

это две технологии, живущие одновременно и независимо. Правильно описать скрипты конфигурации вам поможет перевод руководства по iptables на этом сайте - http://www.opennet.dev/docs/RUS/iptables/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "IPTables. Не подменять адрес отправителя пакета."  
Сообщение от Rett Pop email(ok) on 28-Апр-09, 19:03 
>если я правильно понял, вам необходимо разрешить пользователям вашей сети ходить в
>Инет,
>
>поможет перевод руководства по iptables на этом сайте - http://www.opennet.dev/docs/RUS/iptables/

Нет. Вопрос был в обратном - впустить инет внутрь сети и при этом не маскарадить инетовские IP. Таблицы были построены правильно, но был заказан маскарадинг для пакетов на внутренний вебсервер, который и прятал IP. По подсказке reader выяснил, что на вебсервере шлюзом был прописан другой роутер. После его смены и отключения маскарадинга все заработало.

Руководство изучил. Но, конечно, вопросы остались.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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