Re: NFS using iptables PREROUTING?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux