Squid + iptables + apache
I managed to solve my problem, but, for future reference, I answer Edmundo's question. The error I was getting from squid was
"
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: http://something.dyndns.org/
The following error was encountered:
* Connection Failed
The system returned:
(111) Connection refused
The remote host or network may be down. Please try the request again. "
[email protected] suggested enabling the option X-forwarded-something on squid. I tried that, and it didn't work.
Now, /dev/rob0's solution doesn't work either. Firefox just cannot connect to the host.
However, as you might have seen from the squid message, I was trying to access 192.168.0.3, as a host, but using the dyndns name it has. Of course, that name is associated with the ppp0 interface. Adding an appropriate rule in ip-up did the trick.
/usr/sbin/iptables -t nat -I PREROUTING 1 -i eth0 -p tcp -d $4 --dport 80 -j DNAT --to 192.168.0.1:80
Even so, I tried /dev/rob0's solution, and I tried to acces the host as 192.168.0.3, and it still doesn't work.
Thank you all for your suggestions.
Enrique
Quoted 11 lines · Enrique Augusto Tobis
To sum it up, almost everything is working as it should. But, if I try to access 192.168.0.3 from INSIDE the network, I get an error from squid...
I activate the transparent proxy with
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080and forward the port 80 connections with
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.1:80
iptables -vt nat -I PREROUTING -i eth0 -d 192.168.0.3 -p tcp \
--dport 80 -j ACCEPT
*Might* do it. My guess is that this router is seeing the packets to 192.168.0.3 for some reason. My rule (-I to insert at top) will bypass your REDIRECT rule.
Edmundo's question is valid. Normally a host would not go through your firewall to reach another host on the same physical segment. So my guess might be wrong.