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

Исходное сообщение
"Редирект на squid в сети на реальных IP"

Отправлено AlienMike , 12-Окт-07 18:43 
Доброго утра, вечера господа!

Подскажите темному человеку, как заставить маршрутизатор (FreeBSD 6.2)
отделяющий сеть на реальных внешних IP заворачивать
пакеты с некоторых избранных IP с 80 портом в заголовке
на местный SQUID (тоже реальный IP)?
(Squid 2.6 с ICAP и DrWeb - хочется не пускать внутрь кое-каких сетей вирусню)
Картина сейчас такая:
Маршрутизатор смотрит одним концом fxp0 в остальной Интернет, другим - fxp1 в выделенную мне сеть.
Squid вполне исправен и работает (т.е. нормально режет вирусы), если клиенты заносят его в настройки браузера.
Попытался завернуть на файрволе "ipfw fwd" 80-тые пакеты на интерфейсе fxp1 на IP Сквида.
Вот так:
${fwcmd} add 101 fwd squid-IP,3128 tcp from client-1-IP to any 80,8080,8081
${fwcmd} add 102 fwd squid-IP,3128 tcp from client-2-IP to any 80,8080,8081
...
и так далее...
Оказалось, что это не работает.
Форвард, как я в конце концов выяснил, не меняет поле Destination в заворачиваемом
пакете, а просто тупо форвардит его на сквид как есть!
Машина, на которой крутится Squid получает такой пакет, видит, что Destination не имеет
к ней никакого отношения и дропает его прямо на интерфейсе.
Таким образом до Сквида просто ничего не доходит.
Насколько я теперь понимаю, на маршрутизаторе надо поднять natd
и каким-то специфическим образом заставить его редиректить 80-е пакеты
с избранных IP на машину со Сквидом.
Но человек я скорбный умом и сам сообразить ничего не могу.
Рылся в Интернете, но там все радостно делятся опытом, как заворачивать
на Сквид за NAT в маскарадных сетях. Радости от этого - никакой.
Подскажите если кто имеет опыт - как это сделать.

Best Regards,
AlienMike


Содержание

Сообщения в этом обсуждении
"Редирект на squid в сети на реальных IP"
Отправлено Alexander Sheiko , 13-Окт-07 10:18 
>Попытался завернуть на файрволе "ipfw fwd" 80-тые пакеты на интерфейсе fxp1 на
>IP Сквида.
>Вот так:
>${fwcmd} add 101 fwd squid-IP,3128 tcp from client-1-IP to any 80,8080,8081
>${fwcmd} add 102 fwd squid-IP,3128 tcp from client-2-IP to any 80,8080,8081
>...
>и так далее...
>Оказалось, что это не работает.

Разумеется. Форвард на порт работает только для локальных интерфейсов. При форвардинге на другую машину номер порта задавать нельзя. Используйте просто фарвард на сквид (без номера порта), а на машине со сквидом заверните всё, что приходит на вышеуказанные порты, в порт 3128 сквида и всё заработает. Если на машине с прокси есть локальные сервисы, слушающие на этих портах, - первым правилом пропишите для них иключения. Т. е.:

add fwd squid-IP 80 tcp from any to squid-IP 80


"Редирект на squid в сети на реальных IP"
Отправлено AlienMike , 16-Окт-07 18:52 
>Разумеется. Форвард на порт работает только для локальных интерфейсов. При форвардинге на
>другую машину номер порта задавать нельзя. Используйте просто фарвард на сквид
>(без номера порта), а на машине со сквидом заверните всё, что
>приходит на вышеуказанные порты, в порт 3128 сквида и всё заработает.

Большое спасибо!
Все заработало.
Единственный важный момент -
в конфиге squid нужно при этом указать:

http_port 3128 transparent

Иначе гад работать не хочет!

Best Regards,
AlienMike