All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pascal Hambourg <pascal.mail@plouf.fr.eu.org>
To: netfilter@lists.netfilter.org
Subject: Re: Transparent proxy setup with apache on the nat gateway
Date: Mon, 05 Jun 2006 13:10:43 +0200	[thread overview]
Message-ID: <44841133.90004@plouf.fr.eu.org> (raw)
In-Reply-To: <1149500883.6397.9.camel@rousalka.dyndns.org>

Hello,

Nicolas Mailhot a écrit :
> Le lundi 05 juin 2006 à 10:40 +0200, Sietse van Zanen a écrit :
> 
>>I think the error is in your first two rules for the PREROUTING chain
>>in the NAT table:
>> 
>>> #-A PREROUTING -p tcp -m multiport --dports
>>> http,https,squid,svn,http-alt,webcache -j REDIRECT --to-port 8081
>>> #-A PREROUTING -p tcp -m multiport --dports
>>> http,https,squid,svn,http-alt,webcache -j DNAT --to 192.168.1.1:8081
>>
>>All WEB traffic will only hit the first rule and never the second.  So
>>the destination IP address doen't get changed. A packet for 1.2.3.4 on
>>port 80 will be redirected to 1.2.3.4 port 8081.

This is not true. REDIRECT replaces the destination address with the 
address of the input interface. So when the input interface has address 
192.168.1.1 both rules would produce the same result.

>>I think you should try something like this.
>>Have apache proxy listen on localhost (127.0.0.1) port 8081
>>Iptables -t NAT -A PREROUTING -p tcp -i eth0(internal nic) -m multiport
>>--dports http,https,squid,svn,http-alt,webcache -j REDIRECT --to 127.0.0.1:8081

No, this won't work. The IP stack refuses packets with a loopback 
destination address received on a non loopback interface.

> If I use REDIRECT the to is interpreted like --to-port and I see the LAN
> system hammer the gateway 127 port :(

Looks like iptables command parsing could be improved. ;-)

> If I use
> -A PREROUTING -i eth1 -p tcp -m multiport --dports
> http,https,squid,svn,http-alt,webcache -j REDIRECT --to-port 8081
> 
> the requests are redirected to port 8081 of the lan interface IP
> (192.168.1.1, I can live with that) but the result is abysmal :
> apache logs 
> 
> "GET / HTTP/1.1" requests instead of
> "GET http://www.slashdot.org/ HTTP/1.1" requests
> 
> so all sites are served as if the browser asked for the local root
> (empty) and the browser only receives blank pages

The question is : are you sure that Apache can act as a _transparent_ 
proxy, like Squid ?

*Disclaimer : I don't know Apache much*
 From a quick search it does not seem that mod_proxy can do transparent 
proxying. There is a mod_tproxy that is designed to do it, but it does 
not seem to be part of the standard Apache distribution.
HTH.


  reply	other threads:[~2006-06-05 11:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-05  8:40 Transparent proxy setup with apache on the nat gateway Sietse van Zanen
2006-06-05  9:48 ` Nicolas Mailhot
2006-06-05 11:10   ` Pascal Hambourg [this message]
2006-06-05 11:21     ` Nicolas Mailhot
2006-06-05 11:31       ` Pascal Hambourg
2006-06-07  3:58       ` R. DuFresne
2006-06-05 11:24     ` Pascal Hambourg
2006-06-07  8:42     ` Benny Amorsen
  -- strict thread matches above, loose matches on Subject: below --
2006-06-05 11:35 Sietse van Zanen
2006-06-05 10:51 Sietse van Zanen
2006-06-04 20:10 Nicolas Mailhot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44841133.90004@plouf.fr.eu.org \
    --to=pascal.mail@plouf.fr.eu.org \
    --cc=netfilter@lists.netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.