Montages des partages

  • Auteurs :
    • ChristopheDubreuil
  • Version : 1.0

  • Date de création :

    27/06/2014

  • Modification : Pas de modification

  • Status : En cours d'écriture

  • Relectures :
    Relu par :
    • Non relu
  • Validation :
    Validé par :
    • Non validé
  • Destinataire :

  • Commentaires :

  • Vie du document :
    • 1.0 :

      Version initiale

      27/06/2014


1   test préalable

Afin de vérifier que tout fonctionne correctement, nous allons faire un montage en root d'un partage

mkdir /tmp/test
mount -t cifs "//ctrlr/Mes espaces" /tmp/test -o user=login,password=mdp
ls /tmp/test

2   Configuration du montage automatique

2.1   modification de ssh

Si vous voulez pouvoir tester le montage automatique via ssh, il faut modifier la configuration ssh de votre machine, afin que ssh passe correctement les mots de passe à pam

/etc/ssh/sshd_config

Port    22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes

KeyRegenerationInterval 3600
ServerKeyBits 768



LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

ChallengeResponseAuthentication no


RSAAuthentication yes
PubkeyAuthentication yes


UseDns no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

Banner /etc/issue.net

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

SyslogFacility  AUTH
LogLevel        INFO


IgnoreRhosts yes
HostbasedAuthentication no
#IgnoreUserKnownHosts yes
RhostsRSAAuthentication no
PasswordAuthentication yes

Les lignes essentielles a modifier sont les suivantes

ChallengeResponseAuthentication no
UsePrivilegeSeparation yes

Pensez a redémarrer ssh après la modification

2.2   ajout des clées publiques de ctrlr

Il faut que ctrlr soit connu de la machine, sans quoi le montage automatique via sshfs ne fonctionnera pas.

ssh-keyscan -t rsa,dsa ctrlr >> /etc/ssh/ssh_known_hosts

2.3   ajout du module fuse

Ce module est nécessaire pour pouvoir monter les partage à l'ouverture de session

modprobe fuse
echo "fuse" >> /etc/module # pour qu'il se charge automatiquement

2.4   test via sshfs

2.4.1   contrôle de l'appartenance au groupe fuse

Il faut se connecter avec un usager présent dans le ldap, puis

groups
professeurs cdrom floppy audio video plugdev scanner fuse x2gouser DomainAdmins domainUsers PrinterAdmins profs-cgip pcpatch opsiadmin profs-classe1

Dans la liste affichée, on doit voir apparaître fuse.

Si ce n'est pas le cas, il y a un problème au niveau de la pam_group et /etc/security/group.conf

Note

Le montage via fusefs ne peut pas aboutir sur l'usager ne fait pas parti du groupe "fuse"

2.4.2   Montage manuel via fusefs
2.4.2.1   test 1
mkdir /home/l/login/Mes_espaces_ssh -p
sshfs login@ctrlr: /home/l/login/Mes_espaces_ssh -o nonempty
  • Le point de montage doit être créé.
  • Si le point de montage n'est pas vide, le montage échoue. Il faut préciser "nonempty" pour passer outre cette sécurité
  • Le fait d'avoir ajouter les clees du serveur dans /etc/ssh/ssh_known_hosts permet de s'assurer qu'il n'y aura pas de demande de validation de la clee de la machine distante. Si cela n'est pas fait, et que l'usager ne s'est jamais connecté au serveur distant, pour ajouter sa clée à son ~/.ssh/known_hosts, le montage demande la validation de la clee du serveur. En mode manuel, on peut le faire, mais en mode automatique, cela ne fonctionnera pas.
Après saisie du mot de passe, le partage doit être accessible. Pour le démontage :

Après une tentative de montage, même infructueuse, il faut démonter le partage avant de pouvoir le remonter

fusermount -u /home/l/login/Mes_espaces_ssh

Sinon, il y a affichage du message suivant

fuse: bad mount point `/home/..../Mes_espaces_ssh': Transport endpoint is not connected
2.4.2.2   Test 2

Démonter le partage précédent avant de poursuivre.

mkdir ~/Mes_espaces_ssh
/sbin/mount.fuse sshfs#gip.prof@ctrlr: /home/g/gip.prof/Mes_espaces_ssh -o nonempty,reconnect,follow_symlinks

et contrôler que tout est ok

2.4.2.3   Test 3

Démonter le partage précédent avant de poursuivre.

Il s'agit maintenant de vérifier qu'on est capable de monter le partage en fournissant le mot de passe via la ligne de commande

le programme "sshpass" assure cette fonction.

mkdir ~/Mes_espaces_ssh

echo "mot_de_passe" | sshpass /sbin/mount.fuse sshfs#gip.prof@ctrlr: /home/g/gip.prof/Mes_espaces_ssh -o nonempty,password_stdin,reconnect,follow_symlinks

et contrôler que tout est ok

Signification des paramètres :

noempty : autorise le montage meme si le dossier de montage n'est pas vide password_stdin : sshfs prends le mot de passe transmis via stdin. Nécessaire pour que le mot de passe passé en echo, et transmis à ssh par sshpass soit accepté par sshfs. reconnect : reconnecte automatiquement le partage en cas de deconection follow_symlinks : Le partage distant est constitué de liens symbolique. Le client n'affiches pas les liens, mais les contenus

Si tout est ok, on peut passe à la dernière étape.

Démonter le partage avant de continuer.

2.5   configuration de pam_mount

/etc/security/pam_mount.conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<pam_mount>

<mkmountpoint enable="1" remove="true" />

<fd0ssh>sshpass</fd0ssh>

<volume user="*" fstype="fuse" path="sshfs#%(USER)@ctrlr:" mountpoint="~/Mes_espaces_ssh" ssh="1" options="password_stdin,reconnect,follow_symlinks,nonempty" />

</pam_mount>

Note

on utilise sshpass à la place de fd0ssh ( j'ai pas réussi a faire fonctionner avec fd0ssh )

Il est aussi possible de passer par le montage cifs plutot que par le montage ssh. Il suffit de remplacer la ligne "<volume user..." par

<volume user="*" mountpoint="~/Mes_espaces" path="Mes espaces" server="ctrlr" fstype="cifs" options="iocharset=utf8"/>

Note

si on utilise le montage cifs plutot que le montage sshfs, le dossier est plus complet, et le comportement plus proche de windows. Cependant, il y a un effet de bord, qui fait que les remontages dfs ( les sous-dossiers ), apparaissent comme un second montage, et rendent l'espace de travail confus

3   Sous ubuntu 12.04 ( Merci Nicolas LEBRUN et Stéphane LEBLOND )

apt-get install sshfs sshpass

ssh-keyscan -t rsa,dsa ctrlr >> /etc/ssh/ssh_known_hosts

Dans le pam_mount.conf.xml, les lignes qui vont bien sont

<fusemount>/sbin/mount.fuse %(VOLUME) %(MNTPT) -o %(OPTIONS)</fusemount>
<fuseumount>/bin/fusermount -u %(MNTPT)</fuseumount>
<fd0ssh>sshpass</fd0ssh>
<volume user="*" fstype="fuse" path="sshfs#%(USER)@ctrlr:" mountpoint="~/Mes_espaces" ssh="1" options="password_stdin,reconnect,follow_symlinks,nonempty" />

Et c'est bon, testé sur 3 postes.

Note

Il ne s'agit que de la validation des montages sshfs, et pas de la partie pam.

AdminDocs: linux/Montages des partages (last edited 03/07/2014 14:34:13 by ChristopheDubreuil)