Ok, I'll try to explain the scenario again and more detailed (I remark
that I'm using this guide which states that it should work for public IP
addresses: http://wiki.squid-cache.org/ConfigExamples/Intercept/AtSource):
Client side: Has public IP address A.B.C.D
Server side: Has public IP address E.F.G.H
On the client side, I added the following iptables rule:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT
--to-destination E.F.G.H:3128
On the server side, I just opened up the port 3128, this is the only one
rule:
iptables -I INPUT -s eth0 --dport 3128 -j ACCEPT
On the server side, there's a squid3 running with the default package
configuration, just two lines changing (though the 3127 port has nothing
to do with this example):
http_port 3128 intercept
http_port 0.0.0.0:3127
So, when I do a HTTP connection attempt on the client side, it is indeed
successfully redirected to E.F.G.H but the loop occours with these two
events in the log:
cache.log:
2014/07/17 21:05:02| WARNING: Forwarding loop detected for:
GET / HTTP/1.1
Host: google.es
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101
Firefox/24.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie:
PREF=ID=119a6e25e6eccb3b:U=95e37afd611b606e:FF=0:TM=1404500940:LM=1404513627:S=r7E-Xed2muOOp-ay;
NID=67=M5geOtyDtp5evLidOfam1uzfhl6likehxjXo7KcamK8c5jXptfx9zJc-5L7jhvYvnfTvtXYJ3yza7cE8fRq2x0iyVEHN9Pn2hz9urrC_Qt_xNH6IQCoT-3-eXTwb2h4f;
OGPC=5-25:
Pragma: no-cache
Via: 1.1 homeSecureProxy (squid/3.3.8)
X-Forwarded-For: A.B.C.D
Cache-Control: no-cache
Connection: keep-alive
access.log:
1405623902.957 0 A.B.C.D TCP_MISS/403 4300 GET
http://google.es/ - HIER_NONE/- text/html
1405623902.958 1 A.B.C.D TCP_MISS/403 4419 GET
http://google.es/ - HIER_DIRECT/E.F.G.H text/html
I also tried using a VPN connection between both the client and the
server, the result is exactly the same (just the public IPs change by
the VPN's private, obviously).
I hope I explained it better now, hope someone can help because this is
really driving me nuts :-(
Thanks.
El 17/07/2014 14:45, Eliezer Croitoru escribió:
On 07/17/2014 08:47 AM, Nicolás wrote:
Hi Eliezer,
This would be the output of your script. This is not CentOS so some
things have failed... and I just obscurated the public IP related data.
I tried adding the rule you proposed (as you may see in the output), but
unfortunately it made no difference, I'm still having the redirect loop.
I am yet not able to understand how do you use the proxy and how do
you connect to it.
The only way you can connect to your server is but I assume it will be
a tunnel\vpn connection.
How do you want to use your proxy?
It will be much simpler to understand the circumstances to the loop
rather then the loop itself (for me).
I think that we are missing something important in everything.
Can you just run "curl -I http://www.google.com" from command line?
(and couple other addresses you are having issues with).
Eliezer