Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:solaris:10:junior:l120 [2020/01/16 14:30] adminelearning:workbooks:solaris:10:junior:l120 [2020/01/30 03:28] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
 +
 +Version : **2020.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 563: Ligne 565:
 ==== ssh ==== ==== ssh ====
  
-La commande **ssh** est le successeur et la remplaçante de la commande **rlogin**Il permet d'établir des connexions sécurisées avec une machine distante :+La commande **[[wpfr>Ssh|ssh]]** est le successeur et la remplaçante de la commande **[[wpfr>Rlogin|rlogin]]**Il permet d'établir des connexions sécurisées avec une machine distante. SSH comporte cinq acteurs : 
 + 
 +  * Le **serveur SSH** 
 +    * le démon sshd, qui s'occupe des authentifications et autorisations des clients,  
 +  * Le **client SSH** 
 +    * ssh ou scp, qui assure la connexion et le dialogue avec le serveur, 
 +  * La **session** qui représente la connexion courante et qui commence juste après l'authentification réussie, 
 +  * Les **clefs** 
 +    * **Couple de clef utilisateur asymétriques** et persistantes qui assurent l'identité d'un utilisateur et qui sont stockés sur disque dur, 
 +    * **Clef hôte asymétrique et persistante** garantissant l'identité du serveur er qui est conservé sur disque dur 
 +    * **Clef serveur asymétrique et temporaire** utilisée par le protocole SSH1 qui sert au chiffrement de la clé de session, 
 +    * **Clef de session symétrique qui est générée aléatoirement** et qui permet le chiiffrement de la communication entre le client et le serveur. Elle est détruite en fin de session. SSH-1 utilise une seule clef tandis que SSH-2 utilise une clef par direction de la communication, 
 +  * La **base de données des hôtes connus** qui stocke les clés des connexions précédentes. 
 + 
 +SSH fonctionne de la manière suivante pour la la mise en place d'un canal sécurisé: 
 + 
 +  * Le client contacte le serveur sur son port 22, 
 +  * Les client et le serveur échangent leur version de SSH. En cas de non-compatibilité de versions, l'un des deux met fin au processus, 
 +  * Le serveur SSH s'identifie auprès du client en lui fournissant : 
 +    * Sa clé hôte, 
 +    * Sa clé serveur, 
 +    * Une séquence aléatoire de huit octets à inclure dans les futures réponses du client, 
 +    * Une liste de méthodes de chiffrage, compression et authentification, 
 +  * Le client et le serveur produisent un identifiant identique, un haché MD5 long de 128 bits contenant la clé hôte, la clé serveur et la séquence aléatoire, 
 +  * Le client génère sa clé de session symétrique et la chiffre deux fois de suite, une fois avec la clé hôte du serveur et la deuxième fois avec la clé serveur. Le client envoie cette clé au serveur accompagnée de la séquence aléatoire et un choix d'algorithmes supportés, 
 +  * Le serveur déchiffre la clé de session, 
 +  * Le client et le serveur mettent en place le canal sécurisé. 
 + 
 +==SSH-1== 
 + 
 +SSH-1 utilise une paire de clefs de type RSA1. Il assure l'intégrité des données par une **[[wpfr>Contrôle_de_redondance_cyclique|Contrôle de Redondance Cyclique]]** (CRC) et est un bloc dit **monolithique**. 
 + 
 +Afin de s'identifier, le client essaie chacune des six méthodes suivantes : 
 + 
 +  * **Kerberos**, 
 +  * **Rhosts**, 
 +  * **%%RhostsRSA%%**, 
 +  * Par **clef asymétrique**, 
 +  * **TIS**, 
 +  * Par **mot de passe**. 
 + 
 +==SSH-2== 
 + 
 +SSH-2 utilise **DSA** ou **RSA**. Il assure l'intégrité des données par l'algorithme **HMAC**. SSH-2 est organisé en trois **couches** : 
 + 
 +  * **SSH-TRANS** – Transport Layer Protocol, 
 +  * **SSH-AUTH** – Authentification Protocol, 
 +  * **SSH-CONN** – Connection Protocol. 
 + 
 +SSH-2 diffère de SSH-1 essentiellement dans la phase authentification.  
 + 
 +Trois méthodes d'authentification : 
 + 
 +  * Par **clef asymétrique**, 
 +    * Identique à SSH-1 sauf avec l'algorithme DSA, 
 +  * **%%RhostsRSA%%**, 
 +  * Par **mot de passe**. 
 + 
 +===L'authentification par mot de passe=== 
 + 
 +Connectez-vous à votre propre machine en utilisant SSH et le compte **user2** :
  
 <code> <code>
Ligne 585: Ligne 647:
 </code> </code>
  
-=== RSADSA ===+===L'authentification par clef asymétrique=== 
 + 
 +  * Le **client** envoie au serveur une requête d'authentification par clé asymétrique qui contient le module de la clé à utiliser, 
 +  * Le **serveur** recherche une correspondance pour ce module dans le fichier des clés autorisés **~/.ssh/authorized_keys**, 
 +    * Dans le cas où une correspondance n'est pas trouvée, le serveur met fin à la communication, 
 +    * Dans le cas contraire le serveur génère une chaîne aléatoire de 256 bits appelée un **challenge** et la chiffre avec la **clé publique du client**, 
 +  * Le **client** reçoit le challenge et le décrypte avec la partie privée de sa clé. Il combine le challenge avec l'identifiant de session et chiffre le résultat. Ensuite il envoie le résultat chiffré au serveur. 
 +  * Le **serveur** génère le même haché et le compare avec celui reçu du client. Si les deux hachés sont identiques, l'authentification est réussie. 
 + 
 +===Installation===
  
-ssh peut utiliser une authentification par **couple de clefs asymétriques** ( clef privée/clef publique ) RSA ou DSA. Dans ce cas, le mot de passe de connexion n'est pas requis si une **passphrase** ( le mot de passe utilisé pour chiffrer la clef privée ) est vide. Pour mettre en place ce système il convient d'utiliser la commande **ssh-keygen** :+Pour mettre en place ce système il convient d'utiliser la commande **ssh-keygen** :
  
 <code> <code>
Ligne 798: Ligne 869:
 ==== ftp ==== ==== ftp ====
  
-La commande **ftp** est utilisée pour le transfert de fichiers:+Avant de commencer, placez-vous dasn le répertoire **/tmp** :
  
-  #ftp numero_ip ou FQDN [Entrée]+<code> 
 +cd /tmp 
 +# pwd 
 +/tmp 
 +</code>
  
-En saisissant cette commande, vous obtiendrez un résultat similaire à celle-ci :+La commande **ftp** est utilisée pour le transfert de fichiers :
  
 <code> <code>
-# ftp ftp.microsoft.com +# ftp localhost 
-Connected to ftp.microsoft.com. +Connected to localhost. 
-220 Microsoft FTP Service +220 solaris.i2tch.loc FTP server ready. 
-Name (ftp.microsoft.com:root): anonymous +Name (localhost:root): user1 
-331 Anonymous access allowed, send identity (e-mail name) as password+331 Password required for user1
-Password: +Password:tra@inee 
-230-Welcome to FTP.MICROSOFT.COM. Also visit http://www.microsoft.com/downloads. +230 User user1 logged in. 
-230 Anonymous user logged in. +Remote system type is UNIX. 
-Remote system type is Windows_NT+Using binary mode to transfer files
-ftp>+ftp> 
 </code> </code>
  
Ligne 843: Ligne 918:
 <code> <code>
 ftp> pwd ftp> pwd
-257 "/" is current directory.+257 "/export/home/user1" is current directory.
 ftp> ls ftp> ls
 200 PORT command successful. 200 PORT command successful.
 150 Opening ASCII mode data connection for file list. 150 Opening ASCII mode data connection for file list.
-bussys +local.cshrc 
-deskapps +local.login 
-developr +local.profile
-KBHelp +
-MISC +
-MISC1 +
-peropsys +
-Products +
-PSS +
-ResKit +
-Services +
-Softlib+
 226 Transfer complete. 226 Transfer complete.
-101 bytes received in 0,00041 seconds (238,08 Kbytes/s)+41 bytes received in 0.00014 seconds (283.62 Kbytes/s)
 ftp> dir ftp> dir
 200 PORT command successful. 200 PORT command successful.
 150 Opening ASCII mode data connection for /bin/ls. 150 Opening ASCII mode data connection for /bin/ls.
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 bussys +total 8 
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 deskapps +-rw-r--r--   user1    groupe1      144 Jan 14 12:48 .profile 
-dr-xr-xr-  1 owner    group               0 Feb  1  2006 developr +-rw-r--r--   user1    groupe1      136 Jan 14 12:48 local.cshrc 
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 KBHelp +-rw-r--r--   user1    groupe1      157 Jan 14 12:48 local.login 
-dr-xr-xr-  1 owner    group               0 Feb  1  2006 MISC +-rw-r--r--   user1    groupe1      174 Jan 14 12:48 local.profile
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 MISC1 +
-dr-xr-xr-  1 owner    group               0 Feb  1  2006 peropsys +
-dr-xr-xr-x   1 owner    group               0 Jul 18  2006 Products +
-dr-xr-xr-  1 owner    group               0 Feb  1  2006 PSS +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 ResKit +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Services +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Softlib+
 226 Transfer complete. 226 Transfer complete.
-809 bytes received in 0,0017 seconds (474,66 Kbytes/s)+276 bytes received in 3.1e-05 seconds (8822.05 Kbytes/s)
 </code> </code>
  
-Une commande ftp très utile est :+Par contre notez que le serveur FTP de SUN fourni en standard n'est **pas** dans un **chroot** :
  
-  ftp>!commande_local  [Entrée]+<code> 
 +ftp> cd / 
 +250 CWD command successful. 
 +ftp> ls 
 +200 PORT command successful. 
 +150 Opening ASCII mode data connection for file list. 
 +Desktop 
 +Documents 
 +bin 
 +boot 
 +core 
 +core.882 
 +dev 
 +devices 
 +etc 
 +export 
 +home 
 +inetd.tftp 
 +kernel 
 +lib 
 +lost+found 
 +mnt 
 +net 
 +opt 
 +platform 
 +proc 
 +pwd.txt 
 +rep 
 +sbin 
 +system 
 +tmp 
 +usr 
 +var 
 +vol 
 +226 Transfer complete. 
 +196 bytes received in 0.0012 seconds (153.31 Kbytes/s) 
 +</code>
  
-Cette commande permet d'exécuter une commande sur la machine cliente. Dans notre cas, nous saisissons la commande suivante :+Une commande ftp très utile est **!**. Cette commande permet d'exécuter une commande sur la machine cliente. Dans notre cas, nous saisissons la commande suivante :
  
 <code> <code>
-  ftp>!pwd +ftp> !pwd 
-  /Desktop+/tmp
 </code> </code>
  
 Pour transférer un fichier vers le serveur, il convient d'utiliser la commande **put** : Pour transférer un fichier vers le serveur, il convient d'utiliser la commande **put** :
  
-  ftp>put nom_fichier_local nom_fichier_distant  [Entrée]+<code> 
 +ftp> !ls 
 +hsperfdata_noaccess  hsperfdata_root      ntp.conf 
 +ftp> cd /export/home/user1 
 +250 CWD command successful. 
 +ftp> put ntp.conf 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp.conf. 
 +226 Transfer complete. 
 +local: ntp.conf remote: ntp.conf 
 +454 bytes sent in 0.00039 seconds (1127.48 Kbytes/s) 
 +</code>
  
-Vous pouvez également transférer plusieurs fichiers à la fois grâce à la commande **mput**. Dans ce cas précis, il convient de saisir la commande suivante:+Vous pouvez également transférer plusieurs fichiers à la fois grâce à la commande **mput**. Créez d'abord les fichiers **ntp1.conf** et **ntp2.conf** :
  
-  ftp>mput nom*.* [Entrée]+<code> 
 +ftp> !cp ntp.conf ntp1.conf 
 +ftp> !cp ntp.conf ntp2.conf 
 +ftp> !ls 
 +hsperfdata_noaccess  hsperfdata_root      ntp.conf             ntp1.conf            ntp2.conf 
 +</code>
  
-Notez l'utilisation du joker ***** dans la ligne de commande ftp. Vous remarquerez aussi que lors de chaque transfert, le serveur vous demande de le valider. +Ensuite téléversez les fichiers : 
 + 
 +<code> 
 +ftp> mput ntp* 
 +mput ntp.conf? y 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp.conf. 
 +226 Transfer complete. 
 +local: ntp.conf remote: ntp.conf 
 +454 bytes sent in 0.00046 seconds (972.30 Kbytes/s) 
 +mput ntp1.conf? y 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp1.conf. 
 +226 Transfer complete. 
 +local: ntp1.conf remote: ntp1.conf 
 +454 bytes sent in 0.00033 seconds (1344.94 Kbytes/s) 
 +mput ntp2.conf? y 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp2.conf. 
 +226 Transfer complete. 
 +local: ntp2.conf remote: ntp2.conf 
 +454 bytes sent in 0.00026 seconds (1711.30 Kbytes/s) 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** - Notez l'utilisation du joker ***** dans la ligne de commande ftp. Vous remarquerez aussi que lors de chaque transfert, le serveur vous demande de le valider. 
 +</WRAP> 
  
 Dans le cas où on ne souhaite pas la demande de confirmation lors des transferts multiples, il convient de saisir la commande **prompt** : Dans le cas où on ne souhaite pas la demande de confirmation lors des transferts multiples, il convient de saisir la commande **prompt** :
  
-  ftp>prompt [Entrée]+<code> 
 +ftp> prompt 
 +Interactive mode off. 
 +ftp> mput ntp* 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp.conf. 
 +226 Transfer complete. 
 +local: ntp.conf remote: ntp.conf 
 +454 bytes sent in 0.00023 seconds (1929.68 Kbytes/s) 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp1.conf. 
 +226 Transfer complete. 
 +local: ntp1.conf remote: ntp1.conf 
 +454 bytes sent in 0.00031 seconds (1438.13 Kbytes/s) 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp2.conf. 
 +226 Transfer complete. 
 +local: ntp2.conf remote: ntp2.conf 
 +454 bytes sent in 0.00026 seconds (1720.71 Kbytes/s) 
 +</code>
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Ligne 909: Ligne 1065:
 </WRAP> </WRAP>
  
-La navigation distante est obtenue en utilisant la commande **cd** +Pour transférer un fichier du serveur, il convient d'utiliser la commande **get** :
- +
-  ftp>cd nom_repertoire  [Entrée] +
- +
-Dans le cas de notre exemple, la commande est : +
- +
-  ftp>cd MISC  [Entrée] +
- +
-En saisissant cette commande, vous obtiendrez un résultat similaire à celui-ci :+
  
 <code> <code>
-ftp> cd MISC +ftp> pwd 
-250 CWD command successful.+257 "/export/home/user1" is current directory. 
 +ftp> !pwd 
 +/tmp 
 +ftp> !rm ntp* 
 +ftp> !ls 
 +hsperfdata_noaccess  hsperfdata_root 
 +ftp> get ntp.conf 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ntp.conf (454 bytes). 
 +226 Transfer complete. 
 +local: ntp.conf remote: ntp.conf 
 +454 bytes received in 3.6e-05 seconds (12284.49 Kbytes/s) 
 +ftp> !ls 
 +hsperfdata_noaccess  hsperfdata_root      ntp.conf
 </code> </code>
  
-Pour transférer un fichier du serveur, il convient d'utiliser la commande **get** :+Vous pouvez également transférer plusieurs fichiers à la fois grâce à la commande **mget** (voir la commande **mput** ci dessus).
  
-  ftp>get nom_fichier  [Entrée] +Pour supprimer un fichier sur le serveuril convient d'utiliser la commande **del** :
- +
-Dans le cas de notre exemplenous allons télécharger le fichier /MISC/INDEX.TXT :+
  
 <code> <code>
-ftp> dir+ftp> ls
 200 PORT command successful. 200 PORT command successful.
-150 Opening ASCII mode data connection for /bin/ls+150 Opening ASCII mode data connection for file list
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 beckyk +local.cshrc 
--r-xr-xr-x   1 owner    group           15749 Apr  8  1994 CBCP.TXT +local.login 
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 csformat +local.profile 
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 DAILYKB +ntp.conf 
--r-xr-xr-x   1 owner    group             710 Apr 12  1993 DISCLAIM.TXT +ntp1.conf 
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 FDC +ntp2.conf
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 friKB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 FULLKB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Homenet +
--r-xr-xr-x   1 owner    group              97 Sep 28  1993 INDEX.TXT +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Jeffreyf +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 KB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 KBSPV +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Markesh +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 monKB +
--r-xr-xr-x   1 owner    group           30638 Sep 28  1993 NBFCP.TXT +
--r-xr-xr-x   1 owner    group           25423 Nov 16  1993 NBFCP2.TXT +
--r-xr-xr-x   1 owner    group           24059 Nov 16  1993 NBFCP3.TXT +
--r-xr-xr-x   1 owner    group           26294 Dec 21  1993 NBFCP4.TXT +
--r-xr-xr-x   1 owner    group           29097 Feb 14  1994 NBFCP5.TXT +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Peach +
--r-xr-xr-x   1 owner    group            8698 Dec  7  1998 PRODUCT.TBL +
--r-xr-xr-x   1 owner    group            2107 Jul  2  2002 ReadMe1.txt +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 satKB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 Store +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 STORE1 +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 sunKB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 test +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 thuKB +
--r-xr-xr-x   1 owner    group            6945 Sep 30  1993 TREE.COM +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 tueKB +
-dr-xr-xr-x   1 owner    group               0 Feb  1  2006 wedKB+
 226 Transfer complete. 226 Transfer complete.
-2174 bytes received in 0,0045 seconds (474,79 Kbytes/s) +73 bytes received in 0.00015 seconds (467.95 Kbytes/s) 
-ftp> get INDEX.TXT+ftp> del ntp.conf 
 +250 DELE command successful. 
 +ftp> del ntp1.conf 
 +250 DELE command successful. 
 +ftp> del ntp2.conf 
 +250 DELE command successful. 
 +ftp> ls
 200 PORT command successful. 200 PORT command successful.
-150 Opening ASCII mode data connection for INDEX.TXT(97 bytes).+150 Opening ASCII mode data connection for file list. 
 +local.cshrc 
 +local.login 
 +local.profile
 226 Transfer complete. 226 Transfer complete.
-local: INDEX.TXT remote: INDEX.TXT +41 bytes received in 8.7e-05 seconds (458.65 Kbytes/s)
-97 bytes received in 0,0012 seconds (76,04 Kbytes/s) +
-ftp>+
 </code> </code>
- 
-Vous pouvez également transférer plusieurs fichiers à la fois grâce à la commande **mget** ( voir la commande **mput** ci dessus ). 
- 
-Pour supprimer un fichier sur le serveur, il convient d'utiliser la commande **del** : 
- 
-  ftp>del nom_fichier  [Entrée] 
  
 Pour fermer la session, il convient d'utiliser la commande **quit** : Pour fermer la session, il convient d'utiliser la commande **quit** :
Ligne 2817: Ligne 2951:
 <html> <html>
 <div align="center"> <div align="center">
-Copyright © 2019 Hugh Norris.+Copyright © 2020 Hugh Norris.
 </html> </html>
 +
Menu