squid

Any discussions about UNIX OS (include Linux)

Moderator: sva

squid

Postby Sergey Gernichenko on Thu Feb 18, 2010 5:11 pm

Почему в логе на каждый HTTP-запрос появляется сообщение в логе cache.log

WARNING: transparent proxying not supported ?

в pf.conf редиректится только порт 80:

rdr on em0 proto tcp from any to any port 80 -> 127.0.0.1 port 3128 em0-это внутренний интерфейс.

При этом проксирование производится, у клиентов страницы открываются, по логу access.log видно, что всё работает.

в логе кеш.лог есть сообщение "Accepting intercepted HTTP connections at 0.0.0.0:3128", я так понимаю, это значит,
что он готов работать в режиме прозрачного прокси.

2010/01/19 23:06:28| Starting Squid Cache version 3.1.0.15 for i386-portbld-freebsd7.0...
2010/01/19 23:06:28| Process ID 8186
2010/01/19 23:06:28| With 11072 file descriptors available
2010/01/19 23:06:28| Initializing IP Cache...
2010/01/19 23:06:28| ipcacheAddEntryFromHosts: Bad IP address '::1'
2010/01/19 23:06:28| DNS Socket created at 0.0.0.0, FD 7
2010/01/19 23:06:28| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2010/01/19 23:06:28| Unlinkd pipe opened on FD 12
2010/01/19 23:06:28| Store logging disabled
2010/01/19 23:06:28| Swap maxSize 0 + 262144 KB, estimated 20164 objects
2010/01/19 23:06:28| Target number of buckets: 1008
2010/01/19 23:06:28| Using 8192 Store buckets
2010/01/19 23:06:28| Max Mem size: 262144 KB
2010/01/19 23:06:28| Max Swap size: 0 KB
2010/01/19 23:06:28| Using Least Load store dir selection
2010/01/19 23:06:28| Set Current Directory to /usr/local/squid/cache
2010/01/19 23:06:28| Loaded Icons.
2010/01/19 23:06:28| Accepting intercepted HTTP connections at 0.0.0.0:3128,FD 13.
2010/01/19 23:06:28| HTCP Disabled.
2010/01/19 23:06:28| Squid modules loaded: 0
2010/01/19 23:06:28| Ready to serve requests.
2010/01/19 23:06:29| storeLateRelease: released 0 objects

# squid -v
Squid Cache: Version 3.1.0.15
configure options: '--with-default-user=squid' '--bindir=/usr/local/sbin'
'--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid'
'--libexecdir=/usr/local/libexec/squid' '--localstatedir=/usr/local/squid'
'--sysconfdir=/usr/local/etc/squid' '--with-logdir=/usr/local/squid/logs'
'--with-pidfile=/usr/local/squid/squid.pid' '--enable-removal-policies=lru
heap' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-epoll'
'--disable-translation' '--enable-auth=basic digest negotiate ntlm'
'--enable-basic-auth-helpers=DB NCSA PAM MSNT SMB squid_radius_auth'
'--enable-digest-auth-helpers=password' '--enable-external-acl-helpers=ip_user
session unix_group wbinfo_group' '--enable-ntlm-auth-helpers=smb_lm'
'--enable-storeio=ufs diskd aufs' '--enable-disk-io=AIO Blocking DiskDaemon
DiskThreads' '--disable-ipv6' '--enable-delay-pools' '--disable-snmp'
'--enable-ssl' '--with-openssl=/usr' '--enable-pf-transparent'
'--enable-kqueue' '--disable-optimizations' '--prefix=/usr/local'
'--mandir=/usr/local/man' '--infodir=/usr/local/info/'
'--build=i386-portbld-freebsd7.0' 'build_alias=i386-portbld-freebsd7.0' 'CC=cc'
'CFLAGS=-pipe -I/usr/include -g' 'LDFLAGS= -rpath=/usr/lib:/usr/local/lib
-L/usr/lib' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-pipe -I/usr/include -g'
--with-squid=/usr/ports/www/squid31/work/squid-3.1.0.15
--enable-ltdl-convenience
Sergey Gernichenko
 

Re: squid

Postby Vassily Kiryanov on Thu Feb 18, 2010 5:13 pm

Sergey Gernichenko wrote:Почему в логе на каждый HTTP-запрос появляется сообщение в логе cache.log

WARNING: transparent proxying not supported ?

в pf.conf редиректится только порт 80:

rdr on em0 proto tcp from any to any port 80 -> 127.0.0.1 port 3128 em0-это внутренний интерфейс.

При этом проксирование производится, у клиентов страницы открываются, по логу access.log видно, что всё работает.

в логе кеш.лог есть сообщение "Accepting intercepted HTTP connections at 0.0.0.0:3128", я так понимаю, это значит,
что он готов работать в режиме прозрачного прокси.

Hет, это значит, что он готов работать в режиме обычного (непрозрачного) proxy на _всех_ (т.к. 0.0.0.0) адресах, включая 127.0.0.1, на порту 3128.
Hадо было написать что-то типа следующего:
http_port int-ip:3128
http_port ext-ip:3128
http_port localhost:8080 transparent
где int-ip, ext-ip и localhost это имена IP-шников, упомянутые в /etc/hosts

Зачем у прозрачного порт сделан другой - это необязательно, но так удобнее ACL-и потом писать, для рулёжки куда можно ходить "прозрачным" и "непрозрачным"
пользователям.

Правда, запуская squid с хотя-бы одним "http_port address:port transparent", ты сразу теряешь возможность требовать username+password на всех http_port, не
только на transparent. При необходимости это обходится заремливанием слова transparent в конфиге squid + внешним "опрозрачнивателем" (у меня в этом
качестве transproxy из портов).
Vassily Kiryanov
 

Re: squid

Postby Sergey Gernichenko on Thu Feb 18, 2010 5:14 pm

Vassily Kiryanov wrote:Hет, это значит, что он готов работать в режиме обычного (непрозрачного) proxy на _всех_ (т.к. 0.0.0.0) адресах, включая 127.0.0.1, на порту 3128.

в доке на сквид последних версий (31 эт точно) указано, что опция transparent deprecated. Вместо нее нужно использовать intercept,
поэтому, я считаю, что фраза в логе
"Accepting intercepted HTTP connections at 0.0.0.0:3128" обозначает именно готовность принимать прозрачные запросы на всех интерфейсах на порту 3128
(ведь при этом всё работает, аксесс лог не пустует).

И зачем ещё что-то в хостс прописывать? у меня ща перестало это сообщение в лог писать после того, как убрал прослушку порта 3128 с внешних интерфейсов
(прописал http_port 127.0.0.1:3128 intercept).

Hо ещё потребовалось вручную имзенить права на /dev/pf, теперь они выглядят так:
# ll /dev/pf
crw-r----- 1 root squid 0, 101 Jan 18 20:28 /dev/pf
Sergey Gernichenko
 


Return to UNIX

Who is online

Users browsing this forum: No registered users and 2 guests