NetFilter
[Top] [All Lists]

Re: Matching packets by HTTP header "Host"

To: netfilter@lists.netfilter.org
Subject: Re: Matching packets by HTTP header "Host"
From: Giovanni Lovato <giovanni.lovato@aldu.net>
Date: Tue, 13 Mar 2007 19:50:49 +0100
Delivered-to: sp-com-lists@consult.net
Delivered-to: netfilter-list1@securepoint.com
In-reply-to: <45F6EF90.3040504@plouf.fr.eu.org>
List-archive: </pipermail/netfilter>
List-help: <mailto:netfilter-request@lists.netfilter.org?subject=help>
List-id: General discussion and user questions <netfilter.lists.netfilter.org>
List-post: <mailto:netfilter@lists.netfilter.org>
List-subscribe: <https://lists.netfilter.org/mailman/listinfo/netfilter>, <mailto:netfilter-request@lists.netfilter.org?subject=subscribe>
List-unsubscribe: <https://lists.netfilter.org/mailman/listinfo/netfilter>, <mailto:netfilter-request@lists.netfilter.org?subject=unsubscribe>
Openpgp: url=http://www.aldu.net/~heruan/public.key
References: <45F68159.5040606@aldu.net> <45F6EF90.3040504@plouf.fr.eu.org>
Sender: netfilter-bounces@lists.netfilter.org
User-agent: Thunderbird 1.5.0.10 (X11/20070307)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pascal Hambourg wrote:
> Hello,
>
> Giovanni Lovato a écrit :
>>
>> I'm trying to forward packets to different hosts depending on the "Host"
>> header in HTTP packets, e.g. packets on port 80 requesting "Host:
>> one.example.org" to 192.168.0.1 and all other on port 80 to 192.128.0.2.
>> I did:
>>
>> iptables -t nat -A PREROUTING -p TCP -i eth0 -m string --algo bm
>> - --string "Host: one.example.org" --destination-port 80 -j DNAT
>> - --to-destination 192.168.0.1
>>
>> iptables -t nat -A PREROUTING -p TCP -i eth0 --destination-port 80 -j
>> DNAT --to-destination 192.168.0.2
>>
>> But all packets are going to 192.168.0.2. Do I miss something?
>
> Rules in the 'nat' table apply only to the first packet of a new
> connection. NAT operations for the whole connection is determined by the
> NAT rules applied to the first (SYN) packet of the connection, which
> does not contain any HTTP payload data such as the "Host" header. So the
> first rule never matches a packet. As suggested, use a HTTP proxy instead.

Thank you all.
I used Apache mod_proxy_http to gain my needs!

G.L.
- --
www.aldu.net/~heruan
giovanni.lovato@aldu.net
ldaps://pgpkeys.aldu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFF9vKJaWLXrn9dopwRAm8AAJ9QJ/EkKwVh6+rNrLGRABVT/gqz5ACfbw1Y
AV92Cm4Mo4AlN/2zcDEXiUU=
=NNvp
-----END PGP SIGNATURE-----


<Prev in Thread] Current Thread [Next in Thread>