Re: ipfw und nfs

From: Bernd Walter <ticso(at)cicely9.cicely.de>
Date: Sun, 6 Apr 2003 00:43:41 +0200

On Sat, Apr 05, 2003 at 11:51:03PM +0200, Oliver Fromme wrote:
> haribeau(at)gmx.de wrote:
> > da unter RELENG-4 mount_null laut manpage buggy ist, verwende ich
> > nfs-loopback mounts um gemeinsame binaries in mehrere jails zu mounten.
> > Nach aussen habe ich die ports 2049(nfs) und 111(rpc) gesperrt, da man
> > portmap ja leider nicht ausschliesslich ans loopback-interface binden
> > kann.
> > mountd nutzt nun aber zusaetzlich scheinbar beliebige Ports (1022 1023).
>
> Ja, der mountd benutzt halt beliebige freie Ports, die ihm
> vom portmapper bzw. rpcbind zugeteilt werden.

Korigiere mich, aber ist es nicht so, daß der RPC Service sich einen
beliebigen Port beschaft und beim Portmapper nur registriert.

> > Stellen diese mountd-ports ein potentielles Sicherheitsproblem dar, solange
> > 2049 und 111 von aussen nicht erreichbar sind?
>
> 111 ist der portmapper, 2049 ist der eigentliche NFS-Traf-
> fic, und die dynamisch vergebenen Ports werden vom mountd
> verwendet. Wenn ein Angreider Zugriff auf letztere hat,
> mag er wohl keine Dateizugriffe machen, kann aber zumindest
> noch einen DoS-Angriff auf den NFS-Server machen.
>
> Mal eine Gegenfrage: Warum hast Du die Ports überhaupt
> offen? Ich würde erstmal grundsätzliche _alle_ Ports per
> Default sperren. Und dann nur die wenigen freigeben, wo
> man genau weiß, wofür die gut sind und daß man sie braucht
> (22, 80, 113, 443, was auch immer). Dann stellt sich die
> Frage nämlich gar nicht erst, die Du gestellt hast. ;-)

Beim lokalen Filtern kann man die Ports ja per ipfw auf uid 0
von lokal limitieren.
Wenn dann einer darauf zugreifen kann, dann ist er ereits root und
der Angreifer wird am NFS kein Interesse mehr haben.

> Eine Alternative wäre, portmapper, mountd und nfsd selbst
> in einem localhost-Jail laufen zu lassen, so daß sie nur
> auf das loopback-Interface binden können. Du mußt sie dazu
> nur in /etc/rc.conf disablen und dann z.B. in /etc/rc.local
> starten:
>
> /usr/sbin/jail / localhost 127.0.0.1 /usr/sbin/portmap
> /usr/sbin/jail / localhost 127.0.0.1 /sbin/mountd -r
> /usr/sbin/jail / localhost 127.0.0.1 /sbin/nfsd -u -t -n 4
>
> Achtung, ich habe das nicht ausprobiert. Kann gut sein,
> daß die Sache einen Haken hat und ein NFS-Server nicht aus
> einem Jail heraus funktioniert.

Ich denke nicht, daß das funktioniert.
Wenn doch, dann sollte man das IMHO schleunigst abstellen.
Ansonsten könnte ja aus jedem Jail beliebiges exportiert werden.
Zumindest alle Filesysteme innerhalb vom Jail, auch wenn der Jail
nur ein Unterverzeichniss sieht.
Wenn ein Jail Prozess nfssvc(2) nutzen könnte, dann kämen mir ebenfalls
leichte Zweifel an der Implementierung.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 06 Apr 2003 - 00:44:09 CEST

search this site