> > > > Jan-Frode Myklebust-2 wrote: >> >> On 2009-03-06, Merdouille <jgerha...@r-advertising.com> wrote: >>> >>> I need to have a squid conf to allow peaople to acces data from url >>> like >>> : >>> >>> http://mysquidproxy/img=http%3A%2F%2Ffiles.macbidouille.com%2Fnews%2F200903%2FAP999.jpg >>> or >>> http://mysquidproxy/img=http://files.macbidouille.com/Fnews/200903/AP999.jpg >>> >>> and i want mysquid to use cache for >>> http://files.macbidouille.com/Fnews/200903/AP999.jpg >> >> >> I recently had a similar problem, but I solved it using apache instead >> of squid. Assuming your squid is running on port 3128/tcp, and you have >> apache listening on 80/tcp. The following apache-config should do what >> you ask (I think): >> >> ProxyRequests On >> ProxyRemote * http://localhost:3128 >> ProxyTimeout 600 >> ProxyPreserveHost Off >> >> RewriteEngine on >> RewriteRule ^/img=http://(.*) http://$1 [L,P] >> >> >> >> -jf >> >> >> > > I tried it for my httpd : > > # Activation du proxy > ProxyRequests On > ProxyVia On > # Les proxy peres > ProxyRemote * http://192.168.100.194:81 > # Le timeout > ProxyTimeout 600 > ProxyPreserveHost Off > RewriteEngine on > RewriteRule ^/img=http://(.*) http://$1 [L,P] > RewriteLog /var/log/httpd/rewrite.log > RewriteLogLevel 3 > > > And my squid on the same computer port 81 : > > visible_hostname moi > acl all src all > acl white dstdomain "/etc/squid/white" > acl TRACE method TRACE > acl PUT method PUT > acl POST method POST > acl proxyed urlpath_regex -i "/etc/squid/whitelist" >
Are these the only http_access lines? > http_access allow white !POST !PUT !TRACE proxyed Will ONLY match domains in whilelist which *also* contain path segments in 'proxyed'. -> This means apache requests for http://someone.else.example.com/fubar will not match this control. > http_access deny !white POST PUT TRACE !proxyed --> will always fail to match: Request method == "POST" == "PUT" == "TRACE" != true *** implicit inversion *** Your squid is handling that list as trailed by an: http_access allow all Which makes your open-proxy behavior. > http_port moi:81 > icp_port 0 > > etc > > When i try http://moi/http://somesite/someURL it works but it works for > every site! > My dstdomain white list works no more! To get this going safely with Squid+Apache you will also need to do all of the following in addition to what you have already done: 1) Trail the list with an explicit "http_access deny all" to be sure the set controls only do what you want. 2) add an access control to allow apache requests through 3) setup a second ACL mirroring the 'proxyed' listing, which limits apache requests only to the requests that are actually allowed. 4) setup a *third* set of access controls on apache. To mirror the accepted content in 'proxyed' file and block apache from being an open-proxy in it's own place. Amos