"net" refers to any nonlocal address. Well, thanks for framing the idea in a question. Now I understand that the "pair of zones" as described by shorewall documentation is evaluated in order. The first pair in my rules being loc to net, and the second pair being loc to proxy on port 3128.
Now here's another thing I did so that I wouldn't have to nullify the utility of the Squid proxy.
I changed the redirect rule to the following instead of commenting it out.
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL#
# PORT PORT(S) DEST #
REDIRECT loc 3128 tcp www - !192.168.1.240
It worked, I can't surf the web from the internal machine, BUT the rule doesn't really make sense. Because the way it is written actually means the following:
Redirect all local machine TCP port 80 (www) traffic to port 3128 on the proxy (my router), unless the traffic was originally intended to go to machine at address 192.168.1.240.
The rule kind of makes sense since, I quote the example in the rules file, "This example shows yet another use for the ORIGINAL DEST column; here, connection requests that were NOT (notice the “!”) originally destined to [192.168.1.240] are redirected to local port 3128."
If I think about this in terms of traffic coming from the proxy back to 192.168.1.240 (if the proxy itself is considered in the "loc" group, I don't know), then the rule implies traffic that is originally destined for 192.168.1.240 does not get redirected to 3128. This is confusing...
Perhaps I should write a rule like the following to make it explicit what my goal is...
REJECT loc:192.168.1.240 3128 tcp www
Any other ideas? Note that by default, I think Mandrake names my router/firewall, where the proxy resides, "fw". So if you can write me a rule that's clear and doesn't hinder internal port 80 traffic from 192.168.1.240, please let us see.