The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"iptables+squid ---> 127.0.0.1:3128"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"iptables+squid ---> 127.0.0.1:3128"  
Сообщение от freeman email(ok) on 15-Май-06, 15:04 
Проблема, как с помощью iptables осуществить прозрачное проксирование HTTP если squid слушает только 127.0.0.1:3128. Во фре без проблем делал правилом типа: "01000 fwd 127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80" а вот в линуксе получается только если squid слушает какой нибудь локальный фейс например 192.168.0.1:3128 тогда правило типа этого срабатывает: "iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128" а вот правило типа этого никак: "iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,8080 -j DNAT --to 127.0.0.1:3128" Возможно ли это осуществить в линуксе?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от daff on 15-Май-06, 16:47 
>Проблема, как с помощью iptables осуществить прозрачное проксирование HTTP если squid слушает
>только 127.0.0.1:3128. Во фре без проблем делал правилом типа: "01000 fwd
>127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80" а вот в линуксе
>получается только если squid слушает какой нибудь локальный фейс например 192.168.0.1:3128
>тогда правило типа этого срабатывает: "iptables -t nat -A PREROUTING -p
>tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128" а вот
>правило типа этого никак: "iptables -t nat -A PREROUTING -p tcp
>-m multiport --dport 80,8080 -j DNAT --to 127.0.0.1:3128" Возможно ли это
>осуществить в линуксе?

насколько я понимаю с какой то версии ядра такое поведение считается аномальным,
смори лог с включенным sysctl -w net.ipv4.conf.all.log_martians=1

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

2. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от freeman email(ok) on 15-Май-06, 17:04 
>>Проблема, как с помощью iptables осуществить прозрачное проксирование HTTP если squid слушает
>>только 127.0.0.1:3128. Во фре без проблем делал правилом типа: "01000 fwd
>>127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80" а вот в линуксе
>>получается только если squid слушает какой нибудь локальный фейс например 192.168.0.1:3128
>>тогда правило типа этого срабатывает: "iptables -t nat -A PREROUTING -p
>>tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128" а вот
>>правило типа этого никак: "iptables -t nat -A PREROUTING -p tcp
>>-m multiport --dport 80,8080 -j DNAT --to 127.0.0.1:3128" Возможно ли это
>>осуществить в линуксе?
>
>насколько я понимаю с какой то версии ядра такое поведение считается аномальным,
>
>смори лог с включенным sysctl -w net.ipv4.conf.all.log_martians=1


Версия 2.6.16, это можно как нибудь исправить? Интересно почему это считается аномальным?

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

4. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от daff on 15-Май-06, 17:48 
>Версия 2.6.16, это можно как нибудь исправить? Интересно почему это считается аномальным?

насколько я помню нет,
пакет вида a.b.c.d -> 127.0.0.1 пришедший с >внешнего< интерфейса являтеся аномальным по определению,
то DNAT правило пораждает такие пакеты т.к. интерфейс при трансляции адреса не менятся, а tcp/ip стек линукса не делает исключений для транслированных соединений :(

во фре на скока я помню даже nat-а как такового нет fwd на локал адрес это сингал tcp/ip стеку принять соединение на чужой адрес! (поле Local address в netstat выглядит забавно)

вобщем проблему можно попробовать решить так:

iptables -A INPUT -p tcp --dport 3128 -m conntrack --ctstate DNAT -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j REJECT

а если очень хочется на 127.0.0.1 то можно поиратся с чем то вроде

iptables -t mangle -A PREROUTING -p tcp -m multiport --dport 80,8080 -j ROUTE --iif lo

может даже поможет хотя маловероятно

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

5. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от freeman email(ok) on 15-Май-06, 17:57 
>>Версия 2.6.16, это можно как нибудь исправить? Интересно почему это считается аномальным?
>
>насколько я помню нет,
>пакет вида a.b.c.d -> 127.0.0.1 пришедший с >внешнего< интерфейса являтеся аномальным по определению,
>то DNAT правило пораждает такие пакеты т.к. интерфейс при трансляции адреса не
>менятся, а tcp/ip стек линукса не делает исключений для транслированных соединений
>:(
>
>во фре на скока я помню даже nat-а как такового нет fwd
>на локал адрес это сингал tcp/ip стеку принять соединение на чужой
>адрес! (поле Local address в netstat выглядит забавно)
>
>вобщем проблему можно попробовать решить так:
>
>iptables -A INPUT -p tcp --dport 3128 -m conntrack --ctstate DNAT -j
>ACCEPT
>iptables -A INPUT -p tcp --dport 3128 -j REJECT
>
>а если очень хочется на 127.0.0.1 то можно поиратся с чем то
>вроде
>
>iptables -t mangle -A PREROUTING -p tcp -m multiport --dport 80,8080 -j
>ROUTE --iif lo
>
>может даже поможет хотя маловероятно

да уж... не получается.

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

3. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от freeman email(ok) on 15-Май-06, 17:26 
>>Проблема, как с помощью iptables осуществить прозрачное проксирование HTTP если squid слушает
>>только 127.0.0.1:3128. Во фре без проблем делал правилом типа: "01000 fwd
>>127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80" а вот в линуксе
>>получается только если squid слушает какой нибудь локальный фейс например 192.168.0.1:3128
>>тогда правило типа этого срабатывает: "iptables -t nat -A PREROUTING -p
>>tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128" а вот
>>правило типа этого никак: "iptables -t nat -A PREROUTING -p tcp
>>-m multiport --dport 80,8080 -j DNAT --to 127.0.0.1:3128" Возможно ли это
>>осуществить в линуксе?
>
>насколько я понимаю с какой то версии ядра такое поведение считается аномальным,
>
>смори лог с включенным sysctl -w net.ipv4.conf.all.log_martians=1


действительно в логах:
May 15 17:19:30 serv2006 martian destination 127.0.0.1 from 192.168.128.10, dev ppp0
а что делать?

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

6. "iptables+squid ---> 127.0.0.1:3128"  
Сообщение от demping on 23-Янв-07, 16:31 
>>>Проблема, как с помощью iptables осуществить прозрачное проксирование HTTP если squid слушает
>>>только 127.0.0.1:3128. Во фре без проблем делал правилом типа: "01000 fwd
>>>127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80" а вот в линуксе
>>>получается только если squid слушает какой нибудь локальный фейс например 192.168.0.1:3128
>>>тогда правило типа этого срабатывает: "iptables -t nat -A PREROUTING -p
>>>tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128" а вот
>>>правило типа этого никак: "iptables -t nat -A PREROUTING -p tcp
>>>-m multiport --dport 80,8080 -j DNAT --to 127.0.0.1:3128" Возможно ли это
>>>осуществить в линуксе?
>>
>>насколько я понимаю с какой то версии ядра такое поведение считается аномальным,
>>
>>смори лог с включенным sysctl -w net.ipv4.conf.all.log_martians=1
>
>
>действительно в логах:
>May 15 17:19:30 serv2006 martian destination 127.0.0.1 from 192.168.128.10, dev ppp0
>а что делать?


ifconfig dummy0 127.0.0.2 netmask 255.255.255.0
и пусть squid слушает н.р. 127.0.0.2:3128 (или 1.2.3.4).
туда натить надеюсь можно (сам не проверял).


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

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

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




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

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