Squid Transparent Proxy
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Squid Transparent Proxy
Доброго времени суток уважаемые форумчане.
Возникла необходимость организовать прозрачный прокси на базе 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 привелигированным?
Если кто то сталкивался, пожалуйста подскажите.
Возникла необходимость организовать прозрачный прокси на базе 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
Тарифы на хостинг в России, от 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/
Тарифы на виртуальные сервера (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/
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2009-06-14 7:02:26
Re: Squid Transparent Proxy
сделаить редирект портов с 80 на 3128. Сквид при этом нужно собрать с поддержкой используемого фильтра
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
Может ли кто нибудь выложить свой рабочий конфиг Squid'а. Прозрачный версии 2.7?
Заранее СПАСИБО!
Заранее СПАСИБО!
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Re: Squid Transparent Proxy
Код: Выделить всё
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
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
Так и не получилось локализовать проблему и пришёл я в тупик . Поэтому прошу вашей помощи уважаемые форумчане.
OS: FreeBSD 8
SQUID: 2.7.9
Interfaces:
Kernel options:
squid.conf
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"
Пропинговать из клиентской сети и внешний и внутренний интерфейс прокси могу. Такое впечатление что сквид не поинмает куда нужно отправлять пактеы дальше либо он их просто не принимает. С самой прокси в инет ходить могу.
OS: FreeBSD 8
SQUID: 2.7.9
Interfaces:
Код: Выделить всё
em0 - 192.168.0.1 - смотрит в локаль
re0 - 10.5.96.100 - смотрит в инет, точнее в маршрутизатор, который в свою очередь смотрит в инет
Код: Выделить всё
IPFIREWALL
IPFIREWALL_VERBOSE
IPFIREWALL_DEFAULT_TO_ACCEPT
IPFIREWALL_FORWARD
IPDIVERT
DUMMYNET
Код: Выделить всё
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
+ 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
А что в логах /var/log/squid/access.log?
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
В логах тишина. Вообще ничего.
Добавил правило посмотреть форвардит что-нить 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
и ничего. Может правило как то неправильно написал?
Добавил правило посмотреть форвардит что-нить 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
а если убрать
?
Код: Выделить всё
recv em0
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
А вот теперь интересно. Когда указываю в браузере клиента http://192.168.0.1 тогда в логах фаера появляется запись о перебросе на порт сквида. Т.е. получается форвард отрабатывает корректно только тогда, когда адрес назначения 192.168.0.1 - входящий интерфейс прокси. Это бред, а как же тогда все остальные адреса? Хм.....что то с правилом не то или с ipfw не хватает чего то, может модуля какого?
recv em0 - не убирал пока, сейчас попробую
recv em0 - не убирал пока, сейчас попробую
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
убрал recv em0, а результат тот же при указании шлюзом назначения интерфейс прокси всё норм переправляет на сквид, а вот если любой другой адрес то ничего не перенаправляет.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
судя по всему затык где то в работе IPDIVERT и данная связка не работает на 8, жаль... может кто то делал данное с IPFilter ом.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
Попытался это на IPFiltre организовать. Пересобрал сквид и тоже самое.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
Неужели придется всё делать на долбаных форточках!?
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2009-06-14 7:02:26
Re: Squid Transparent Proxy
запускайте tcpdump и смотрите что куда идет. Еще PF попробовать можно.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
А вот ради интереса, у кого нибудь вообще на 8-ке прозрачный работает? В 8-ке архитикуру маршрутизации измениили, все маны, которые удалось встретить написаны под 7.3 и ниже.
- folax
- мл. сержант
- Сообщения: 86
- Зарегистрирован: 2008-04-01 17:00:10
- Откуда: Украина
Re: Squid Transparent Proxy
у меня работает на 8 прозрачный
http_port 3128 intercept
mics# squid -v
Squid Cache: Version 3.1.4
поставь сквид нормальный скину конфиг минимальный
http_port 3128 intercept
mics# squid -v
Squid Cache: Version 3.1.4
поставь сквид нормальный скину конфиг минимальный
если что то делаешь то что то меняться и будет
-
- сержант
- Сообщения: 154
- Зарегистрирован: 2007-12-10 21:04:35
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-05-18 21:59:19
Re: Squid Transparent Proxy
Удалось сделать на 7.3
Squid 2.7 + PF
Squid 2.7 + PF
-
- проходил мимо
- Сообщения: 1
- Зарегистрирован: 2009-11-21 6:49:15
- Контактная информация:
Re: Squid Transparent Proxy
удалось на 8.0 + squid 2.7 + PF
только вот при авторизации ncsa_auth при прозрачном прокси доступ запрещен, а если браузер настроить вручную все норм((
редирект идет с конкретного ip(192.168.10.78/32). может кто с таким сталкивался?
только вот при авторизации ncsa_auth при прозрачном прокси доступ запрещен, а если браузер настроить вручную все норм((
редирект идет с конкретного ip(192.168.10.78/32). может кто с таким сталкивался?
- gekz
- мл. сержант
- Сообщения: 94
- Зарегистрирован: 2010-04-27 10:06:57
Re: Squid Transparent Proxy
вы не запустите сквид если занят 80-й прорт
да и зачем прокси слушать его
у него есть 3128
по 80 бегает http трафик, который вы заврачиваете на 3128
по всей видимости у вас ещё апачь стартанутый, который как раз и висит на 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
Код: Выделить всё
FreeBSD freebsd.localhost 8.1-RELEASE FreeBSD 8.1-RELEASE #1
squid 2.7.9
pf
Код: Выделить всё
#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
Код: Выделить всё
#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 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
Все относительно
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2009-06-14 7:02:26
Re: Squid Transparent Proxy
rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
- set
- рядовой
- Сообщения: 20
- Зарегистрирован: 2010-11-10 13:38:07
- Контактная информация:
Re: Squid Transparent Proxy
Это правило ретранслирует на порт 3128 кольцевого интефейса 127.0.0.1 тсп траффик идущий через $lan из откудаугодно в $lan с портами назначения $web (формулеровка возможно не совсем точна, но правило отрабатывает, порт маппинг работает если в браузере точно задать адрес ($lan) и порт(80), но мне нужен прозрачный прокси, я думаю дело не в pf...)Burner писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
Правила стояли и пропускать все (pass in all) и такие разницы нет, pf отрабатывает одинаково.
Все относительно
- set
- рядовой
- Сообщения: 20
- Зарегистрирован: 2010-11-10 13:38:07
- Контактная информация:
Re: Squid Transparent Proxy
вру, вот мой pf.confset писал(а):Это правило ретранслирует на порт 3128 кольцевого интефейса 127.0.0.1 тсп траффик идущий через $lan из откудаугодно в $lan с портами назначения $web (формулеровка возможно не совсем точна, но правило отрабатывает, порт маппинг работает если в браузере точно задать адрес ($lan) и порт(80), но мне нужен прозрачный прокси, я думаю дело не в pf...)Burner писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какое в pf дефолтное правило, но для тестов дефолтный accept бы добавил
Правила стояли и пропускать все (pass in all) и такие разницы нет, pf отрабатывает одинаково.
Код: Выделить всё
#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
Все относительно
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: Squid Transparent Proxy
set писал(а):rdr pass on $lan inet proto tcp from any to $lan port $web -> 127.0.0.1 port 3128 - это правило что должно делать?
И не помню, какоеПереброска с 80 на 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
Код: Выделить всё
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