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
13 --> Présentation
14 --> Caractéristiques
15
16 --> Un
17 --> SFTP
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
39 (11:09:54) alexandre.domont:
40 --> et
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
283 --> Une
284 --> La
285 --> Simplicité
286 --> Le
287 (11:57:02) alexandre.domont:
288 Inconvénients
289 (11:57:29) alexandre.domont:
290
291 --> La
292 --> Les
293 --> Les
294 --> Pas
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
302 --> La
303 --> Fournit
304 --> SSL
305 --> FTP
306 (11:58:10) alexandre.domont:
307 Inconvénients
308 (11:58:34) alexandre.domont:
309
310 --> Il
311 --> Requière
312 --> Aucun
313 --> Tous
314 --> Aucun
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 ------------------------