From: "John A. Sullivan III" <john.sullivan@nexusmgmt.com>
To: /dev/rob0 <rob0@gmx.co.uk>
Cc: netfilter@lists.netfilter.org
Subject: Re: DNAT --to-destination: why not hostname?
Date: Wed, 03 Mar 2004 18:39:51 -0500 [thread overview]
Message-ID: <1078357191.3074.11.camel@localhost> (raw)
In-Reply-To: <200403031333.33554.rob0@gmx.co.uk>
On Wed, 2004-03-03 at 14:33, /dev/rob0 wrote:
> The syntax from TFM, iptables(8):
> --to-destination ipaddr[-ipaddr][:port-port]
> Obviously if you are going to use a range of destinations only IP
> addresses would suffice. But why can't this option accept a hostname
> for a single destination?
>
> This would be convenient for scripting, in that you maintain control of
> the firewall through DNS. As it is, to use a hostname I have to use an
> intermediate step to get the IP, like this:
> DEST_IP=`dig +short ${DEST_HOST}.domain.tld.`
> This is also less than ideal because if iptables resolved the name
> itself, it would use the "search domain.tld" out of resolv.conf. For
> dig I have to manually append it. And it's REALLY inconvenient in some
> of my firewall machines where there is no BIND installed. It gets even
> worse in sites which aren't running their own DNS ... AFAIK dig and
> host only use DNS, not /etc/hosts, for resolving.
>
> iptables DOES resolve hostnames used in other parameters, so why not
> here? That should have been a question for the developer list, I guess,
> but I'm not on that one.
>
> But a good question for this list might be: "How have you handled this
> need in iptables scripting?" I have used the dig trick where available
> and hard-coded IP's elsewhere.
I do not know the iptables internals and I do not know why others take a
name and this doesn't but I would strongly caution against using names
on iptables.
I always advise my staff to minimize administrative overhead and that
especially means to use names rather than IP's -- except here. From
what I understand, iptables only resolves the names once -- when it is
loaded. If you change a DNS entry somewhere, iptables will be lost
until it is rebooted.
Even if it resolved on every query, it would still lead to awful
performance. It would need to do an inverse lookup. Inverse lookup
tables are notoriously poorly maintained. If something happens to your
resolver, the timeout on failed inverse queries is much longer than
normal queries and you may hold a packet for 30 to 60 seconds while
trying to resolve the address to a name.
Finally, although I've never tried this, I suppose if someone could hack
your DNS to associate the IP of a high security destination with the
name of a low security destination, they could wiggle right through your
firewall without your firewall ever knowing the difference.
I know using IP addresses adds overhead but, when it comes to access
control and especially on iptables, that's all I use - John
--
John A. Sullivan III
Chief Technology Officer
Nexus Management
+1 207-985-7880
john.sullivan@nexusmgmt.com
---
If you are interested in helping to develop a GPL enterprise class
VPN/Firewall/Security device management console, please visit
http://iscs.sourceforge.net
prev parent reply other threads:[~2004-03-03 23:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-03 19:33 DNAT --to-destination: why not hostname? /dev/rob0
2004-03-03 23:39 ` John A. Sullivan III [this message]
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=1078357191.3074.11.camel@localhost \
--to=john.sullivan@nexusmgmt.com \
--cc=netfilter@lists.netfilter.org \
--cc=rob0@gmx.co.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox