From: "curby ." <curby.public@gmail.com>
To: Adam Rosi-Kessel <adam@rosi-kessel.org>
Cc: netfilter@lists.netfilter.org
Subject: Re: Transparent proxy where source IP address remains unchanged -- possible?
Date: Fri, 12 Aug 2005 12:35:57 -0600 [thread overview]
Message-ID: <5d2f379105081211357e8d558a@mail.gmail.com> (raw)
In-Reply-To: <42FA1BBD.6060806@rosi-kessel.org>
On 8/10/05, Adam Rosi-Kessel <adam@rosi-kessel.org> wrote:
> I'm new to iptables and have perhaps a naive question.
>
> I am wondering if there is a way to configure a proxy such that packets
> are redirected to a new IP address, but the *source* IP address remains
> unchanged.
>
> To illustrate: let's say we have "userbox" 10.1.1.2, "faketarget"
> 10.1.1.3, and "realtarget" 10.1.1.4.
>
> Userbox initiates an ssh connection to faketarget. Faketarget routes all
> packets to realtarget.
This is classic Destination NAT, or "port forwarding" and is certainly possible.
> iptables -t nat -A PREROUTING -i eth0 -s 10.1.1.2 -d 10.1.1.3 \
> -p tcp --dport ssh -j DNAT --to 192.168.98.4
In your hypothetical above, all three hosts were on the same subnet.
If in fact your realtarget is on another subnet (as it is in this
command), then all you need is DNAT and your source address/port will
be kept. If all three hosts are on the same network, or the source
and realtarget are on the same network, then you will need a SNAT rule
as shown here:
http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO-10.html
> iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.2 -d 10.1.1.3 \
> -j SNAT --to 10.1.1.3
>
> Easy enough. But in this case, the connection to realtarget appears to
> come from faketarget, not userbox, the originator of the ssh connection.
Right, using the SNAT target you have mangled the packet to claim to
come from faketarget. You shouldn't expect realtarget to see anything
different.
> This is normally what you want with local NAT.
> But what if I want the connection to realtarget to appear to come from
> userbox. I want faketarget to be an almost invisible middleman. I
> don't want to rewrite the source IP address, but leave it as is. If I
> just leave off the second iptables line above, however, no packets are
> forwarded to realtarget at all.
A single line to DNAT is all that should be necessary for DNAT between
different subnets (as long as your FORWARD chain allows it). SNAT is
definitely not required to get it to work. If it doesn't work, likely
you have a bad setup somewhere. HOWTO might help:
http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO-6.html#ss6.2
> Is this possible? Am I asking the wrong question?
You didn't say why you're doing this, or what else your firewall setup
has. If it's for auditing/eavesdropping, there are certainly other
ways to do it. If all three hosts are on the same network, the client
could simply go directly to realserver.
next prev parent reply other threads:[~2005-08-12 18:35 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-10 15:22 Transparent proxy where source IP address remains unchanged -- possible? Adam Rosi-Kessel
2005-08-12 18:35 ` curby . [this message]
2005-08-12 18:52 ` Adam Rosi-Kessel
-- strict thread matches above, loose matches on Subject: below --
2005-08-12 15:21 Gielen, Casper
2005-08-09 1:29 Adam Rosi-Kessel
2005-08-11 5:42 ` Jan Engelhardt
2005-08-11 13:07 ` Adam Rosi-Kessel
2005-08-11 19:17 ` Jan Engelhardt
2005-08-11 20:47 ` Adam Rosi-Kessel
2005-08-12 5:02 ` Grant Taylor
2005-08-12 13:07 ` Adam Rosi-Kessel
2005-08-13 6:40 ` Grant Taylor
2005-08-13 13:12 ` Adam Rosi-Kessel
2005-08-15 6:51 ` Grant Taylor
2005-08-15 14:33 ` Adam Rosi-Kessel
2005-08-15 14:39 ` Taylor, Grant
2005-08-17 21:07 ` Ray Van Dolson
2005-08-19 3:16 ` Adam Rosi-Kessel
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=5d2f379105081211357e8d558a@mail.gmail.com \
--to=curby.public@gmail.com \
--cc=adam@rosi-kessel.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.