• Aucun résultat trouvé

SSH: Secure Shell Login

N/A
N/A
Protected

Academic year: 2022

Partager "SSH: Secure Shell Login"

Copied!
20
0
0

Texte intégral

(1)

SSH: Secure Shell Login

dérnières modifications : 10 nov. 2003 Stéphane Salès

s.sales@tuxz.org

Table des matières

1.Introduction...2

2.Pourquoi remplacer TELNET, FTP, «R*»...2

2.1.Exemples de sniff depuis la machine C de différentes communications...2

2.1.1.Communications non chiffrées...2

Récupération de mail via POP...2

Affichage du fichier /etc/shadow par TELNET : ...3

2.1.2.Communications chiffrées:...4

Récupération de mail par IMAP via un tunnel SSH:...4

3.Différentes versions du protocole SSH : ...6

4.Fonctionnalités : ...7

5. Point de vue de la loi : ...8

6. Chiffrement et authentification: ...8

6.1.Chiffrement: ...8

6.2.Authentification ...8

7.Résumé: ...9

chiffrement: ...9

authentification: ...9

8.Pratique ...10

8.1.Paire clé privée/clé publique : ...10

8.2.Configuration client/serveur ssh: ...10

8.3.Les commandes scp/sftp : ...13

9.sources : ...14

(2)

1.Introduction

SSH ou Secure Shell est un protocole voué à, être utilisé en lieu et place du protocole TELNET ainsi qu'à, éradiquer l'utilisation des commandes «R*» telle que RLOGIN,RCP,RSH .

2.Pourquoi remplacer TELNET, FTP, «R*»

Parceque TELNET,FTP et les commandes «R*» communiquent en «clair»(voir 3.1), c'est à dire que toutes les communications entre le serveur et le client ne sont pas chiffrées et peuvent donc etre lus par n'importe quel curieux s'en donnant un peu la peine(notons qu'un grand nombre de protocoles utilisés courament en font de meme : POP, SMTP, HTTP ...).

Imaginons que depuis une machine A et via TELNET j'affiche le fichier contenant les mots de passe des utilisateurs de ma machine B : Si une personne se place sur la machine C et arrive à «sniffer» la communication il pourra lire le fichier exactement comme moi .

2.1.Exemples de sniff depuis la machine C de différentes communications

2.1.1.Communications non chiffrées

Récupération de mail via POP

2 3 : 0 4 : 5 7 . 8 8 2 0 8 4 1 9 2 . 1 6 8 . 1 . 3 2 . 1 2 1 0 >

2 1 3 . 2 2 8 . 0 . 1 6 5 . p o p 3 : P 1 : 1 6 ( 1 5 ) a c k 4 0 w i n 5 8 4 0

< n o p , n o p , t i m e s t a m p 1 1 2 0 8 8 4 1 2 3 2 4 7 9 1 7 > ( D F )

(3)

0 x 0 0 0 0 4 5 0 0 0 0 4 3 2 7 6 e 4 0 0 0 4 0 0 6 7 a f 5 c 0 a 8 0 1 2 0 E . . C ' n @ . @ . z . . . . .

0 x 0 0 1 0 c 0 a 8 0 1 f e 0 4 b 7 0 0 5 0 b 3 5 a 7 b d 2 b 3 7 c 5 8 3 6 . . . n . . = . . . . .

0 x 0 0 2 0 . . . t

0 x 0 0 3 0 0 7 5 8 9 d 2 d 5 5 5 3 4 5 5 2 2 0 6 c 6 9 6 e 7 5 7 3 7 1 7 5 . X . -

USER.login

0 x 0 0 4 0 6 5 0 d 0 a

2 3 : 0 4 : 5 7 . 9 5 3 9 9 4 1 9 2 . 1 6 8 . 1 . 3 2 . 1 2 1 0 >

2 1 3 . 2 2 8 . 0 . 1 6 5 . p o p 3 : P 1 6 : 3 1 ( 1 5 ) a c k 4 6 w i n 5 8 4 0

< n o p , n o p , t i m e s t a m p 1 1 2 0 8 9 1 1 2 3 2 4 7 9 2 4 > ( D F )

0 x 0 0 0 0 4 5 0 0 0 0 4 3 2 7 6 e 4 0 0 0 4 0 0 6 7 a f 5 c 0 a 8 0 1 2 0 E . . C ' o @ . @ . z . . . . .

0 x 0 0 1 0 6 f 6 4 7 9 2 e 3 1 0 d 0 a 4 1 6 3 6 3 6 5 7 0 7 4 3 a 2 0 7 4 . . . n . . = . . . . .

0 x 0 0 2 0 7 4 6 5 2 c 2 0 6 3 6 f 6 d 7 0 7 2 6 5 7 3 7 3 3 b 7 1 3 d 3 0 . . . .

0 x 0 0 3 0 4 6 9 6 f 6 e 3 a 2 0 6 b 6 5 6 5 7 0 2 d 6 1 6 c 6 9 7 6 6 5 . X . 4

PASS.motdepasse

0 x 0 0 4 0 0 d 0 a 0 a . . .

Ici on voit en clair le login et le mot de passe de l'utilisateur

Affichage du fichier /etc/shadow par TELNET :

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 4 5 1 0 . . . . . . E .

0 0 1 0 0 0 4 7 7 3 4 e 4 0 0 0 4 0 0 6 4 3 c 2 c 0 a 8 0 1 2 0 c 0 a 8 . G s N @ . @ . C Â À ¨ . À ¨

0 0 2 0 0 1 2 0 0 0 1 7 1 1 3 5 d 7 a 4 b 3 5 b d 8 7 9 a 2 2 a 8 0 1 8 . . . . 5 × ¤ ³ [ Ø y ¢ * . .

0 0 3 0 7 f f f 0 5 c f 0 0 0 0 0 1 0 1 0 8 0 a 0 0 f 2 e d f 2 0 0 f 2 . ÿ . Ï . . . . . . . ò í ò . ò

0 0 4 0 e d f 2 7 3 7 5 6 4 6 f 2 0 7 6 6 9 2 0 2 f 6 5 7 4 6 3 2 f 7 3 í ò

c a t / e t c / s

0 0 5 0 6 8 6 1 6 4 6 f 7 7 h a d o w

0 3 0 0 3 a 3 a 3 a 0 d 0 a 6 4 6 5 6 d 6 f 3 a 2 4 3 1 2 4 4 9 3 6 5 1 : : : . .

d e m o : $ 1 $ I 6 Q

0 3 1 0 2 e 6 7 7 3 6 1 3 0 2 4 5 5 3 2 7 a 7 9 6 a 7 1 7 7 6 a

(4)

5 0 5 6 .

g s a 0 $ U 2 z y j q w j P V

0 3 2 0 6 f 4 4 4 7 6 b 4 8 4 8 4 d 7 4 7 3 7 a 4 4 3 0 3 a 3 1 3 2 3 1

o D G k H H M t s z D 0 : 1 2 1

0 3 3 0 3 3 3 4 3 a 3 0 3 a 3 9 3 9 3 9 3 9 3 9 3 a 3 7 3 a 3 a 3 a 0 d

3 4 : 0 : 9 9 9 9 9 : 7 : : : .

Ici le fichier /etc/shadow est chiffré en md5 et n'est donc pas lisible directement, mais rien ne dit qu'en y passant du temps il ne serait pas possible de découvrir certain mot de passe. Imaginez ce que cela aurait donné si on avait affiché un fichier contenant son code de carte bleue par exemple.

2.1.2.Communications chiffrées:

Récupération de mail par IMAP via un tunnel SSH:

2 2 : 5 6 : 2 3 . 7 0 9 1 0 9 1 9 2 . 1 6 8 . 1 . 3 2 . 1 1 9 4 >

1 9 2 . 1 6 8 . 1 . 2 5 4 . i m a p s : P 1 8 4 1 1 6 4 8 8 4 : 1 8 4 1 1 6 4 9 5 8 ( 7 4 ) a c k 1 8 3 6 0 2 0 0 2 1 w i n 2 2 5 2 5 < n o p , n o p , t i m e s t a m p

1 0 6 9 4 6 6 3 2 1 2 5 9 0 0 6 > ( D F )

0 x 0 0 0 0 4 5 0 0 0 0 7 e 3 3 7 c 4 0 0 0 4 0 0 6 8 2 8 f c 0 a 8 0 1 2 0 E . . ~ 3 | @ . @ . . . .

0 x 0 0 1 0 c 0 a 8 0 1 f e 0 4 a a 0 3 e 1 6 d b d f 2 5 4 6 d 6 f 7 1 3 5 . . . m . . T m o q 5

0 x 0 0 2 0 8 0 1 8 5 7 f d 5 b e 9 0 0 0 0 0 1 0 1 0 8 0 a 0 0 1 0 5 1 9 a . . W . [ . . . Q .

0 x 0 0 3 0 1 3 2 6 0 5 f e 1 7 0 3 0 1 0 0 1 8 f b 7 3 3 2 7 c c 5 1 5 5 b . & . . . s 2 | . . [

0 x 0 0 4 0 3 8 5 4 6 3 1 f 8 d d 7 b 8 e 9 9 d 3 3 a 1 3 7 1 c 0 9 2 f 0 d 8 T c . . . 3 . 7 . . / .

0 x 0 0 5 0 e 5 1 7 0 3 0 1 0 0 2 8 3 1 c 1 2 0 2 e 8 a 0 f 3 5 e f c 2 8 8 . . . ( 1 . . . 5 . . .

(5)

0 x 0 0 6 0 5 e 8 5 8 8 f 4 c 4 b d 5 8 d f 2 6 e 7 3 7 4 d 9 4 e d e 5 a 6

^ . . . X . & . 7 M . . . .

0 x 0 0 7 0 f b 0 3 6 d 9 5 6 2 b f b f e 4 6 8 7 3 3 c c 9 1 e e c . . m . b . . . h s < . . .

2 2 : 5 6 : 2 3 . 7 1 1 8 0 8 1 9 2 . 1 6 8 . 1 . 2 5 4 . i m a p s >

1 9 2 . 1 6 8 . 1 . 3 2 . 1 1 9 4 : P 1 : 2 4 6 ( 2 4 5 ) a c k 7 4 w i n 6 4 3 2

< n o p , n o p , t i m e s t a m p 3 2 1 2 5 9 8 1 9 1 0 6 9 4 6 6 > ( D F )

0 x 0 0 0 0 4 5 0 0 0 1 2 9 8 a 2 b 4 0 0 0 4 0 0 6 2 b 3 5 c 0 a 8 0 1 f e E . . ) . + @ . @ . + 5 . . . .

0 x 0 0 1 0 c 0 a 8 0 1 2 0 0 3 e 1 0 4 a a 6 d 6 f 7 1 3 5 6 d b d f 2 9 e . . . m o q 5 m . . .

0 x 0 0 2 0 8 0 1 8 1 9 2 0 a a f 5 0 0 0 0 0 1 0 1 0 8 0 a 1 3 2 6 0 9 2 b . . . & . +

0 x 0 0 3 0 0 0 1 0 5 1 9 a 1 7 0 3 0 1 0 0 f 0 9 2 4 c c 0 d 5 c 3 5 8 9 a . . Q . . . L . . . X .

0 x 0 0 4 0 2 5 0 d 7 2 3 e 0 d f 0 4 d 5 a 6 5 d 5 f 8 d 1 8 1 3 a 4 a a 5

% . r > . . M Z e . . . . : J .

0 x 0 0 5 0 9 4 c 6 d 1 1 d 3 d 1 5 0 9 6 b 1 a d 6 6 6 7 f 2 5 7 1 5 7 9 5 . . . . = . . k . . f . % q W .

0 x 0 0 6 0 c 6 a 8 a a 9 e 5 0 6 5 f b a 7 f f 3 d e 4 7 d 6 1 d 7 e 8 6 c . . . . P e . . . = .a . . l

0 x 0 0 7 0 5 1 8 0 3 a a d a 6 1 3 6 c f a 1 3 e 6 3 0 3 6 0 4 5 2 7 4 6 a Q . : . . . l . . . 0 6 . R t j

0 x 0 0 8 0 2 a 8 9 9 a 9 d 9 c 1 f 7 c 7 3 e e f 9 d 8 e c 5 8 a 6 e c 5 d

* . . . | s . . . . X . . ]

0 x 0 0 9 0 6 d 6 0 5 5 e e 7 a 0 0 a 8 8 c b 1 2 d 1 7 2 4 9 e f 5 7 2 9 5 m ` U . z . . . . - . $ . . r .

0 x 0 0 a 0 6 e 7 4 6 e 2 7 7 7 3 c 2 4 b e 9 c 1 2 7 0 a 1 9 2 a 2 e 6 1 2 n t n ' w < $ . . . p . . . . .

0 x 0 0 b 0 d 5 6 3 2 3 b a 7 0 a 7 8 8 c 8 8 0 8 4 0 4 6 7 7 6 d 6 7 2 6 2 . c # . p . . . g v . r b

0 x 0 0 c 0 7 a 3 1 a 0 0 b 4 a 3 a 5 5 b f 0 6 7 d f 7 a 1 3 3 8 b 9 0 6 d z 1 . . J : U . .. . 3 . . m

(6)

On s'aperçoit ici que les communications entre A et B ne sont pas lisibles par C, ni d'ailleurs par n'importe quelle entité ne se trouvant pas à un des 2 bouts du tunnel:

Il est donc fortement conseillé d'utiliser SSH notamment lorsque les communications peuvent faire transiter des informations qui ne doivent pas être lues par un tiers et d'autant plus quand elles sont voués à "traverser" un réseau publique tel qu'Internet.

3.Différentes versions du protocole SSH :

Il existe 2 versions majeures de SSH, la version 1 qui se décompose en 2 versions mineures 1.5 et 1.99, la version 2 qui est une refonte totale du protocole SSH. Quand il le sera possible nous utiliserons uniquement la version 2 car elle est plus sécurisée, le système de contrôle d'intégrité des données de SSH1, un simple CRC, étant dépassé est remplacé par un algorithme nommé HMAC dans SSH2. (Du coté client comme du coté serveur, il est possible d'utiliser les 2 protocoles en spécifiant un ordre de préférence).

(7)

OpenSSH :

4.Fonctionnalités :

OpenSSH est une implémentation Libre[1] d'SSH(distribué sous une licence BSD[2])qui implémente les fonctions suivantes :

Chiffrement fort(3DES, BLOWFISH)

Transfert X11(X11 forwarding,transférez l'affichage d'un serveur X situé sur une machine A vers une machine B à travers un tunnel SSH)

Transfert de port(port forwarding, "transférez un port" d'une machine vers une autre via un tunnel SSH)

Authentification forte(clé publique, mot de passe à usage unique avec s/key, Kerberos)

A partir de la version 2.5 un démon SFTPD supporte totalement SFTPD(la

(8)

version sécurisée de FTP).

Compression des données(bien utile en cas de connexion lente, via un modem par exemple)

5. Point de vue de la loi :

OpenSSH peut utilisé des algorithmes de chiffrement dit "fort", par le biais d'OpenSSL, qui n'était pas explicitement autorisée jusqu'au "15 juillet 2002" où grâce à l'élaboration du dossier[3] pour la DCSSI faite par Loic Dachary, l'utilisation d'OpenSSL est permise pour les versions 0.9.6d et suivantes.

6. Chiffrement et authentification:

6.1.Chiffrement:

Le choix de la méthode de chiffrement peut avoir une influence notable sur : la sécurité des communications : certaines méthodes sont considérés comme plus sur que d'autre

la vitesse de transmission : certaines méthodes réclament un temps supérieur de chiffrement par rapport à d'autres

Les différentes méthodes de chiffrement utilisable par OpenSSH sont :

DES: Data Encryption Standard basé sur des permutations de blocs de 64 bits, il n'est utilisable qu'avec la version 1 de SSH car il n'est plus considéré comme sur de nos jours.

3DES: basé sur le chiffrement DES, il effectue 3 permutations quand le DES n'en effectue qu'une. Il est utilisable par les 2 versions de SSH.

BLOWFISH: méthode utilisant des blocs de 64 bits. Cette méthode est considérée comme sur, plus rapide que 3DES et est utilisable par les 2 versions de SSH

La version 2 de SSH accepte d'autres algorithmes tel que AES, ARCFOUR et CAST.(SSH 1 proposait aussi l'algorithme IDEA mais celui ci à été enlevé car d'une part un brevet existe sur cet algorithme dans certains pays et d'autre part une faille non corrigée à été publiée sur ce dernier mi-janvier 2001 [4])

6.2.Authentification

Pour considérer qu'une communication est sécurisée, il va falloir s'assurer que les 2 machines sont bien celles qui veulent communiquer et qu'une autre

(9)

machine ne pourra pas se faire passer pour l'une ou l'autre.

Pour cela SSH met à disposition plusieurs méthodes :

mot de passe : le client s'authentifie via un login et un mot de passe

paire clé privée/clé publique : le client et le serveur échange leur paire de clés ce qui permet de certifier, qui est le client et qui est le serveur. La version 1 de SSH permet l'utilisation de clés RSA uniquement alors que la version 2 permet en plus l'utilisation de clés DSA.

one-time-password : utilisation d'un mot de passe à usage unique via s/key La version 1 de SSH permet aussi l'authentification basé sur Kerberos.

À Ces 2 méthodes permettant d'authentifier l'utilisateur ont peut ajouter une méthode d'authentification des machines, basé sur le même principe d'échange de clés RSA/DSA, appelé HostBased.

7.Résumé:

chiffrement:

Cipher SSH1 SSH2

DES oui non

3DES oui oui

IDEA oui non

Blowfish oui oui

Arcfour non oui

Cast128 non oui

AES128 non oui

AES192 non oui

AES256 non oui

authentification:

Cipher SSH1 SSH2

RSA oui oui

DSA non oui

(10)

8.Pratique

8.1.Paire clé privée/clé publique :

Génération de la paire de clés

d e m o @ h o t e _ l o c a l : ~ $ s s h - k e y g e n - t d s a G e n e r a t i n g p u b l i c / p r i v a t e d s a k e y p a i r . E n t e r f i l e i n w h i c h t o s a v e t h e k e y

( / h o m e / d e m o / . s s h / i d _ d s a ) : d e m o _ d s a

E n t e r p a s s p h r a s e ( e m p t y f o r n o p a s s p h r a s e ) : E n t e r s a m e p a s s p h r a s e a g a i n :

Y o u r i d e n t i f i c a t i o n h a s b e e n s a v e d i n / h o m e / d e m o / . s s h / d e m o _ d s a .

Y o u r p u b l i c k e y h a s b e e n s a v e d i n / h o m e / d e m o / . s s h / d e m o _ d s a . p u b .

T h e k e y f i n g e r p r i n t i s :

x x : x x : x x : x x : x x : x x : x x : 6 c : d 7 : 3 6 : 6 c : 1 7 : 8 3 : a 3 : 7 7 : b b d e m o @ h o t e _ l o c a l

La clé privée doit n'être lisible/visible que par le propriétaire d e m o @ h o t e _ l o c a l : ~ $ l s - l . s s h /

t o t a l 8

- r w - - - 1 d e m o d e m o 6 6 8 J a n 2 8 1 6 : 1 6 i d _ d s a

- r w - r - - r - - 1 d e m o d e m o 6 0 7 J a n 2 8 1 6 : 1 6 i d _ d s a . p u b

Sur l'hôte distant on autorise le user demo à se connecter : d e m o @ h o t e _ d i s t a n t : ~ $ c a t d e m o _ d s a . p u b > >

~ / . s s h / d e m o _ a u t h o r i z e d _ k e y s 2

8.2.Configuration client/serveur ssh:

r o o t @ h o t e _ d i s t a n t : ~ # v i / e t c / s s h / s s h d _ c o n f i g

# P a c k a g e g e n e r a t e d c o n f i g u r a t i o n f i l e

# S e e t h e s s h d ( 8 ) m a n p a g e f o r d e f a i l s

# W h a t p o r t s , I P s a n d p r o t o c o l s w e l i s t e n f o r P o r t 2 2

# U s e t h e s e o p t i o n s t o r e s t r i c t w h i c h i n t e r f a c e s / p r o t o c o l s s s h d w i l l b i n d t o

# L i s t e n A d d r e s s : :

(11)

P r o t o c o l 2 , 1

# H o s t K e y s f o r p r o t o c o l v e r s i o n 2 H o s t K e y / e t c / s s h / s s h _ h o s t _ d s a _ k e y H o s t K e y / e t c / s s h / s s h _ h o s t _ r s a _ k e y

# P r i v i l e g e S e p a r a t i o n i s t u r n e d o n f o r s e c u r i t y U s e P r i v i l e g e S e p a r a t i o n y e s

# . . . b u t b r e a k s P a m a u t h v i a k b d i n t , s o w e h a v e t o t u r n i t o f f

# U s e P A M a u t h e n t i c a t i o n v i a k e y b o a r d - i n t e r a c t i v e s o P A M m o d u l e s c a n

# p r o p e r l y i n t e r f a c e w i t h t h e u s e r ( o f f d u e t o P r i v S e p )

P A M A u t h e n t i c a t i o n V i a K b d I n t n o

# L i f e t i m e a n d s i z e o f e p h e m e r a l v e r s i o n 1 s e r v e r k e y

K e y R e g e n e r a t i o n I n t e r v a l 3 6 0 0 S e r v e r K e y B i t s 7 6 8

# L o g g i n g

S y s l o g F a c i l i t y A U T H L o g L e v e l I N F O

# A u t h e n t i c a t i o n : L o g i n G r a c e T i m e 6 0 0

A l l o w U s e r s d e m o

D e n y U s e r s r o o t f t p s s h n o b o d y

# n o r m a l e m e n t o n a u t o r i s e J A M A I S l e r o o t à s e c o n n e c t e r à u n d é m o n

P e r m i t R o o t L o g i n n o S t r i c t M o d e s n o

R S A A u t h e n t i c a t i o n n o P u b k e y A u t h e n t i c a t i o n y e s

# % h v a r i a b l e r e p r é s e n t a n t l e h o m e d u u s e r

A u t h o r i z e d K e y s F i l e % h / . s s h / a u t h o r i z e d _ k e y s 2 A u t h o r i z e d K e y s F i l e %

h / . s s h / d e m o _ a u t h o r i z e d _ k e y s 2

# r h o s t s a u t h e n t i c a t i o n s h o u l d n o t b e u s e d R h o s t s A u t h e n t i c a t i o n n o

# D o n ' t r e a d t h e u s e r ' s ~ / . r h o s t s a n d ~ / . s h o s t s f i l e s

I g n o r e R h o s t s y e s

(12)

# F o r t h i s t o w o r k y o u w i l l a l s o n e e d h o s t k e y s i n / e t c / s s h _ k n o w n _ h o s t s

R h o s t s R S A A u t h e n t i c a t i o n n o

# s i m i l a r f o r p r o t o c o l v e r s i o n 2 H o s t b a s e d A u t h e n t i c a t i o n y e s

# U n c o m m e n t i f y o u d o n ' t t r u s t ~ / . s s h / k n o w n _ h o s t s f o r R h o s t s R S A A u t h e n t i c a t i o n

I g n o r e U s e r K n o w n H o s t s y e s

# T o e n a b l e e m p t y p a s s w o r d s , c h a n g e t o y e s ( N O T R E C O M M E N D E D )

P e r m i t E m p t y P a s s w o r d s n o

# U n c o m m e n t t o d i s a b l e s / k e y p a s s w o r d s

# C h a l l e n g e R e s p o n s e A u t h e n t i c a t i o n n o

# T o d i s a b l e t u n n e l e d c l e a r t e x t p a s s w o r d s , c h a n g e t o n o h e r e !

P a s s w o r d A u t h e n t i c a t i o n n o

# T o c h a n g e K e r b e r o s o p t i o n s

# K e r b e r o s A u t h e n t i c a t i o n n o

# K e r b e r o s O r L o c a l P a s s w d y e s

# A F S T o k e n P a s s i n g n o

# K e r b e r o s T i c k e t C l e a n u p n o

# K e r b e r o s T G T P a s s i n g d o e s o n l y w o r k w i t h t h e A F S k a s e r v e r

# K e r b e r o s T g t P a s s i n g y e s

X 1 1 F o r w a r d i n g n o X 1 1 D i s p l a y O f f s e t 1 0 P r i n t M o t d n o

# P r i n t L a s t L o g n o K e e p A l i v e y e s

# U s e L o g i n n o

# M a x S t a r t u p s 1 0 : 3 0 : 6 0

# B a n n e r / e t c / i s s u e . n e t

# R e v e r s e M a p p i n g C h e c k y e s

S u b s y s t e m s f t p / u s r / l i b / s f t p - s e r v e r

La configuration globale du client ssh est situé dans le fichier / etc/ssh/ssh_config, la configuration par utilisateur est elle dans le fichier

~/.ssh/config (on peut tout redéfinir ,à la volée en ligne de commande ).

(13)

L'ordre de prise en compte des paramètres coté client est le suivant :

options par défaut -> /etc/ssh/ssh_config -> ~/.ssh/config -> paramètres passés en ligne de commande

Si par exemple ForwardX11 est à no dans /etc/ssh/ssh_config ET dans

~/.ssh/config mais qu'on passe -X en ligne de commande à la connexion(et que le serveur accepte le X11forwarding) on pourra forwarder le X.

8.3.Les commandes scp/sftp :

Ces commandes permettent de tranférez des fichiers.

Par exemple :

d e m o @ h o t e _ l o c a l $ s c p /

r e p e r t o i r e / f i c h i e r _ a _ t r a n s f e r e z h o t e _ d i s t a n t : / h o m e / d e m o 2 /

Cette commande tranfère le fichier fichier_a_transferez vers l'hôte distant et dans le répertoire home de l'utilisateur demo2(bien entendu si l'utilisateur demo n'a pas les droit d'écriture dans le répertoire de destination le transfert ne fonctionnera pas)

Notons qu'il est possible de s'identifier comme étant un autre utilisateur auprès de l'hôte distant grâce au paramètre -l utilisateur ou grâce à la notation utilisateur@hote_distant :

d e m o @ h o t e _ l o c a l $ s c p - l d e m o 2 / r e p e r t o i r e / f i c h i e r _ a _ t r a n s f e r e z h o t e _ d i s t a n t : / h o m e / d e m o 2 /

d e m o @ h o t e _ l o c a l $ s c p /

r e p e r t o i r e / f i c h i e r _ a _ t r a n s f e r e z d e m o 2 @ h o t e _ d i s t a n t : / h o m e / d e m o 2 /

Si mon compte est authorisé (par mot de passe, par échange de clés etc) On aurait pu aussi tranferez le répertoire entier ainsi :

d e m o @ h o t e _ l o c a l $ s c p - r / r e p e r t o i r e / h o t e _ d i s t a n t : / h o m e / d e m o 2 /

La commande sftp lance le client sftp qui permet de se connecter au serveur sftpd distant(l'utilisation est ensuite très semblable à celle d'un client ftp classique).

Ci dessous la liste des commandes supportées par ce dernier s f t p > h e l p

A v a i l a b l e c o m m a n d s :

c d p a t h C h a n g e r e m o t e d i r e c t o r y t o ' p a t h '

l c d p a t h C h a n g e l o c a l

(14)

d i r e c t o r y t o ' p a t h '

c h g r p g r p p a t h C h a n g e g r o u p o f f i l e ' p a t h ' t o ' g r p '

c h m o d m o d e p a t h C h a n g e p e r m i s s i o n s o f f i l e ' p a t h ' t o ' m o d e '

c h o w n o w n p a t h C h a n g e o w n e r o f f i l e ' p a t h ' t o ' o w n '

h e l p D i s p l a y t h i s h e l p t e x t

g e t r e m o t e - p a t h [ l o c a l - p a t h ] D o w n l o a d f i l e l l s [ l s - o p t i o n s [ p a t h ] ] D i s p l a y l o c a l d i r e c t o r y l i s t i n g

l n o l d p a t h n e w p a t h S y m l i n k r e m o t e f i l e l m k d i r p a t h C r e a t e l o c a l

d i r e c t o r y

l p w d P r i n t l o c a l w o r k i n g d i r e c t o r y

l s [ p a t h ] D i s p l a y r e m o t e d i r e c t o r y l i s t i n g

l u m a s k u m a s k S e t l o c a l u m a s k t o ' u m a s k '

m k d i r p a t h C r e a t e r e m o t e d i r e c t o r y

p u t l o c a l - p a t h [ r e m o t e - p a t h ] U p l o a d f i l e p w d D i s p l a y r e m o t e w o r k i n g d i r e c t o r y

e x i t Q u i t s f t p q u i t Q u i t s f t p

r e n a m e o l d p a t h n e w p a t h R e n a m e r e m o t e f i l e r m d i r p a t h R e m o v e r e m o t e

d i r e c t o r y

r m p a t h D e l e t e r e m o t e f i l e s y m l i n k o l d p a t h n e w p a t h S y m l i n k r e m o t e f i l e v e r s i o n S h o w S F T P v e r s i o n

! c o m m a n d E x e c u t e ' c o m m a n d ' i n l o c a l s h e l l

! E s c a p e t o l o c a l s h e l l

? S y n o n y m f o r h e l p

9.sources :

http://openssh.org

(15)

http://openssl.org

http://www.ietf.org/ids.by.wg/secsh.Html

[1] http://www.gnu.org/philosophy/free-sw.fr.html

[2] http://www.openbsd.org/cgi-

bin/cvsweb/src/usr.bin/ssh/LICENCE?rev=HEAD [3] http://france.fsfeurope.org/dcssi/dcssi.fr.html [4] http://www.kb.cert.org/vuls/id/315308

(16)

TP :

Pour répondre aux questions ci-dessous vous fournirez des copié/collé de terminaux, d'écrans, de sniff, de fichiers de configuration ...(toute information vous semblant pertinente).

Installer les outils nécessaires à la mise en place de communication SSH :

$ a p t - g e t i n s t a l l s s h Installer ngrep/tcpdump :

$ a p t - g e t i n s t a l l n g r e p t c p d u m p

1 Configurer votre serveur SSH pour qu'on puisse s'y connecter via une authentification par mot de passe et tester.

2 Lancer ngrep, ouvrer une connexion FTP, ou pop par exemple, qu'observer vous ?

3 Lancer ngrep, ouvrer une connexion SSH et vérifier que la communication est bien chiffrée.

4 Faites de même avec une authentification par échange de clés dsa.

5 Faites écouter votre serveur sur le port 2222 et connecter vous y.

6 Trouver le moyen de vous y connecter sans avoir à préciser le port en ligne de commande.

7 Faites de même mais pour que cette fois le serveur ssh n'écoute que sur l'interface lo, pour vérifier vous lancerez les commandes :

ssh localhost

ssh nom_de_machine

8 Activer la fonctionnalité de transfert de l'affichage(transfert du serveur x).

9 Connecter vous sur une machine distante et tester cette fonctionnalité.

10 Donnez la syntaxe pour transférer le fichier / home/crespa/essai0.scp de votre machine vers le fichier / home/crespa/essai01.scp d'une machine distante via scp.

11 Donnez la syntaxe pour transférer un fichier / home/crespa/essai1.scp d'une machine distante vers la sienne dans le 'home' de l'utilisateur crespa via scp.

12 Donnez la syntaxe pour transférer le fichier /

(17)

home/crespa/essai0.scp de votre machine vers le fichier / home/demo-xxx/essai01.scp d'une machine distante via scp.

13 Donnez la syntaxe pour transférer un fichier /home/demo- xxx/essai1.scp d'une machine distante vers la sienne dans le 'home' de l'utilisateur demo via scp.

14 Faites de même avec sftp.

15 Tester un transfert via sftp ou scp en testant les différents algorithmes, vérifier grâce à la commande time quels sont les algorithmes les plus rapides(faites des tests avec différentes taille de fichier).

16 Forwarder le port local 2223 vers le port 22 d'une machine distante, et maintenant lancer une connexion SSH vers le port local 2223 : Qu'observez vous ?

17 Donnez la commande à lancer sur votre machine pour que la machine distante se connecte à votre port serveur SSH, en se connectant à son port local 2224

Soit une machine A et une machine B, un user demoA(sur la machine A) veut se connecter sur la machine B via le compte demoB les comptes sur les 2 machines viennent d'être "fraîchement" crées:

On suppose que le client ssh est installé sur la machine A et que le serveur ssh est installé sur la machine B ...

configuration coté serveur :

r o o t @ h o t e _ d i s t a n t : ~ # v i / e t c / s s h / s s h d _ c o n f i g

# P a c k a g e g e n e r a t e d c o n f i g u r a t i o n f i l e

# S e e t h e s s h d ( 8 ) m a n p a g e f o r d e f a i l s

# W h a t p o r t s , I P s a n d p r o t o c o l s w e l i s t e n f o r

# P o r t 2 2

# U s e t h e s e o p t i o n s t o r e s t r i c t w h i c h i n t e r f a c e s / p r o t o c o l s s s h d w i l l b i n d t o

# L i s t e n A d d r e s s : :

L i s t e n A d d r e s s l o c a l h o s t : 2 2 2 2 P r o t o c o l 2 , 1

# H o s t K e y s f o r p r o t o c o l v e r s i o n 2

# H o s t K e y / e t c / s s h / s s h _ h o s t _ r s a _ k e y H o s t K e y / e t c / s s h / s s h _ h o s t _ d s a _ k e y

# P r i v i l e g e S e p a r a t i o n i s t u r n e d o n f o r s e c u r i t y U s e P r i v i l e g e S e p a r a t i o n y e s

# . . . b u t b r e a k s P a m a u t h v i a k b d i n t , s o w e h a v e t o t u r n i t o f f

(18)

# U s e P A M a u t h e n t i c a t i o n v i a k e y b o a r d - i n t e r a c t i v e s o P A M m o d u l e s c a n

# p r o p e r l y i n t e r f a c e w i t h t h e u s e r ( o f f d u e t o P r i v S e p )

P A M A u t h e n t i c a t i o n V i a K b d I n t n o

# L i f e t i m e a n d s i z e o f e p h e m e r a l v e r s i o n 1 s e r v e r k e y

K e y R e g e n e r a t i o n I n t e r v a l 3 6 0 0 S e r v e r K e y B i t s 7 6 8

# L o g g i n g

S y s l o g F a c i l i t y A U T H L o g L e v e l I N F O

# A u t h e n t i c a t i o n : L o g i n G r a c e T i m e 6 0 0

A l l o w U s e r s d e m o

D e n y U s e r s r o o t f t p s s h n o b o d y

# n o r m a l e m e n t o n a u t o r i s e J A M A I S l e r o o t à s e c o n n e c t e r à u n d é m o n

P e r m i t R o o t L o g i n n o S t r i c t M o d e s n o

R S A A u t h e n t i c a t i o n n o P u b k e y A u t h e n t i c a t i o n y e s

# % h v a r i a b l e r e p r é s e n t a n t l e h o m e d u u s e r

A u t h o r i z e d K e y s F i l e % h / . s s h / a u t h o r i z e d _ k e y s 2 A u t h o r i z e d K e y s F i l e %

h / . s s h / d e m o _ a u t h o r i z e d _ k e y s 2

# r h o s t s a u t h e n t i c a t i o n s h o u l d n o t b e u s e d R h o s t s A u t h e n t i c a t i o n n o

# D o n ' t r e a d t h e u s e r ' s ~ / . r h o s t s a n d ~ / . s h o s t s f i l e s

I g n o r e R h o s t s y e s

# F o r t h i s t o w o r k y o u w i l l a l s o n e e d h o s t k e y s i n / e t c / s s h _ k n o w n _ h o s t s

R h o s t s R S A A u t h e n t i c a t i o n n o

# s i m i l a r f o r p r o t o c o l v e r s i o n 2 H o s t b a s e d A u t h e n t i c a t i o n y e s

# U n c o m m e n t i f y o u d o n ' t t r u s t ~ / . s s h / k n o w n _ h o s t s f o r R h o s t s R S A A u t h e n t i c a t i o n

I g n o r e U s e r K n o w n H o s t s y e s

(19)

# T o e n a b l e e m p t y p a s s w o r d s , c h a n g e t o y e s ( N O T R E C O M M E N D E D )

P e r m i t E m p t y P a s s w o r d s n o

# U n c o m m e n t t o d i s a b l e s / k e y p a s s w o r d s

# C h a l l e n g e R e s p o n s e A u t h e n t i c a t i o n n o

# T o d i s a b l e t u n n e l e d c l e a r t e x t p a s s w o r d s , c h a n g e t o n o h e r e !

P a s s w o r d A u t h e n t i c a t i o n n o

# T o c h a n g e K e r b e r o s o p t i o n s

# K e r b e r o s A u t h e n t i c a t i o n n o

# K e r b e r o s O r L o c a l P a s s w d y e s

# A F S T o k e n P a s s i n g n o

# K e r b e r o s T i c k e t C l e a n u p n o

# K e r b e r o s T G T P a s s i n g d o e s o n l y w o r k w i t h t h e A F S k a s e r v e r

# K e r b e r o s T g t P a s s i n g y e s

X 1 1 F o r w a r d i n g n o X 1 1 D i s p l a y O f f s e t 1 0 P r i n t M o t d n o

# P r i n t L a s t L o g n o K e e p A l i v e y e s

# U s e L o g i n n o

# M a x S t a r t u p s 1 0 : 3 0 : 6 0

# B a n n e r / e t c / i s s u e . n e t

# R e v e r s e M a p p i n g C h e c k y e s

S u b s y s t e m s f t p / u s r / l i b / s f t p - s e r v e r

18 Pourquoi est il impossible de se connecter interactivement avec un mot de passe ?

19 L'authentification par échange de clés ne fonctionne pas , pourquoi ?

20 Pourquoi ssh localhost:22 ne marche pas ?

21 Pourquoi ne peut on pas se connecter depuis un hôte distant ?

22 Solutions ?

23 Comment "automatiser" sans avoir à spécifier le port en

(20)

ligne de commande ?

Références

Documents relatifs

La probabilit´e que la dur´ee d’attente d’une personne prise au hasard soit comprise entre 15 min et 20 min sachant que la personne attend d´ej`a depuis 10 min est

Le système proposé sur la figure 1 représente la commande d’une touche de machine à écrire.. Toutes les touches ont des

ATTENTION : Le joint et l’encadrement de la porte doivent être inspectés régulièrement pour s’assurer qu’ils ne sont pas détériorés.. Si ces zones étaient

Like the face recognition and the natural language processing examples, most works discussing multi-task learning (Caruana 1997) construct ad-hoc combinations justified by a

 Le collecteur permet d’inverser la force Le collecteur permet d’inverser la force de Laplace à chaque demi tour.. de Laplace à chaque

Calculer la probabilité que la pièce choisie présente un défaut et ait été fabriquée par la machine A3. On constate que la pièce choisie a

Ouvrir la tête de la machine en poussant le levier vers le haut pour éjecter la capsule utilisée, puis refermer la machine en appuyant sur le levier vers le bas.. Mettre 0.5 l

Cette première étude a ainsi pour but de comparer 2 rapports de pulsation - le rapport z /i traditionnel et le rapport 3 /r qui semble plus efficace chez