[squid-users] squid-3.4.8 intercept

Amos Jeffries squid3 at treenet.co.nz
Wed Nov 19 05:18:19 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 19/11/2014 6:59 a.m., Frank wrote:
> Hi,
> 
> Since upgrading from 3.1.22 to 3.4.8 I have been unable to get the 
> transparent mode to accept my IP.  I am seeing permission denied in
> the transaction when I do a packet dump. I have read the
> documentation making changes for 3.4.8. I even allowed everything
> and no go.
> 
> I also compiled squid and here is my configure script:
> 
> ./configure \ --prefix=/usr/share/squid-3.4.8  \ 
> --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc/squid \ 
> --localstatedir=/var/log/squid \ --datadir=/usr/share/squid-3.4.8
> \ --with-pidfile=/var/run/squid/squid.pid \ --mandir=/usr/man \ 
> --with-logdir=/var/log/squid \ --enable-snmp \ 
> --enable-ipf-transparent \ --enable-ipfw-transparent #
> --enable-auth="basic" \ #  --enable-basic-auth-helpers="NCSA" \ #
> --enable-linux-netfilter \ #  --enable-async-io \ #
> --disable-strict-error-checking
> 
> My machine the browser is on:
> 
> 66.159.32.31
> 
> The machine that is running squid:
> 
> 66.159.47.22
> 
> Here is my squid.conf
> 
> ===================================================================================
>
> 
> 
> # # Recommended minimum configuration: #
> 
> cache_effective_user  squid cache_effective_group  squid
> 
> # Example rule allowing access from your local networks. # Adapt to
> list your (internal) IP networks from where browsing # should be
> allowed acl localnet src all    # RFC1918 possible internal
> network

You are thus naming yourself the owner and operator with the *entire*
Internet as your LAN.


> #acl localnet src 66.159.32.0/24        # RFC1918 possible internal
> network #acl localnet src 108.161.167.0/24      # RFC1918 possible
> internal network #acl localnet src 66.159.47.0/24        # RFC1918
> possible internal network #acl localnet src 127.0.0.0/24  # 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
> 
> # # Recommended minimum Access Permission configuration: # # Deny
> requests to certain unsafe ports ########http_access deny
> !Safe_ports
> 
> # Deny CONNECT to other than secure SSL ports 
> ###########http_access deny CONNECT !SSL_ports
> 

Undo the above disabling. When accepting traffic from anywhere on the
Internt it becomes more critical than ever that you block malicious
port usage.


> # Only allow cachemgr access from localhost 
> ###############http_access allow localhost manager
> 
> ###############http_access deny manager
> 
> # We strongly recommend the following be uncommented to protect
> innocent # web applications running on the proxy server who think
> the only # one who can access services on "localhost" is a local
> user ############http_access deny to_localhost
> 
> # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS 
> # # Example rule allowing access from your local networks. # Adapt
> localnet in the ACL section to list your (internal) IP networks #
> from where browsing should be allowed
> 
> http_access allow localnet http_access allow localhost
> 
> # And finally deny all other access to this proxy #http_access deny
> all http_access allow all

You already allow localnet (aka 'all'). Undo this.

> 
> # Squid normally listens to port 3128 http_port 3128 http_port 3129
> intercept
> 
> always_direct allow all

This is irrelevant. You have no cache_peer setting to bypass.

<snip>
> ==================================================================================
>
> 
> 
> And I have configured my browser to use HTTP Proxy 66.159.47.22
> Port 3129

Boom!. There is the problem #1.

* "http_port 3128" is for explicitly configured browsers.

* "http_port 3129 intercept" is for NAT intercepted traffic.

You MUST NOT combine the two traffic types on one port. The
reject/deny you are seeing are just the tip of the iceberg of problems
when that happens.

> 
> I also setup iptables on my machine as follows and that didn't
> work either. Same permission denied.
> 
> 
> /sbin/iptables -t nat -A OUTPUT -p tcp -s 66.159.32.31 --dport 80
> -j DNAT --to 66.159.47.22:3129

DNAT/REDIRECT of traffic entering Squid *MUST* be performed on the
Squid machine itself.

Here is the config you shoudld be using:
 <http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxRedirect>


Use normal routing to get the traffic from your users machine(s) to
the proxy machine. There are some examples here:
 <http://wiki.squid-cache.org/ConfigExamples/Intercept/IptablesPolicyRoute>

Amos
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQEcBAEBAgAGBQJUbCgJAAoJELJo5wb/XPRjvioIALkqGbHFtXCZpww3/i3IzuAC
PpcRaYAXSqJxKcdncoSxfBtHiig1OxyARdSDqJ/PWRLEuVBkOG/uL5fHD19gwRaN
6aOsO/IZu8+Fg7Fl+DLVkoVsOKeRj4guyJOBVyPAQXRyOEzpBe6N6WjCpDHVzh3c
iT5qVbHs9iHDZjy809OqUB5+bzL/PmgKeDrbnYpUlBKniehgP7LL86aim3tE9mc7
Kr00oltPEEGZ/gyuAp9zy2DiLYj+IYlE9NrkZE9/larCrZNLl4Vd4rRznxqhowQQ
6nJslTpOm63zg/f4UwGzOfCW7XdqZC0ZXunn04rQKbN/Z18teWvare0al/HUxyA=
=2boS
-----END PGP SIGNATURE-----


More information about the squid-users mailing list