Re: nfs

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: Guilde
Sujet: Re: nfs
    Bonjour,

Patrick Dupre a écrit :
> Merci,
>
> Mais j'en suis toujours au meme point:
> Voir plus loin


[...]

> Sur client
> Starting Nmap 4.68 ( http://nmap.org ) at 2009-02-01 00:03 GMT
> Interesting ports on 192.168.0.101:
> Not shown: 1708 closed ports
> PORT      STATE SERVICE
> 22/tcp    open  ssh
> 111/tcp   open  rpcbind
> 875/tcp   open  unknown
> 2049/tcp  open  nfs
> 5900/tcp  open  vnc
> 6000/tcp  open  X11
> 10000/tcp open  snet-sensor-mgmt

>
> Nmap done: 1 IP address (1 host up) scanned in 0.477 seconds


    OK, les ports ont l'air d'être correctement accessibles


> J'ai un firewall dont voici les iptables


    Tu aurais dûs préciser des le début que tu avais des firewall.


> sur client:
> :INPUT ACCEPT [0:0]
> :FORWARD ACCEPT [0:0]
> :OUTPUT ACCEPT [0:0]
> -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> -A INPUT -p icmp -j ACCEPT
> -A INPUT -i lo -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
> -A INPUT -j REJECT --reject-with icmp-host-prohibited
> -A FORWARD -j REJECT --reject-with icmp-host-prohibited
>
> sur serveur
> *filter
> :INPUT ACCEPT [0:0]
> :FORWARD ACCEPT [0:0]
> :OUTPUT ACCEPT [0:0]
> -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> -A INPUT -p icmp -j ACCEPT
> -A INPUT -i lo -j ACCEPT
> -A INPUT -p ah -j ACCEPT
> -A INPUT -p esp -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 5353 -d 224.0.0.251
> -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
> -A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
> -A INPUT -j REJECT --reject-with icmp-host-prohibited
> -A FORWARD -j REJECT --reject-with icmp-host-prohibited


    Humm, elles ne sont pas terrible tes règles de filtrage. Est-ce que tu
as conscience que :
- tes ports SSH, portmap, NFS, Samba, CUPS (impression) sont OUVERT VERS
INTERNET ?
- tu n'as aucune trace des paquets refusés par netfilter, donc il n'est
pas facile d'analyser ce que le firewall peu bloquer "par erreur"
- tu utilises des règles par défaut de "ACCEPT", ce qui n'est pas
forcement une bonne idée.


Bref, Ce n'est pas un firewall, mais plutôt un ce passoire ce serveur... :=(

    Je te recommande une lecture de ma documentation de netfilter/iptables
: http://olivieraj.free.fr/fr/linux/information/firewall/


    Et si la machine "serveur" a deux interfaces réseaux (une sur Internet,
et l'autre sur le LAN) :
- déconnecte la connexion Internet
- arrête les firewall des serveurs et clients
- fait tes tests de NFS


> Sur server:
> showmount -e heraclite
> Export list for heraclite:
> /home 192.168.0.100
>
>
> Donc, je ne vois rien d'anormal


    OK, il faut chercher ailleurs ;
- que disent les fichiers de logs, du client et du serveur lorsque tu te
connectes ? Plus précisément ; /var/log/kernel* /var/log/messages*
/var/log/auth* /var/log/daemon*  ?


- si tu ne vois rien, depuis le client, lance un

    tcpdump -i eth0 not tcp port 22 and not udp port 53


cela affiche les trames réseaux, mais en filtrant l'affichage du SSH et
du DNS (tu peux rajouter des règles pour filtrer autre choses, afin de
voir un peu mieux ce qu'il se passe).

Ici, tu devrais voir en premier une connexion sur le 192.168.0.100:111
(portmap), puis après sur le 192.198.0.100:2049 (serveur NFS)

- si ton analyse ne te donne pas plus d'information, il faut regarder ce
que fait le processus portmap. Sur le serveur, et afin de trouver le PID
de portmap :

    ps -edf|grep portmap


Puis, toujours sur le serveur ;

    strace -f -o /tmp/strace_portmap.txt -p PID_DE_PORMAP


A ce moment là, tu lances un "mount" depuis le client. Lorsque la
commande "mount" a échoué, tu reviens sur le serveur, et tu fais un
"ctrl+c" afin que "strace" te rende la main. Le fichier
/tmp/strace_portmap.txt indiquera l'activité de portmap.



> Mais j'ai une question.
> le ssh en root n'est pas permis entre les 2 machines


    SSH n'a rien à voir avec portmap, ou le NFS


> Donc, quand je fais mount 192.168.0.101:/home /mnt/home
> Je pensais que je devrais me logger comme un utilisateur qui a le droit
> de faire un ssh et de donner un password (les connection en anonymous
> sont aussi interdites).
>
> C'est le genre d'information que je doit donner lorsque je monte un
> filesystem cifs ou samba


    Oula...


    NFS et SMB (samba) n'ont rien à voir entre eux. Ce n'est pas parce que
tu te connectes en SSH sur ton serveur que cela te donne le droit de
faire un montage NFS. Les deux protocoles ne sont pas liés du tout, et
NFS marche TRES bien sans SSH.


    Par contre, si tu poses cette question, c'est que tu n'as cherché du
bon coté en ce qui concerne les droits d'accès NFS (qui, je le répète,
n'ont RIEN à voir avec SSH).


    A la relecture de ton 1er mail, j'ai vu ceci :


<extrait>
Sur le serveur, le nfsd tourne:
J'ai mis /etc/exports: /home    192.168.0.100(rw)
</extrait>


Donc, il faut que tu notes que :
- le montage depuis le client de "mount 192.168.0.101:/home /mnt/linux"
ne peut se faire QUE en root (à moins de modifier le /etc/fstab)
- cela ne te donnera pas le droit d'écrire sur "/mnt/linux"

Voir à ce sujet le "man exports"

    Cordialement,


                            Olivier


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!