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

Исходное сообщение
"FreeBSD + PF Проброс на squid "

Отправлено Fiodor , 01-Июн-11 20:51 
Помогите ламеру )
Задача пробросить на сквид весь трафик кроме пары ip адресов
Вопрос как это реализовать ?
В данный момент на сквид пробрасывается вообще весть http трафик
при помощи PF

вот строчка из pf.conf

rdr on $int_if inet proto tcp from $int_if:network to any port { http } -> lo0 port 3128

уповаю....спасибо


Содержание

Сообщения в этом обсуждении
"FreeBSD + PF Проброс на squid "
Отправлено reader , 01-Июн-11 22:38 
> Помогите ламеру )
> Задача пробросить на сквид весь трафик кроме пары ip адресов
> Вопрос как это реализовать ?
> В данный момент на сквид пробрасывается вообще весть http трафик
> при помощи PF
> вот строчка из pf.conf
> rdr on $int_if inet proto tcp from $int_if:network to any port {
> http } -> lo0 port 3128
> уповаю....спасибо

squid это http прокси и пробрасывать на него не http трафик не нужно


"FreeBSD + PF Проброс на squid "
Отправлено Fiodor , 01-Июн-11 23:56 
> squid это http прокси и пробрасывать на него не http трафик не
> нужно

хорошо.
тогда подругому попробую донести суть.
есть софт который ломится по определённому ip и если включен прозрачный сквид - софт не коннектиться туда куда надо. если я отключаю сквид - вуоля всё ок.
так вот - как мне прокинуть трафик на эти мои Ip мимо сквида ?


"FreeBSD + PF Проброс на squid "
Отправлено antonim , 02-Июн-11 07:55 
>> squid это http прокси и пробрасывать на него не http трафик не
>> нужно
> хорошо.
> тогда подругому попробую донести суть.
> есть софт который ломится по определённому ip и если включен прозрачный сквид
> - софт не коннектиться туда куда надо. если я отключаю сквид
> - вуоля всё ок.
> так вот - как мне прокинуть трафик на эти мои Ip мимо
> сквида ?

Через acl, (always|never)_direct не пробовали?
Например так: всех кто ломится вконтакт и одноклассники

# НЕ ЧЕРЕЗ SQUID
acl vknt dstdomain .vkontakte.ru
acl odnk dstdomain .odnoklassniki.ru

always_direct allow vknt
always_direct allow odnk

always_direct deny all
never_direct deny !vknt !odnk
never_direct deny all


"FreeBSD + PF Проброс на squid "
Отправлено reader , 02-Июн-11 10:26 
>> squid это http прокси и пробрасывать на него не http трафик не
>> нужно
> хорошо.
> тогда подругому попробую донести суть.
> есть софт который ломится по определённому ip и если включен прозрачный сквид
> - софт не коннектиться туда куда надо. если я отключаю сквид
> - вуоля всё ок.
> так вот - как мне прокинуть трафик на эти мои Ip мимо
> сквида ?

какой протокол у софтины, какие порты, http?
что значит "отключаю сквид", останавливаете демона или rdr убираете или не прописываете прокси у софта?


"FreeBSD + PF Проброс на squid "
Отправлено Fiodor , 02-Июн-11 23:21 
> какой протокол у софтины, какие порты, http?
> что значит "отключаю сквид", останавливаете демона или rdr убираете или не прописываете
> прокси у софта?

протокол tcp, port 80
убираю рдр (остаётся нат)
настроек прокси в софте нет


"FreeBSD + PF Проброс на squid "
Отправлено Aquarius , 01-Июн-11 22:41 
> Помогите ламеру )
> Задача пробросить на сквид весь трафик кроме пары ip адресов
> Вопрос как это реализовать ?
> В данный момент на сквид пробрасывается вообще весть http трафик
> при помощи PF
> вот строчка из pf.conf
> rdr on $int_if inet proto tcp from $int_if:network to any port {
> http } -> lo0 port 3128
> уповаю....спасибо

на офсайте сквида есть FAQ
там есть ВСЁ


"FreeBSD + PF Проброс на squid "
Отправлено Rabidus , 02-Июн-11 14:05 
> Помогите ламеру )
> Задача пробросить на сквид весь трафик кроме пары ip адресов
> Вопрос как это реализовать ?
> В данный момент на сквид пробрасывается вообще весть http трафик
> при помощи PF
> вот строчка из pf.conf
> rdr on $int_if inet proto tcp from $int_if:network to any port {
> http } -> lo0 port 3128
> уповаю....спасибо

если на уровне фаервола, то

no_squid="172.16.1.2/32"
rdr on $int_if inet proto tcp from  {!$no_squid} to any port { http } -> lo0 port 3128

т.е заворачивать все, кроме определенного ip


"FreeBSD + PF Проброс на squid "
Отправлено Fiodor , 03-Июн-11 00:44 

>> уповаю....спасибо
> если на уровне фаервола, то
> no_squid="172.16.1.2/32"
> rdr on $int_if inet proto tcp from  {!$no_squid} to any port
> { http } -> lo0 port 3128
> т.е заворачивать все, кроме определенного ip

rdr on $int_if inet proto tcp from  {!$no_squid} to any port - даёт синтакс еррор (

если убрать ! - конфиг вливается но проблема остаётся


"FreeBSD + PF Проброс на squid "
Отправлено reader , 03-Июн-11 10:39 
>>> уповаю....спасибо
>> если на уровне фаервола, то
>> no_squid="172.16.1.2/32"
>> rdr on $int_if inet proto tcp from  {!$no_squid} to any port
>> { http } -> lo0 port 3128
>> т.е заворачивать все, кроме определенного ip
> rdr on $int_if inet proto tcp from  {!$no_squid} to any port
> - даёт синтакс еррор (
> если убрать ! - конфиг вливается но проблема остаётся

{! $no_squid}

80 порт не означает что там http протокол, ну допустим что все таки http.
тогда проверяйте собран ли squid с поддержкой pf.
смотрим что в access.log.
смотрим что в squid.conf , на предмет http_access


"FreeBSD + PF Проброс на squid "
Отправлено Rabidus , 03-Июн-11 12:09 
>>> уповаю....спасибо
>> если на уровне фаервола, то
>> no_squid="172.16.1.2/32"
>> rdr on $int_if inet proto tcp from  {!$no_squid} to any port
>> { http } -> lo0 port 3128
>> т.е заворачивать все, кроме определенного ip
> rdr on $int_if inet proto tcp from  {!$no_squid} to any port
> - даёт синтакс еррор (
> если убрать ! - конфиг вливается но проблема остаётся

Возможно во фре более старый pf. У меня в OpenBSD такая конструкция работает.


"FreeBSD + PF Проброс на squid "
Отправлено Fiodor , 05-Июн-11 21:01 
> Возможно во фре более старый pf. У меня в OpenBSD такая конструкция
> работает.
> Возможно во фре более старый pf. У меня в OpenBSD такая конструкция
> работает.

Спасибо конструкция заработала
Синтак эррор возникал при копипасте строки )
Набил от руки и всё завелось

в итоге выглядит всё так

-------------------
no_squid= "{***.***.***.0/24, ***.***.***.0/24}"


set skip on lo0

nat on $ext_if_a inet from $int_if:network -> $ext_if_a

rdr on $int_if inet proto tcp from  { !$no_squid } to any port { http } -> lo0 port 3128
rdr on $int_if inet proto tcp from  $int_if:network  to any port { http } -> lo0 port 3128