OVH Cloud OVH Cloud

Authentification NFS

4 réponses
Avatar
Marwan Burelle
Bonjour,

Je m'intéresse actuellement à bloquer des possibilités de montage NFS
par des clients Linux, mais avec quelques restrictions un peu forte.

Donc, voici la situation :

140 clients diskless qui boot avec PXE sous linux, windows ou dos en
libre accès (salle machine pour des étudiants.)

Les linux boot directement sur une image de kernel fournit pas PXE et
montent leur / via NFS (après il se passe plein d'autres choses, mais ce
n'est pas intéressant pour l'instant.)

Le problème, c'est que les machines sont en libre accès et pour
certaines raisons on ne peut retirer le boot via le lecteur de disquette
ce qui permet à n'importe quel petit rigolo de booté avec un linux
minimal (de toute façon, ils ont probablement la possibilité de booté un
linux via loadlin sous DOS.)

En pratique, même si root est squashé sur la plus part des partitions
NFS, il est toujours possible à quelqu'un de monter les disques
utilisateurs ou certains des disques qui ne sont pas squashés (les
clients diskless ce n'est pas toujours pratique, en particulier on ne
peut pas squashé /etc ... )

Donc, notre objectif serait de trouver un moyen de bloquer les montages
NFS si ceux-ci ne sont pas effectuer par nos noyaux, en sachant, qu'au
boot, avant le premier montage NFS, l'on a que le noyau et rien d'autre.

Donc, si quelqu'un avait une idée ou une piste (actuellement, je
commence à regarder secure RPC, mais visiblement il y a une partie
userland.)

--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
(burelle@lri.fr | Marwan.Burelle@ens.fr)

4 réponses

Avatar
Marwan Burelle
On 13 Feb 2004 08:51:13 GMT
Thierry Herbelot <------%------thierry------% wrote:

NFS ne fait pas de sécurité ! c'est un vieux protocole, du temps où les
ordiétaient gérés par des grands manitous compétents- un piste serait
de faire de l'IPSEC, mais avec du diskless ...


C'est justement le problème ... bon il y a les histoires de secure RPC
également, mais j'ai l'impression qu'il y a besoin de truc en userland ...


A vue de pif, je partirais sur l'idée que toutes les machines diskless
accèdent à toutes les partitions exportées en NFS (avec les
restrictions dues au mapping root(local)->nobody(serveur)) et un
cryptage par *les utilisateurs* des données qu'ils veulent protéger
(avec un montage style cryptographic file system - cfs de FreeBSD +
vnode, qui est automatisable à la connexion de l'utilisateur)


Le problème, c'est que certains appli nous empèche de squashé root sur
/etc (on cherche à toutes les éliminer, ou au moins à se débarasser des
accès sur /etc.)

En fait, hier je suis parti sur une solution de goret ... qui consisterait
à modifier le code nsfroot du kernel des clients, ainsi que le code de
nfsd sur le serveur pour les rendre incompatibles avec des clients nfs
classiques ... c'est crade, mais ça résoudrait pas mal de chose (bon, ce
n'est qu'une façon de repousser, après, il suffit de snifer pour voir ce
qu'il se passe, mais bon ça restreint bien les choses.)

TfH (qui garde le souvenir de montages NFS pirates à partir d'une
machine où j'étais root local pour accèder à des données protégées en
0x500 sur un serveur NFS : il suffit de s'attribuer le bon uid sur la
machine locale pour accéder à n'importe quel fichier sur le serveur)


C'est exactement ce genre de chose que l'on veut empécher ... ;)

--
Marwan Burelle,
http://www.lri.fr/~burelle
( | )
http://www.cduce.org

Avatar
Olivier Cherrier
In article , Marwan Burelle wrote:
A vue de pif, je partirais sur l'idée que toutes les machines diskless
accèdent à toutes les partitions exportées en NFS (avec les
restrictions dues au mapping root(local)->nobody(serveur)) et un
cryptage par *les utilisateurs* des données qu'ils veulent protéger
(avec un montage style cryptographic file system - cfs de FreeBSD +
vnode, qui est automatisable à la connexion de l'utilisateur)


Le problème, c'est que certains appli nous empèche de squashé root sur
/etc (on cherche à toutes les éliminer, ou au moins à se débarasser des
accès sur /etc.)


Si le root local est mappé vers nobody et que tu montes / en ro,
c'est bon. Que veux-tu qu'il arrive ?

En fait, hier je suis parti sur une solution de goret ... qui consisterait
à modifier le code nsfroot du kernel des clients, ainsi que le code de
nfsd sur le serveur pour les rendre incompatibles avec des clients nfs
classiques ... c'est crade, mais ça résoudrait pas mal de chose (bon, ce
n'est qu'une façon de repousser, après, il suffit de snifer pour voir ce
qu'il se passe, mais bon ça restreint bien les choses.)


Marwan, dit le "goret" !! ;-)


Avatar
Ronald
On Thu, 12 Feb 2004 15:55:29 +0000, Marwan Burelle wrote:

Bonjour,

Je m'intéresse actuellement à bloquer des possibilités de montage NFS
par des clients Linux, mais avec quelques restrictions un peu forte.
[...]

Donc, notre objectif serait de trouver un moyen de bloquer les montages
NFS si ceux-ci ne sont pas effectuer par nos noyaux, en sachant, qu'au
boot, avant le premier montage NFS, l'on a que le noyau et rien d'autre.

Donc, si quelqu'un avait une idée ou une piste (actuellement, je commence
à regarder secure RPC, mais visiblement il y a une partie userland.)


C'est peut être une bétise, mais juste passer par un initrd
qui se chargerait de l'authentification ça peut pas le faire?

Avatar
Guillaume Gielly
On 13 Feb 2004 08:51:13 GMT
Thierry Herbelot <------%------thierry------% wrote:


NFS ne fait pas de sécurité ! c'est un vieux protocole, du temps où les
ordiétaient gérés par des grands manitous compétents- un piste serait
de faire de l'IPSEC, mais avec du diskless ...



C'est justement le problème ... bon il y a les histoires de secure RPC
également, mais j'ai l'impression qu'il y a besoin de truc en userland ...


A vue de pif, je partirais sur l'idée que toutes les machines diskless
accèdent à toutes les partitions exportées en NFS (avec les
restrictions dues au mapping root(local)->nobody(serveur)) et un
cryptage par *les utilisateurs* des données qu'ils veulent protéger
(avec un montage style cryptographic file system - cfs de FreeBSD +
vnode, qui est automatisable à la connexion de l'utilisateur)



Le problème, c'est que certains appli nous empèche de squashé root sur
/etc (on cherche à toutes les éliminer, ou au moins à se débarasser des
accès sur /etc.)

En fait, hier je suis parti sur une solution de goret ... qui consisterait
à modifier le code nsfroot du kernel des clients, ainsi que le code de
nfsd sur le serveur pour les rendre incompatibles avec des clients nfs
classiques ... c'est crade, mais ça résoudrait pas mal de chose (bon, ce
n'est qu'une façon de repousser, après, il suffit de snifer pour voir ce
qu'il se passe, mais bon ça restreint bien les choses.)


TfH (qui garde le souvenir de montages NFS pirates à partir d'une
machine où j'étais root local pour accèder à des données protégées en
0x500 sur un serveur NFS : il suffit de s'attribuer le bon uid sur la
machine locale pour accéder à n'importe quel fichier sur le serveur)



C'est exactement ce genre de chose que l'on veut empécher ... ;)



Essayez de voir avec http://www.fs.net/sfswww