User Tools

Site Tools


coursieps:20050513

Table of Contents

Suite et fin Samba

Acceder a partir d'un client samba

Comment accéder à un share Windows ou un serveur Samba depuis un poste de travail Linux?

aptitude install smbclient smbfs

smbclient: lister les partages sur les machines distantes smbfs: monter les systèmes de fichiers sur la machine locale

Config smb-common: domaine: deblab.org encryption: oui WINS: non

Lister les shares sur une machine Windows:

smbclient -L 192.168.2.145 -U administrateur
Password:
Domain=[CISCO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        travaux-bbw     Disk
        IPC$            IPC       IPC distant
        cneu            Disk
        nathalie        Disk
        ADMIN$          Disk      Administration        C$              Disk   Partage par dsession request to 192.168.2.145 failed (Called name not present)session request to 192 failed (Called name not present)
Domain=[CISCO] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

Monter le share ADMIN$:

smbmount //192.168.2.145/ADMIN$ /mnt/ -o username=administrateur

On devrait aussi pouvoir le faire avec mount, mais il y a une erreur:

 mount -t smbfs //192.168.2.145:/debshare /mnt/test/ -o username=administrateur
3917: Connection to 192.168.2.145: failed
SMB connection failed

mount n'a pas l'air de prendre l'option -t smbfs…

Comparaison SMB - NFS

On va comparer en lecture et en écrite les performances de samba et de NFS. Ceci se fera à l'aide de la commande time

Samba

Monter la partition sur la machine windows:

smbmount //192.168.2.145/deblab /mnt/ -o username=administrateur
===== Ecriture =====
On va générer un fichier de 64 Mo:

time dd if=/dev/urandom of /mnt/test_file bs=16k count=4096 4096+0 enregistrements lus. 4096+0 enregistrements écrits. 67108864 bytes transferred in 29,624564 seconds (2265311 bytes/sec)

real 0m29.629s user 0m0.025s sys 0m19.338s%

Lecture

time dd if=/mnt/smb/rand_carl of=/dev/null bs=16k
4096+0 enregistrements lus.
4096+0 enregistrements écrits.
67108864 bytes transferred in 11,333032 seconds (5921528 bytes/sec)

real    0m11.360s
user    0m0.011s
sys     0m0.227s

NFS

Monter la partition nfs distante.

mount -t nfs 192.168.2.254:/debshare /mnt/nfs

Ecriture

Créer un fichier sur la partition montée:

time dd if=/dev/urandom of=/mnt/nfs/rand_carl bs=16k count=4096
4096+0 enregistrements lus.
4096+0 enregistrements écrits.
67108864 bytes transferred in 24,811292 seconds (2704771 bytes/sec)

real    0m25.053s
user    0m0.016s
sys     0m21.178s

C'est plus rapide en écriture avec NFS.

Lecture

dd if=/mnt/nfs/rand_carl of=/dev/null bs=16k
4096+0 enregistrements lus.
4096+0 enregistrements écrits.
67108864 bytes transferred in 6,342907 seconds (10580143 bytes/sec)

real    0m6.371s
user    0m0.016s
sys     0m0.111s

Exercice

S'arranger pour qu'au boot il monte un share windows: Ajouter dans /etc/fstab la ligne:

//192.168.2.145/debshare        /mnt/smb        smbfs   defaults,username=administrateur,password=lammur        0       0
Secure shell

SSH: protocole d'authentification + d'encryption

super demon

inetd: démarre et arrête les demons à la demande. xinetd = extended inetd

installer le serveur telnet: telnetd:

aptitude install telnetd

Est-ce qu'il tourne?

root@403-15:/home/linux# ps ax | grep telnet
root@403-15:/home/linux#

Non.

Lorsqu'on initie une session telnet, le super-demon va lancer telnet.

telnet localhost
Trying 127.0.0.1...
Connected to 403-15.deblab.org.
Escape character is '^]'.
Debian GNU/Linux 3.1 403-15.deblab.org
403-15 login:

Dans un autre shell, vérifier ce qui tourne:

ps ax | grep telnet
4166 pts/0    S+     0:00 telnet localhost
4167 ?        S      0:00 in.telnetd: 403-15.deblab.org

La seconde ligne montre que le demon telnetd a été lancé.

Pour sortir de la session telnet:

exit

Configuration de inetd dans le fichier /etc/inet.conf Lors de l'installation de telnetd, un script a activé le serveur telnetd:

telnet          stream  tcp     nowait  telnetd.telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd

Pourquoi ne faut-il pas utiliser [[telnet]]?

Nous allons utiliser l'analyseur de trafic ethereal. Installation:

aptitude install ethereal

tcpdump est un outil équivalent en mode console.

Pour utiliser ethereal avec des droits suffisants, il faut le lancer en temps que root (comme c'est une application graphique, il faut le faire dans un terminal dans une session X Window).

capture → start → interface: eth0 → start

Lancer une connexion telnet vers une autre machine dans une autre console:

telnet 192.168.2.141

Après s'être identifié, arrêter la capture (bouton stop).

Ensuite, classer les paquets par protocole et repérer les paquets de type TELNET. On peut voir dans la fenêtre inférieure le contenu des paquets. On peut repérer un paquet avec “password”. Le mot de passe est envoyé à raison de un caractère par paquet qui suit (le dernier caractère du paquet).

Pour voir la session de manière plus lisible, aller dans le menu Analyze → Follow TCP stream.

Donc, on va utiliser ssh à la place de telnet.

Encryption par clef publique

Un algorithme utilisé utilise une clef (ensemble de caractères) pour encrypter un message.

  • clef symétrique: on utilise la même clef pour encrypter est décrypter
  • clef asymétrique: une clef privée depuis laquelle on fait une clef publique (avec un algorithme non réversible)
    • clef publique: encrypter
    • clef privée: décrypter
    • la clef publique est envoyé à quelqu'un (l'expéditeur), qui encrypte un message et l'envoie au destinataire qui décrypte le message avec sa clef privée

connexion ssh

Pour se connecter, on utilise le client ssh:

ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 9c:55:d5:2b:b8:67:4e:73:8f:57:4f:b5:26:20:5c:85.
Are you sure you want to continue connecting (yes/no)?

La machine locale ne connait la machine distante, elle affiche l'empreinte de la clef du serveur distant. Si on accepte, la clef publique du serveur distant est mémorisée dans /home/user/.ssh/known_hosts:

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.

Par défaut, ssh lance une demande de connexion avec l'utilisateur courant. Pour changer:

ssh -l user machine

ou

ssh user@machine

Où machine est le nom (pour autant qu'on puis la résoudre avec un DNS) ou l'IP de la machine distante (qui tourne un serveur ssh).

coursieps/20050513.txt · Last modified: 2013/01/30 17:50 (external edit)