1 (11:00:13) willy: ----------------------------------- DEBUT ATELIER : Partage de fichiers distants ------------------------
   2 (11:00:25) alexandre.domont: 
   3  Bonjour à tous  
   4 (11:00:35) alexandre.domont: 
   5  Atelier FTP over SSH    
   6 (11:00:52) alexandre.domont: 
   7  L'objectif de cet atelier est de vous présenter l'extension FTP du protocole SSH : FTP over SSH  
   8 (11:01:23) alexandre.domont: 
   9 Le plan :    
  10 (11:02:02) alexandre.domont: 
  11 
  12 --> Mise au point   
  13 --> Présentation de SFTP   
  14 --> Caractéristiques   
  15 --> Mise en œuvre de SFTP   
  16 --> Un exemple avec l'Archivage numérique de conventions (conventions.auf)   
  17 --> SFTP vs FTPS  
  18 (11:03:01) alexandre.domont: 
  19 Mise au point  
  20 (11:03:15) alexandre.domont: 
  21 On parle ici de SSH File Transfer Protocol, Secure File Transfer Protocol, Secure FTP, ou SFTP – FTP over SSH  
  22 (11:03:33) alexandre.domont: 
  23 Ne pas confondre avec le protocole FTP (File Transfer Protocol) et son extension  SSL/TLS, protocole FTPS - FTP over SSL/TLS  
  24 (11:04:20) alexandre.domont: 
  25  Nous verrons dans la seconde partie de l'atelier,  les principales différences entres les deux protocoles. Mais intéressons nous tout d'abord à SFTP  
  26 (11:04:38) alexandre.domont: tout le monde est ok ??
  27 (11:07:07) alexandre.domont: allez un dernier "." est je continue 
  28 (11:07:18) alexandre.domont: *et
  29 (11:08:08) alexandre.domont: 
  30 Présentation de SFTP  
  31 (11:08:34) alexandre.domont: 
  32 Pour commencer, nous ne pouvons pas parler de SFTP, sans parler du protocole qui le supporte : SSH.  
  33 (11:08:52) alexandre.domont: 
  34 A la base, la principale fonction de SSH était de sécuriser l'accès à un Shell distant sur un système UNIX.    
  35 (11:09:17) alexandre.domont: 
  36 Mais depuis son origine en 1995, les fonctions de SSH ont bien évolués et ont été étendus, notamment, au protocole de transfert de fichiers :  
  37 (11:09:41) alexandre.domont: 
  38 --> le bien connu SCP (en SSH 1.x),  
  39 (11:09:54) alexandre.domont: 
  40 -->  et le moins connu SFTP (depuis SSH2)  
  41 (11:10:21) alexandre.domont: 
  42  La dernière révision de SFTP est la version 6, elle date de 2006.  
  43 (11:10:44) alexandre.domont: 
  44 Le protocole fait l'objet d'un draft  (juillet 2006)  
  45 (11:11:01) alexandre.domont: 
  46  http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13  
  47 (11:11:44) alexandre.domont: 
  48  Je vous conseille de parcourir le draft pour vous donner une idée de l'étendu des possibilités offertes par SFTP...  
  49 (11:12:17) alexandre.domont: 
  50 mais je vous épargne cela pour le moment et je vous propose de faire un petit résumé des caractéristiques de SFTP  
  51 (11:12:30) alexandre.domont: 
  52  A MOI QU'IL Y A DES QUESTIONS ??  
  53 (11:13:43) willy: pas pour le moment
  54 (11:13:47) alexandre.domont: ok
  55 (11:13:56) alexandre.domont: 
  56  Quelques caractéristiques    
  57 (11:14:08) alexandre.domont: 
  58 SFTP a été développé pour fournir non seulement des opérations de téléchargements (put, get), mais aussi pour effectuer des opérations courantes
  59 (11:14:29) alexandre.domont: 
  60 si vous fêtes un man sftp    
  61 (11:14:54) alexandre.domont: 
  62  vous constaterez qu'il est possible de lister et manipuler les fichiers (chown, ls...) et passer des commandes interactives (mkdir, symlink...)  
  63 (11:16:13) alexandre.domont: Oui des questions ?
  64 (11:16:18) willy: 
  65 chanesakhone.CHITSAYA: QUESTION: quel est le paquet SFTP?
  66 (11:16:37) alexandre.domont: euh...
  67 (11:17:30) alexandre.domont: je dirais que ça vient avec openssh-client 
  68 (11:17:45) alexandre.domont: mais on vérifiera en fin d'atelier
  69 (11:17:55) alexandre.domont: je continue 
  70 (11:18:38) alexandre.domont: 
  71 suite des caractéristiques,  j'ai même pu tester la reprise des transferts interrompus et le verrouillage des fichiers ouverts (.~lock)  
  72 (11:18:51) willy: 
  73 Thomas NOEL: REPONSE : client & serveur
  74 (11:19:36) alexandre.domont: 
  75  Niveau sécurité, ce sont les mécanismes de SSH qui sont utilisés.  
  76 (11:20:15) alexandre.domont: 
  77  La confidentialité des transactions est une combinaison d'algorithmes asymétriques (RSA, DAS),  d'algorithmes symétriques (DES/3DES, AES...) et des clés algorithme de clés d'échange.  
  78 (11:20:34) alexandre.domont: 
  79  L'authentification est assurée par des clés SSH (clés public et clés privé stockées séparément) et ne contiennent,  par contre, aucune information sur le propriétaire de la clés.  
  80 (11:21:08) alexandre.domont: 
  81 des compléments à la question de chanesakhone.CHITSAYA ?
  82 (11:21:44) willy: oui, thomas noël a dit que sftp est intégré à openssh; client & serveur
  83 (11:22:02) alexandre.domont: d'autres questions ?
  84 (11:22:47) alexandre.domont: 
  85 Alors, maintenant, passons aux choses sérieuses    
  86 (11:22:56) alexandre.domont: 
  87  Mise en œuvre de SFTP    
  88 (11:23:23) alexandre.domont: 
  89 APARTÈ: Vous pouvez, à mesure des exemples, les appliquer sur votre ordinateur Ubuntu :)    
  90 (11:23:53) alexandre.domont: 
  91 Tout d'abord une précision, SFTP est présent par défaut dans la configuration SSH. 
  92 (11:24:04) alexandre.domont: 
  93 Si vous avez un serveur SSH sous la main, regardez dans /etc/ssh/sshd_config  
  94 (11:24:17) alexandre.domont: 
  95 Vous y trouverez cette ligne :  
  96 (11:24:26) alexandre.domont: 
  97 Subsystem sftp /usr/lib/openssh/sftp-server  
  98 (11:24:50) alexandre.domont: 
  99 Cela indique à sshd où se trouve sftp-server.  
 100 (11:25:05) alexandre.domont: 
 101 APARTÈ: Un man sftp-server vous donnera plus de détail sur cette commande.  
 102 (11:26:02) alexandre.domont: 
 103 Alors, si vous tentez une connexion via un terminal  
 104 (11:26:11) alexandre.domont: 
 105 # sftp user@server (mailto://user@server)    
 106 (11:26:28) alexandre.domont: 
 107 Chez moi ça donne :  
 108 (11:27:21) alexandre.domont: 
 109 
 110 sftp alex@localhost    
 111 Connecting to localhost...    
 112 alex@localhost's password:    
 113 sftp> ls -lat /   
 114 drwxrwxrwt   13 root     root         4096 Sep  1 12:37 tmp    
 115 drwx------   14 root     root         4096 Sep  1 12:34 root   
 116 drwxr-xr-x    2 root     root            0 Sep  1 12:27 net    
 117 drwxr-xr-x  151 root     root        12288 Sep  1 11:04 etc    
 118   
 119 (11:27:41) alexandre.domont: 
 120 vous constaterez que vous aurez accès à l'ensemble de l'arborescence du serveur, sans rien faire de particulier dans la configuration SSH....    
 121 (11:27:51) alexandre.domont: 
 122  QUESTIONS ??  
 123 (11:29:09) alexandre.domont: 
 124 bon,  maintenant que nous avons compris le principe (enfin j'espère...)  
 125 (11:29:32) alexandre.domont: 
 126 Je vous propose donc d'étudier une mise en application à travers un exemple  concret : l'Archivage numérique des conventions (conventions.auf).  
 127 (11:30:19) alexandre.domont: 
 128 Un exemple avec « conventions.auf »  
 129 (11:30:39) alexandre.domont: 
 130 Le but est de créer un partage réseau accessible depuis le RPV, afin de stocker les conventions AUF dans des répertoires sécurisés.  
 131 (11:31:17) alexandre.domont: 
 132 Techniquement, cela se traduit par la création d'un environnement « chroot » qui limite l'accès à certains répertoires et à certains utilisateurs.  
 133 (11:32:15) alexandre.domont: 
 134 Nous allons donc refaire une partie de la configuration  
 135 (11:32:33) alexandre.domont: 
 136 Commençons par créer une arborescence de répertoires :  
 137 (11:32:44) alexandre.domont: 
 138  # mkdir -p /srv/files/DS1 /srv/files/DS2  
 139 (11:33:06) alexandre.domont: 
 140 Un truc important, les droits !!
 141 (11:33:19) alexandre.domont: 
 142  Le répertoire «chroot» doit avoir les droits «root » en «rwxrr-xr-x»  
 143 (11:33:45) alexandre.domont: 
 144  # chown root:root /srv/files ; chmod u+rwx,go+rx /srv/files/  
 145 (11:34:09) alexandre.domont: 
 146 Ensuite il faut créer un groupe contenant les utilisateurs concernés par l'accès à SFTP.  
 147 (11:35:00) alexandre.domont: 
 148  PRECISION : Attention d'exclure le compte root des configurations, sous peine de ne plus pouvoir se connecter en SSH....  
 149 (11:35:13) alexandre.domont: QUESTIONS ?
 150 (11:35:52) willy: 
 151 chanesakhone.CHITSAYA: QUESTION: Dans sftp>    on peut utiliser tous les commandes de Unix/linux??
 152 (11:36:20) willy: 
 153 et  progfou a dit" on peut utiliser les commandes de FTP" :)
 154 (11:36:27) alexandre.domont: 
 155 chanesakhone.CHITSAYA: regarde le man sftp la section INTERACTIVE COMMANDS
 156 (11:36:35) alexandre.domont: oui parfait
 157 (11:36:46) alexandre.domont: je continue...
 158 (11:37:15) alexandre.domont: 
 159  Ensuite, nous allons créer un utilisateur « alexandre », le groupe « chrooted » et mettre l'utilisateur « alexandre » dans ce groupe :  
 160 (11:37:35) alexandre.domont: 
 161  # addgroup chrooted 
 162 # adduser alexandre 
 163 # adduser alexandre chrooted  
 164 (11:37:56) alexandre.domont: 
 165 Nous poursuivons la configuration dans /etc/ssh/sshd_config  
 166 (11:38:50) alexandre.domont: 
 167 Nous avons vu plus haut que sftp-server était configuré par défaut, mais pour simplifier la configuration du chroot, nous allons utiliser « internal-sftp »    
 168   
 169 (11:39:07) alexandre.domont: 
 170 Nous allons donc commenter cette ligne  :
 171 (11:39:18) alexandre.domont: 
 172  # Subsystem sftp /usr/lib/openssh/sftp-server  
 173 (11:39:28) alexandre.domont: 
 174 Et la remplacer par :  
 175 (11:39:39) alexandre.domont: 
 176 Subsystem sftp internal-sftp  
 177 (11:39:56) alexandre.domont: 
 178 EXPLICATIONS : Nous indiquons ici d'utiliser le sftp interne de Openssh. Ce qui nous permettra d'utiliser certains mots clés définis dans un bloque conditionnel  
 179 (11:40:12) alexandre.domont: 
 180 Nous ajoutons ensuite :  
 181 (11:40:58) alexandre.domont: 
 182 
 183 Match group chrooted        
 184  ChrootDirectory /srv/files # chroot le répertoire partagé /srv/files         
 185 X11Forwarding no # Interdit le forwarding X11         
 186  AllowTcpForwarding no # Interdit le forwarding TCP         
 187  ForceCommand internal-sftp # force la connexion sftp pas de ssh normal  
 188 (11:41:27) alexandre.domont: 
 189  EXPLICATIONS : Match définie ici un bloque conditionnel, si les critères de la ligne Match sont satisfaites, les lignes contenues dans le bloque sont appliquées.   
 190 (11:42:02) willy: 
 191 progfou: REMARQUE : à noter qu'il n'est pas nécessaire que l'utilisateur ait un shell valide côté serveur pour pouvoir utiliser SFTP ; en d'autre termes on peut utiliser le shell '/bin/false' côté serveur (et je le recommande, une sécurité supplémentaire en plus du chroot)
 192 (11:42:10) alexandre.domont: 
 193 oui excellent
 194 (11:42:21) alexandre.domont: 
 195 Une dernière chose à régler : l'authentification   
 196 (11:42:47) alexandre.domont: 
 197 Idéalement, il faut créer une pair de clés SSH pour authentifier l'utilisateur mais pour simplifier les choses en interne, nous autoriserons l'authentification par mot de passe :  
 198 (11:43:12) alexandre.domont: 
 199  PasswordAuthentication yes   
 200 (11:43:24) alexandre.domont: 
 201 Attention aussi de vérifier le AllowGroups, le groupe chrooted doit y être.  
 202 (11:43:49) alexandre.domont: 
 203 Nous en avons terminé avec la configuration du serveur, nous pouvons redémarrer le service SSH.  
 204 (11:43:59) alexandre.domont: 
 205 # /etc/init.d/ssh restart  
 206 (11:44:13) alexandre.domont: 
 207 Sur le Client maintenant  
 208 (11:44:30) alexandre.domont: 
 209 Trois possibilités  :
 210 (11:44:43) alexandre.domont: 
 211 Depuis Nautilus  
 212 (11:44:55) alexandre.domont: 
 213 Soit vous ouvrez Nautilus, puis Ctrl+L, et ssh://user@serveur  
 214 (11:45:12) alexandre.domont: 
 215  ou depuis un terminal c'est plus rapide : # nautilus ssh://user@serveur  
 216 (11:45:24) alexandre.domont: 
 217 Depuis un navigateur Web  
 218 (11:45:51) alexandre.domont: 
 219  # sftp://user:wd@serveur  
 220 (11:46:12) alexandre.domont: 
 221 Depuis pour finir, un Terminal  
 222 (11:46:26) alexandre.domont: 
 223 # sftp utilisateur@serveur  
 224 (11:46:52) alexandre.domont: 
 225 Chez moi ça donne :  
 226 (11:47:46) alexandre.domont: 
 227 
 228 # sftp alexandre@localhost    
 229 Connecting to localhost...    
 230 alexandre@localhost's password:    
 231 sftp> ls -lat /  
 232 drwxr-xr-x    2 root     root         4096 Aug 31 16:00 DS1    
 233 drwxr-xr-x    2 root     root         4096 Aug 31 16:00 DS2    
 234 drwxr-xr-x    4 root     root         4096 Aug 31 16:00 ..    
 235 drwxr-xr-x    4 root     root         4096 Aug 31 16:00 .  
 236 (11:48:24) alexandre.domont: 
 237 Une petite vérification sur /etc .... 
 238 (11:49:10) alexandre.domont: 
 239 sftp> ls -lat /etc    
 240 Couldn't stat remote file: No such file or directory    
 241 Can't ls: "/etc" not found  
 242 (11:49:44) alexandre.domont: 
 243 DÉCRYPTAGE : l'utilisateur alexandre est bien chrooté dans le répertoire /srv/files/  
 244 (11:50:23) alexandre.domont: 
 245 Ensuite, il faut ajuster les droits en fonctions des besoins...ce que nous n'aborderons pas ici.  
 246 (11:50:45) alexandre.domont: 
 247 voilà...s'en est fini avec la configuration.  
 248 (11:51:05) alexandre.domont: 
 249 Si vous voulez voir en vrai ce que ça donne. Regardez dans le Menu AUF, Organisation et règlement, Archivage numérique des conventions.  
 250 (11:52:08) alexandre.domont: 
 251 QUESTIONS ??  
 252 (11:52:12) willy: 
 253 chanesakhone.CHITSAYA: QUESTION: J'au une erreur:
 254 root@cc-portable:~# sftp test@localhost
 255 Connecting to localhost...
 256 ssh: connect to host localhost port 22: Connection refused
 257 Couldn't read packet: Connection reset by peer
 258 (11:52:26) alexandre.domont: telnet localhost 22, te donne ok ??
 259 (11:52:47) alexandre.domont: DES REMARQUES ?
 260 (11:52:49) willy: 
 261 progfou: REMARQUE : un exemple d'ajustement des droits, par gestion de groupes, serait le bienvenu car c'est la moitié du travail à faire un pour partage de fichiers (quelque soit la technique d'accès)
 262 (11:53:19) alexandre.domont: Il me reste 6'...
 263 (11:53:40) progfou: un exemple simple : 1 groupe par dossiers, point...
 264 (11:53:42) alexandre.domont: je finie avant de terminer par des questions 
 265 (11:54:31) alexandre.domont: 
 266 Maintenant, nous pouvons nous demander pourquoi utiliser SFTP plutôt qu'un FTP sécurisé !?  
 267 (11:55:01) alexandre.domont: 
 268 Je vous propose donc un petit comparative rapide des deux solutions  
 269 (11:55:09) alexandre.domont: 
 270  SFTP vs FTPS  
 271 (11:55:20) alexandre.domont: 
 272 SFTP  
 273 (11:55:43) alexandre.domont: 
 274 Mais avant des remarques sur la configuration de SSH ?
 275 (11:55:54) willy: 
 276 progfou: REMARQUE (conseil) : quand on reconfigure SSH à distance (ce qu'il faut éviter autant que possible, d'autant plus si la distance est grande), il faut toujours garder un shell distant ouvert et tester les connexions dans une autre fenêtre
 277 (11:56:18) alexandre.domont: 
 278 Donc SFTP  
 279 (11:56:24) alexandre.domont: 
 280 Avantages  
 281 (11:56:51) alexandre.domont: 
 282 --> A une bonne base de normes qui définit strictement les aspects les plus (sinon tous) des opérations   
 283 --> Une seule connexion est nécessaire (pas besoin de « DATA » connexion)  
 284 --> La connexion est toujours sécurisée 
 285 --> Simplicité de mis en œuvre 
 286 --> Le protocole inclus des opérations sur les permissions et les attributs  
 287 (11:57:02) alexandre.domont: 
 288 Inconvénients  
 289 (11:57:29) alexandre.domont: 
 290                  
 291 --> La communication est binaire et ne peut pas être lisible directement sans une interprétation 
 292 --> Les clés SSH sont plus difficiles à gérer et à valider pour un usage étendu 
 293 --> Les normes définissent certaines choses comme facultatives ou recommandées, ce qui conduit à des problèmes de compatibilité entre différents logiciels provenant de différents fournisseurs   
 294 --> Pas de transfert de fichiers de serveur à serveur  
 295 (11:57:36) alexandre.domont: 
 296  FTPS  
 297 (11:57:43) alexandre.domont: 
 298  Avantages  
 299 (11:58:03) alexandre.domont: 
 300 
 301 --> Largement connu et utilisé 
 302 --> La communication peut être lu et compris par les humains 
 303 --> Fournit des services de transfert de fichiers de serveur à serveur 
 304 --> SSL / TLS a de bons mécanismes d'authentification (X.509) 
 305 --> FTP et SSL/TLS est supporté par plusieurs Frameworks de communication Internet.  
 306 (11:58:10) alexandre.domont: 
 307  Inconvénients  
 308 (11:58:34) alexandre.domont: 
 309 
 310 --> Il n'y a pas de format uniforme pour lister les répertoires... 
 311 --> Requière un second canal pour les DATA, plus ennuyeux pour passer les pares-feu. 
 312 --> Aucun standard pour l'encodage des caractères pour les noms de fichiers. 
 313 --> Tous les serveurs FTP ne support pas SSL/TLS   
 314 --> Aucun standard pour les attributs des fichiers et des répertoires.  
 315 (11:58:53) alexandre.domont: 
 316  A vous de juger, mais pour ma part, je trouve que SFTP offre une solution rapide et simple à mettre en œuvre. Le SSH est souvent installé sur les serveurs, il pourrait convenir dans de nombreuses situations. FTP, quand à lui, demande un peu plus de configuration mais reste une alternative complémentaire. Pensez y si vous avez à ouvrir des accès de stockages ou à des zones d'hébergement Web.  
 317 (11:59:07) alexandre.domont: 
 318  QUESTIONS/REACTIONS ??  
 319 (11:59:11) willy: 
 320 chanesakhone.CHITSAYA: QUESTION: est-ce qu'il faut ajouté tous les utilisateurs dans le group de chrooted?
 321 (12:00:22) alexandre.domont: 
 322 chanesakhone.CHITSAYA: oui sinon, ils n'auront pas accès aux répertoires chroot 
 323 (12:00:32) willy: 
 324 progfou: REMARQUE : autre avantage collatéral du fait que SFTP utilise une seule connexion : ça passe très bien par dessus du NAT !! (contrairement à FTP qui, même s'il existe un support NAT très correct, pose souvent des soucis à configurer)
 325 (12:01:31) alexandre.domont: 
 326 Exact..
 327 (12:01:41) alexandre.domont: 
 328 Il est l'heure....
 329 (12:01:57) willy: 
 330 progfou: REMARQUE : au BAP on utilise le groupe par défaut des utilisateurs ('bap', ailleurs ce serait 'auf' ou encore 'users') comme groupe de chroot, ce qui les met tous dedans d'un coup ; il faut seulement faire attention à éviter les groupes qui contiennent les utilisateurs que vous utiliser pour gérer le serveur avec un shell
 331 (12:01:57) alexandre.domont: 
 332 je suis à votre disposition dans le salon Tech
 333 (12:02:20) alexandre.domont: 
 334 merci à tous
 335 (12:05:03) willy: ----------------------------- FIN ATELIER : partage de fichiers distants ------------------------

Projet/SemaineTech/2011/Ateliers/PartageDeFichiersDistant/Conversation (dernière édition le 2012-04-02 15:13:13 par VictorBruneau)