The OpenNET Project / Index page

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

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

"ipnat & transparent proxy"  
Сообщение от Orlic email(??) on 13-Сен-06, 10:16 
Hi all.
Такие дела, значит.  есть ipfw, ipnat и squid? все на одном сервере.

1. squid.conf
http_port 192.168.0.1:8080
http_port 127.0.0.1:8080 transparent

2. ipfw.rules
${ipfw} add forward 127.0.0.1,8080 tcp from ${int_net} to any 80 in via ${int} # для HTTP заворачиваем в squid
${ipfw} add allow tcp from ${int_net} to any 443 in recv ${int} # HTTPS наружу через ipnat

3. ipnat.rules
map ext_nic from 192.168.0.0/24 to any -> external_ip portmap tcp 20201:25000

так вот, пакеты, идущие по HTTP, форвардятся нормально, но в сквид не попадают!!!... то есть браузер страницы не грузит, в логах сквида пусто...

в чем грабли???....

З.Ы.... есть внутренний сайт, в отдельной подсети (например, ${web}=192.168.1.2), есть правило ipfw, пропускающее пакеты на него, минуя squid:
${ipfw} add allow tcp from ${int_net} to ${web} 80  via ${int_nic} setup keep-state
${ipfw} add allow tcp from ${int_net} to ${web} 443 via ${int_nic} setup keep-state

но tcpdump ПОКАЗЫВАЕТ, что пакеты на 192.168.1.2 нататся и выходят наружу уже с публичным адресом!!!

Так что отрабатывает первым - ipnat или ipfw? как они пакеты обрабатывают?...

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

 Оглавление

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


1. "ipnat & transparent proxy"  
Сообщение от imago (??) on 14-Сен-06, 11:22 
>Hi all.
>Такие дела, значит.  есть ipfw, ipnat и squid? все на одном
>сервере.
>
>1. squid.conf
>http_port 192.168.0.1:8080
>http_port 127.0.0.1:8080 transparent
>
>2. ipfw.rules
>${ipfw} add forward 127.0.0.1,8080 tcp from ${int_net} to any 80 in via
>${int} # для HTTP заворачиваем в squid
>${ipfw} add allow tcp from ${int_net} to any 443 in recv ${int}
># HTTPS наружу через ipnat
>
>3. ipnat.rules
>map ext_nic from 192.168.0.0/24 to any -> external_ip portmap tcp 20201:25000
>
>так вот, пакеты, идущие по HTTP, форвардятся нормально, но в сквид не
>попадают!!!... то есть браузер страницы не грузит, в логах сквида пусто...
>
>
>в чем грабли???....
>
>З.Ы.... есть внутренний сайт, в отдельной подсети (например, ${web}=192.168.1.2), есть правило ipfw,
>пропускающее пакеты на него, минуя squid:
>${ipfw} add allow tcp from ${int_net} to ${web} 80  via ${int_nic}
>setup keep-state
>${ipfw} add allow tcp from ${int_net} to ${web} 443 via ${int_nic} setup
>keep-state
>
>но tcpdump ПОКАЗЫВАЕТ, что пакеты на 192.168.1.2 нататся и выходят наружу уже
>с публичным адресом!!!
>
>Так что отрабатывает первым - ipnat или ipfw? как они пакеты обрабатывают?...
>
fwd нафиг из ipfw
в ipnat.rules добавить до ната
rdr dc0 0/0 port 80 -> 127.0.0.1 port 8080 tcp
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "ipnat & transparent proxy"  
Сообщение от Orlic email(??) on 14-Сен-06, 11:32 
в данный момент реализовал так:

${ipfw} add forward 127.0.0.1,8080 tcp from ${int_net} to any 80 in via setup keep-state

>fwd нафиг из ipfw
>в ipnat.rules добавить до ната
>rdr dc0 0/0 port 80 -> 127.0.0.1 port 8080 tcp

а эта конструкция не имела своего действия, так как блокируется файрволлом. Разрешая

allow tcp from ${local_net} to any 80 via ${int_NIC}

просто напросто мы ращрешаем HTTP траффик наружу минуя squid...

З.Ы. потестирую потом с rdr dc0 0/0 port 80 -> 127.0.0.1 port 8080 tcp, когда юзеров не будет


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

3. "ipnat & transparent proxy"  
Сообщение от Orlic email(??) on 14-Сен-06, 11:34 
то есть
{ipfw} add forward 127.0.0.1,8080 tcp from ${int_net} to any 80 in via ${int_NIC} setup keep-state
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "ipnat & transparent proxy"  
Сообщение от orlic email on 20-Ноя-06, 08:25 
Привет. Вот кусок моего ipfw.rules

# обычная часть
add 5  allow tcp from any to any established
add 10 allow tcp from me to any setup keep-state
add 15 allow udp from me to any keep-state

# заворачиваем HTTP трафик в squid
add 20 fwd 127.0.0.1,8080 tcp from ${INT_NET} to any dst-port 80 in via ${INT_NIC} setup keep-state

# разрешаем наружу HTTPS трафик, минуя squid. Трафик разрешается на входе внутреннего интерфейса, потом он натится, а на выходе внешнего интерфейса он разрешается правилом 10
add 25 allow tcp from ${INT_NET} to any dst-port 443  in recv ${INT_NIC}

# ну и доступ непосредственно к squid
add 30 allow tcp from ${INT_NET} to me  dst-port 8080 in recv ${INT_NIC}

Теперь ipnat:
map ${EXT_NIC} from ${INT_NET} to any -> ${EXT_IP} portmap tcp 40001:50000
map ${EXT_NIC} from ${INT_NET} to any -> ${EXT_IP}

И конф squid:
http_port ${INT_IP}:8080
http_port 127.0.0.1:8080 transparent


Все работает, только трафик я не считаю (а надо бы).

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

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

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




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

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