Linux Netfilter discussions
 help / color / mirror / Atom feed
From: David Liontooth <liontooth@cogweb.net>
To: netfilter@lists.netfilter.org
Subject: Re: NFS using iptables PREROUTING?
Date: Sun, 08 Jul 2007 23:22:28 -0700	[thread overview]
Message-ID: <4691D424.5040109@cogweb.net> (raw)
In-Reply-To: <46918404.7050107@cogweb.net>

David Liontooth wrote:
>
> Is it possible to access an NFS (v.3) server on a private network from a
> machine on a public network? 
It turns out to be a lot simpler than I thought -- no need to worry 
about lockd, portmap, or statd.

On the host A, set the mount port in /etc/default/nfs-kernel-server:

    RPCMOUNTDOPTS="--port 4000"

In the gateway G's /etc/network/if-up.d/00-firewall, forward the NFS and 
the mountd ports

    # NFS: Forward udp on port 2049 to A on the private network
    iptables -t nat -A PREROUTING -p udp -d 128.65.183.178 --dport 9101 
-j DNAT --to 192.168.0.3:2049

    # Forward tcp and udp for mountd on A (port assigned in 
A:/etc/default/nfs-common)
    iptables -t nat -A PREROUTING -p tcp -d 128.65.183.178 --dport 9201 
-j DNAT --to 192.168.0.3:4000
    iptables -t nat -A PREROUTING -p udp -d 128.65.183.178 --dport 9201 
-j DNAT --to 192.168.0.3:4000

In the client B's /etc/hosts, define an alias for the NFS host behind 
the firewall, using the IP address of the gateway:

   128.65.183.178  a.fully.qualified.domain.name   A

And in the client B's /etc/fstab, define the mount, adding the gateway's 
ports that forward NFS and mount to the host:

   A:/db1 /mnt/a1 nfs 
noauto,user,exec,rw,rsize=16k,wsize=16k,hard,intr,port=9101,mountport=9201 
0 0

Works beautifully and transparently. Or does someone spot a potential 
problem?

Cheers,
Dave


      reply	other threads:[~2007-07-09  6:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-09  0:40 NFS using iptables PREROUTING? David Liontooth
2007-07-09  6:22 ` David Liontooth [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=4691D424.5040109@cogweb.net \
    --to=liontooth@cogweb.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox