Squid Transparent Proxy

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-08 15:07:41

Доброго времени суток уважаемые форумчане.

Возникла необходимость организовать прозрачный прокси на базе Squid 2.7 stable.
Вроде всё заработало, кроме возможности прикрутить squid на 80 порт.

http_port 192.168.0.1:3128 transparent ;работает, но нужно прописывать в браузере
http_port 192.168.0.1:80 transparent ;не работает

Squid в логах пишет: commBind: Cannot bind socket FD12 to 192.168.0.1:80 : 13 Permission denied
FATAL: Cannot open HTTP port

В результате изысканий нашёл 2 варианта причины проблемы:
1 - порт занят другим процессом
2 - непривилигрованный пользователь не может занять порт ниже 1024. Отсюда вопрос как сделать Squid привелигированным?

Если кто то сталкивался, пожалуйста подскажите.
Последний раз редактировалось f_andrey 2010-07-08 15:20:34, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Squid Transparent Proxy

Непрочитанное сообщение Burner » 2010-07-08 18:47:17

сделаить редирект портов с 80 на 3128. Сквид при этом нужно собрать с поддержкой используемого фильтра

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-09 12:10:11

Может ли кто нибудь выложить свой рабочий конфиг Squid'а. Прозрачный версии 2.7?

Заранее СПАСИБО!

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Squid Transparent Proxy

Непрочитанное сообщение skeletor » 2010-07-09 21:28:05

Код: Выделить всё

http_port 127.0.0.1:3128 transparent

maximum_object_size 16384 KB

maximum_object_size_in_memory 8 KB

cache_mem  128 MB
cache_dir ufs /usr/local/squid/cache 40000 16 256
coredump_dir /usr/local/squid/cache

logformat skel_squid %{%d/%b/%Y:%H:%M:%S}tl %6tr %>a %Ss/%03Hs %

access_log /usr/local/squid/logs/access.log skel_squid
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log

pid_filename /usr/local/squid/logs/squid.pid
logfile_rotate 10

acl all src 0.0.0.0/0.0.0.0
acl CONNECT method CONNECT
http_access allow all

cache_mgr hostmaster@domain.ua
cache_effective_user squid
cache_effective_group squid
visible_hostname server.domain.ua
cachemgr_passwd QuErY all

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-12 18:46:26

Так и не получилось локализовать проблему и пришёл я в тупик :st: . Поэтому прошу вашей помощи уважаемые форумчане.

OS: FreeBSD 8
SQUID: 2.7.9

Interfaces:

Код: Выделить всё

em0 - 192.168.0.1 - смотрит в локаль
re0 - 10.5.96.100 - смотрит в инет, точнее в маршрутизатор, который в свою очередь смотрит в инет
Kernel options:

Код: Выделить всё

IPFIREWALL
IPFIREWALL_VERBOSE
IPFIREWALL_DEFAULT_TO_ACCEPT
IPFIREWALL_FORWARD
IPDIVERT
DUMMYNET
squid.conf

Код: Выделить всё

http_port			                127.0.0.1:3128 transparent
cache_mem			                1024 MB
maximum_object_size		        4096 KB
maximum_object_size_in_memory	512 KB
cache_dir ufs 			                /cache 98304 1024 512
cache_access_log 		                /var/log/squid/access.log
cache_log 			                        /var/log/squid/cache.log
cache_store_log 		                /var/log/squid/store.log
cache_mgr			                        hostmaster@roga.ru
cache_effective_user		                squid
cache_effective_group		        squid
visible_hostname		                proxy.roga.ru

acl ALL src 0.0.0.0/0.0.0.0
acl CONNECT method CONNECT
http_access allow ALL
rc.firewall - по-умолчанию
+ ipfw -q add 100 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 recv em0

rc.conf

gateway_enable="YES"
squid_enable="YES"

Пропинговать из клиентской сети и внешний и внутренний интерфейс прокси могу. Такое впечатление что сквид не поинмает куда нужно отправлять пактеы дальше либо он их просто не принимает. С самой прокси в инет ходить могу.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Squid Transparent Proxy

Непрочитанное сообщение skeletor » 2010-07-12 21:57:12

А что в логах /var/log/squid/access.log?

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 11:11:44

В логах тишина. Вообще ничего.

Добавил правило посмотреть форвардит что-нить ipfw или нет. 0 реакции в логах чисто. Какая то мистика, хотя клиент тестовый напрямую подключён к локальному интерфейсу прокси 192.168.0.2 (клиент) -> 192.168.0.1 (интерф. прокси на локаль)

ipfw add 100 forward 127.0.0.1,3128 log tcp from 192.168.0.2 to any 80 recv em0

и ничего. Может правило как то неправильно написал?

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Squid Transparent Proxy

Непрочитанное сообщение skeletor » 2010-07-13 11:13:35

а если убрать

Код: Выделить всё

recv em0
?

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 11:18:40

А вот теперь интересно. Когда указываю в браузере клиента http://192.168.0.1 тогда в логах фаера появляется запись о перебросе на порт сквида. Т.е. получается форвард отрабатывает корректно только тогда, когда адрес назначения 192.168.0.1 - входящий интерфейс прокси. Это бред, а как же тогда все остальные адреса? Хм.....что то с правилом не то или с ipfw не хватает чего то, может модуля какого?

recv em0 - не убирал пока, сейчас попробую

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 13:11:49

убрал recv em0, а результат тот же при указании шлюзом назначения интерфейс прокси всё норм переправляет на сквид, а вот если любой другой адрес то ничего не перенаправляет.

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 14:31:12

судя по всему затык где то в работе IPDIVERT и данная связка не работает на 8, жаль... может кто то делал данное с IPFilter ом.

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 19:45:22

Попытался это на IPFiltre организовать. Пересобрал сквид и тоже самое.

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-13 19:57:39

Неужели придется всё делать на долбаных форточках!? :bad:

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Squid Transparent Proxy

Непрочитанное сообщение Burner » 2010-07-14 6:21:26

запускайте tcpdump и смотрите что куда идет. Еще PF попробовать можно.

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-15 10:21:57

А вот ради интереса, у кого нибудь вообще на 8-ке прозрачный работает? В 8-ке архитикуру маршрутизации измениили, все маны, которые удалось встретить написаны под 7.3 и ниже.

Аватара пользователя
folax
мл. сержант
Сообщения: 86
Зарегистрирован: 2008-04-01 17:00:10
Откуда: Украина

Re: Squid Transparent Proxy

Непрочитанное сообщение folax » 2010-07-26 17:34:31

у меня работает на 8 прозрачный
http_port 3128 intercept
mics# squid -v
Squid Cache: Version 3.1.4
поставь сквид нормальный скину конфиг минимальный :Search:
если что то делаешь то что то меняться и будет

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid Transparent Proxy

Непрочитанное сообщение hranitel_y2k » 2010-07-28 17:17:29

А можно увидеть cache.log и вывод squid -v?
Все гениальное - просто!

priest.romeo
рядовой
Сообщения: 32
Зарегистрирован: 2010-05-18 21:59:19

Re: Squid Transparent Proxy

Непрочитанное сообщение priest.romeo » 2010-07-28 17:18:43

Удалось сделать на 7.3
Squid 2.7 + PF

vodolaz
проходил мимо
Сообщения: 1
Зарегистрирован: 2009-11-21 6:49:15
Контактная информация:

Re: Squid Transparent Proxy

Непрочитанное сообщение vodolaz » 2010-09-08 17:30:06

удалось на 8.0 + squid 2.7 + PF
только вот при авторизации ncsa_auth при прозрачном прокси доступ запрещен, а если браузер настроить вручную все норм((
редирект идет с конкретного ip(192.168.10.78/32). может кто с таким сталкивался?

Аватара пользователя
gekz
мл. сержант
Сообщения: 94
Зарегистрирован: 2010-04-27 10:06:57

Re: Squid Transparent Proxy

Непрочитанное сообщение gekz » 2010-09-10 7:07:47

вы не запустите сквид если занят 80-й прорт
да и зачем прокси слушать его
у него есть 3128
по 80 бегает http трафик, который вы заврачиваете на 3128
по всей видимости у вас ещё апачь стартанутый, который как раз и висит на 80 порту
вот у меня форвард

Код: Выделить всё

02500  5386006   437363309 fwd 10.10.10.254,3128 tcp from table(1) to any dst-port 80

Код: Выделить всё

# squid -v
Squid Cache: Version 2.7.STABLE7

Код: Выделить всё

# uname -a
FreeBSD 8.0-RELEASE FreeBSD 8.0-RELEASE #1: Sat Jun 12 01:11:09 VLAST 2010     support@:/usr/obj/usr/src/sys/khab  i386

Аватара пользователя
set
рядовой
Сообщения: 20
Зарегистрирован: 2010-11-10 13:38:07
Контактная информация:

Re: Squid Transparent Proxy

Непрочитанное сообщение set » 2010-11-10 17:57:29

Код: Выделить всё

FreeBSD freebsd.localhost 8.1-RELEASE FreeBSD 8.1-RELEASE #1
squid 2.7.9
pf

squid.conf

Код: Выделить всё

#auth_param basic program <uncomment and complete this line>
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT


http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports

http_access allow localnet


http_access deny all


#Allow ICP queries from local networks only
icp_access allow localnet
icp_access deny all

# Squid normally listens to port 3128
http_port 3128 transparent

access_log /var/squid/logs/access.log squid


#Suggested default:
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

# Leave coredumps in the first cache dir
coredump_dir /var/squid/cache
pf.conf

Код: Выделить всё

#Interfaces

wan="fxp0"
lan="rl0"

web="{80:83 1080 8080:8088 11523}"

set block-policy drop
set skip on lo0
scrub in all

rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128
nat on $lan inet proto tcp tagged FTP -> ($wan)

Ядро конфигурировал под pf со следующими параметрами:

Код: Выделить всё

# PF support
device pf
device pflog
device pfsync

options         ALTQ
options         ALTQ_CBQ
options         ALTQ_RED
options         ALTQ_RIO
options         ALTQ_HFSC
options         ALTQ_CDNR
options         ALTQ_PRIQ
При установки squid ставил поддержку pf, ставил все версии которые у меня лежат в портах 2.7 3.0 3.1, два дня гуглю, результат один. Прозрачный прокси не работает. В access.log, если в режиме прозрачности пытаюсь перейти на сайт, ничего не отображается. Если ставлю в настройках браузера адрес шлюза и порт 80 (или 8080 или любой порт из$web) все работает. Если кто может, подскажите пожалуйста, где я ошибаюсь.
Все относительно

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Squid Transparent Proxy

Непрочитанное сообщение Burner » 2010-11-10 23:28:36

rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил

Аватара пользователя
set
рядовой
Сообщения: 20
Зарегистрирован: 2010-11-10 13:38:07
Контактная информация:

Re: Squid Transparent Proxy

Непрочитанное сообщение set » 2010-11-11 9:42:19

Burner писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
Это правило ретранслирует на порт 3128 кольцевого интефейса 127.0.0.1 тсп траффик идущий через $lan из откудаугодно в $lan с портами назначения $web (формулеровка возможно не совсем точна, но правило отрабатывает, порт маппинг работает если в браузере точно задать адрес ($lan) и порт(80), но мне нужен прозрачный прокси, я думаю дело не в pf...)

Правила стояли и пропускать все (pass in all) и такие разницы нет, pf отрабатывает одинаково.
Все относительно

Аватара пользователя
set
рядовой
Сообщения: 20
Зарегистрирован: 2010-11-10 13:38:07
Контактная информация:

Re: Squid Transparent Proxy

Непрочитанное сообщение set » 2010-11-11 9:55:39

set писал(а):
Burner писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
Это правило ретранслирует на порт 3128 кольцевого интефейса 127.0.0.1 тсп траффик идущий через $lan из откудаугодно в $lan с портами назначения $web (формулеровка возможно не совсем точна, но правило отрабатывает, порт маппинг работает если в браузере точно задать адрес ($lan) и порт(80), но мне нужен прозрачный прокси, я думаю дело не в pf...)

Правила стояли и пропускать все (pass in all) и такие разницы нет, pf отрабатывает одинаково.
вру, вот мой pf.conf

Код: Выделить всё

#Interfaces
wan="fxp0"
lan="rl0"

web="{80:83 1080 8080:8088 11523}"

set block-policy drop
set skip on lo0
scrub in all

#WWW transperent
rdr pass on $lan inet proto tcp from any to $lan port $web -> $loop port 3128
nat on $lan inet proto tcp tagged FTP -> ($wan)

pass in all
pass out all
Переброска с 80 на 3128 работает, сквид не хочет пахать в прозрачном режиме.... :st:
Все относительно

pimlab
прапорщик
Сообщения: 484
Зарегистрирован: 2007-10-09 11:31:03

Re: Squid Transparent Proxy

Непрочитанное сообщение pimlab » 2010-11-11 10:39:54

set писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое

Код: Выделить всё

#Interfaces
wan="fxp0"
lan="rl0"

web="{80:83 1080 8080:8088 11523}"

set block-policy drop
set skip on lo0
scrub in all

#WWW transperent
rdr pass on $lan inet proto tcp from any to $lan port $web -> $loop port 3128
nat on $lan inet proto tcp tagged FTP -> ($wan)

pass in all
pass out all
Переброска с 80 на 3128 работает, сквид не хочет пахать в прозрачном режиме.... :st:

Код: Выделить всё

table <home_lan> const { 192.168.0.0/24 }

rdr pass on $lan inet proto tcp from <home_lan> to any port $web -> $loop port 3128