source: trunk/tp_ssh/tpssh.tex @ 403

Last change on this file since 403 was 397, checked in by nanardon, 9 years ago

Typo

File size: 18.7 KB
Line 
1% $Id: perl.tex 183 2008-09-04 23:55:50Z nanardon $
2\documentclass[notes]{beamer}
3\usepackage[utf8]{inputenc}
4\usepackage[frenchb]{babel}
5\usepackage[T1]{fontenc}
6\usepackage{moreverb}
7\usepackage{graphicx}
8\usepackage{listings}
9\usepackage{color}
10\usepackage{eurosym}
11
12\mode<presentation>
13{
14  \definecolor{beamerstructure}{RGB}{143,79,112}
15  \definecolor{sidebackground}{RGB}{230,242,250}
16  \color{beamerstructure}
17  \usetheme[secheader]{Madrid}
18  \usepackage{times}
19  \userightsidebarcolortemplate{\color{sidebackground}}
20  \beamertemplateballitem
21}
22
23\AtBeginSection[]
24{
25\begin{frame}<beamer>
26    \frametitle{Plan}
27    \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/show/hide,subsubsectionstyle=hide/hide/hide]
28
29    \emph{Boule de poil à la fin !}
30\end{frame}
31}
32
33\AtBeginSubsection[]
34{
35\begin{frame}<beamer>
36    \frametitle{\subsecname}
37    \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/hide/hide]
38\end{frame}
39}
40
41\AtBeginSubsubsection[]
42{
43\begin{frame}<beamer>
44    \frametitle{\subsubsecname}
45    \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/shaded/hide]
46\end{frame}
47}
48
49\title{TP SSH/Unix}
50%%\subtitle{}
51\author{Olivier Thauvin}
52\date{\today}
53
54\begin{document}
55
56\frame{\titlepage}
57
58\begin{frame}
59\tableofcontents[hideallsubsections]
60\end{frame}
61
62\section{Introduction}
63
64\subsection{Historique}
65
66\begin{frame}
67    \frametitle{Pourquoi faire ?}
68    \begin{block}{Role premier}
69        Ouvrir un \bf{terminal texte} via une connection \bf{réseau} sur un
70        \bf{équipement}
71    \end{block}
72
73    \begin{block}{Les plus}
74        \begin{itemize}
75            \item communication chiffrée
76            \pause
77            \item communication authentifiée
78            \pause
79            \item relai pour sécuriser les connections
80            \pause
81        \item transfert de fichiers (sftp)
82        \end{itemize}
83    \end{block}
84\end{frame}
85
86\begin{frame}[fragile]
87    \frametitle{Telent et Rsh}
88    \begin{block}{A que quoi ça ?}
89        \begin{itemize}
90            \item telnet: ouvre un terminal, demande login et mot de passe
91            \pause
92            \item rsh: envoi de commande à distance
93        \end{itemize}
94    \end{block}
95
96    \begin{alertblock}{ProblÚmes\ldots}
97        Sécurité: néant !
98
99        \small
100        \begin{verbatim}
101%11:48:56.160605 IP localhost.localdomain.1023 >
102        localhost.localdomain.shell:
103%Flags [P.], seq 6:25, ack 1, win 342, options
104        [nop,nop,TS val 258309699 ecr %258309695],
105        length 19
106%E..Gb.@.@...............`..........V.;..
107....e~C.e~?olivier.olivier.ls.
108        \end{verbatim}
109    \end{alertblock}
110\end{frame}
111
112\begin{frame}
113    \frametitle{SSH}
114    \includegraphics[width=0.8\textwidth]{shherrif}
115\end{frame}
116
117\begin{frame}[fragile]
118    \frametitle{les SSH}
119    \begin{block}{A propos d'OpenSSH}
120        \begin{itemize}
121            \item logiciel libre (licence BSD)
122            \pause
123            \item développé par le projet BSD
124            \item \verb+http://www.openssh.org/+
125            \pause
126            \item début du projet: 1999 (portage de ssh)
127            \pause
128            \item SSH v2: juin 2000
129        \end{itemize}
130    \end{block}
131    \pause
132    \vfill
133    \begin{block}{Autres SSH}
134        \begin{itemize}
135            \item putty: graphique, tout os
136            \item winscp: copy de fichiers via ssh
137                (\verb+http://winscp.net/+)
138            \item mina: client en java (\verb+http://mina.apache.org/sshd-project/+)
139            \item connectbot: client pour android
140        \end{itemize}
141    \end{block}
142\end{frame}
143
144\begin{frame}[fragile]
145    \frametitle{Fonctionnalités}
146    \begin{block}{Terminal}
147        Execution de commandes sur une machine distantes
148    \end{block}
149    \pause
150    \begin{block}{Transfert de fichiers}
151        Via la commande \verb+scp+.
152    \end{block}
153    \pause
154    \begin{block}{FTP like}
155        Une interface semblable au classique ftp mais sécurisé.
156
157        N'a rien à voir avec ftp !
158    \end{block}
159    \pause
160    \begin{block}{Tunnel}
161        Encapsule un traffic réseau au sein d'une connection ssh donc sécurisée.
162    \end{block}
163\end{frame}
164
165\subsection{Théorie (un peu)}
166
167\begin{frame}[fragile]
168    \frametitle{TCP/IP (pour les nuls)}
169        \begin{block}{Adresse IP}
170            \begin{itemize}
171                \item identifiant unique d'une machine sur le réseau
172                    \pause
173                \item \verb+194.254.39.137+ en IPv4
174                \item \verb+2001:660:3023:2::137+ en IPv6
175                    \pause
176                \item en général on utilise des noms:
177                \verb+cartman.latmos.ipsl.fr+
178            \end{itemize}
179        \end{block}
180
181        \begin{block}{Port TCP}
182            \begin{itemize}
183                \item TCP (Transmission Control Protocol):
184                    \begin{itemize}
185                        \item connecté (debut et fin de transmission)
186                        \item fiabilisé
187                    \end{itemize}
188                    \pause
189                \item Port:
190                    \begin{itemize}
191                        \item nombre entre 0 et 65635
192                        \item fait le lien entre le programme et la transmission
193                            réseau
194                    \end{itemize}
195            \end{itemize}
196        \end{block}
197\end{frame}
198
199\begin{frame}[fragile]
200    \frametitle{Porte Clefs et cadenas}
201        \begin{block}{Cryptographie}
202            \begin{itemize}
203                \item identifiant unique d'une machine sur le réseau
204                    \pause
205                \item \verb+1.2.3.4+ en IPv4
206                \item \verb+2001:660:3023:ab::ef+ en IPv6
207                    \pause
208                \item en général on utilise des noms:
209                \verb+cartman.latmos.ipsl.fr+
210            \end{itemize}
211        \end{block}
212
213        \begin{block}{Port TCP}
214            \begin{itemize}
215                \item TCP (Transmission Control Protocol):
216                    \begin{itemize}
217                        \item connecté (debut et fin de transmission)
218                        \item fiabilisé
219                    \end{itemize}
220                    \pause
221                \item Port:
222                    \begin{itemize}
223                        \item nombre entre 0 et 65635
224                            \pause
225                        \item fait le lien entre l'application et la transmission
226                            réseau
227                    \end{itemize}
228            \end{itemize}
229        \end{block}
230\end{frame}
231
232\section{Les bases}
233
234\begin{frame}[fragile]
235    \frametitle{Premier contact}
236    \begin{block}{Faire un ssh:}
237        Tapez: \verb+$ ssh <LOGIN>@cartman.latmos.ipsl.fr+
238        \begin{itemize}
239            \item remplacez \verb+<LOGIN>+ par votre login au LATMOS
240            \item saisissez votre mot de passe
241        \end{itemize}
242    \end{block}
243\end{frame}
244
245\begin{frame}[fragile]
246    \frametitle{Premier SSH}
247    \begin{block}{Premier SSH: A l'écran}
248        \begin{verbatim}
249Warning: Permanently added 'cartman.latmos.ipsl.fr'
250  (RSA) to the list of known hosts.
251Password:
252Last login: Tue Oct  1 19:51:19 2013 from
253  13.17.90.92.rev.sfr.net
254            _,
255        _.-{__}-._
256      .:-'`____`'-:.       Cartman.
257     /_.-"`_  _`"-._\      latmos.ipsl.fr
258    /`   / .\/. \   `\
259    |    \__/\__/    |     <=============
260[...]
261[nanardon@cartman ~]$
262        \end{verbatim}
263    \end{block}
264\end{frame}
265
266\begin{frame}
267\frametitle{Analyse}
268    \begin{block}{}
269    \begin{itemize}
270        \item Warning: Permanently added ’cartman.latmos.ipsl.fr’ (RSA) to the list of known hosts.
271
272        SSH garde la trace de la clef de la machine distante, on y reviendra
273
274        \pause
275        \item Password:
276
277        C'est une authentification par mot de passe
278
279        \pause
280        \item Last login: \ldots
281
282        D'où je me suis connecter la derniÚre fois
283    \end{itemize}
284    \end{block}
285\end{frame}
286
287\begin{frame}[fragile]
288    \frametitle{Obtenir l'aide}
289    \begin{block}{ssh --help}
290    \verb+ssh --help+
291    \pause
292    \small
293    \begin{verbatim}
294usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
295           [-D [bind_address:]port] [-e escape_char] [-F configfile]
296           [-I pkcs11] [-i identity_file]
297           [-L [bind_address:]port:host:hostport]
298           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
299           [-R [bind_address:]port:host:hostport] [-S ctl_path]
300           [-W host:port] [-w local_tun[:remote_tun]]
301           [user@]hostname [command]
302    \end{verbatim}
303    \end{block}
304
305    \begin{block}{Man}
306        \verb+man ssh+
307
308        tapez \og{}q\fg{} pour quitter \verb+man+
309    \end{block}
310\end{frame}
311
312
313\begin{frame}[fragile]
314    \frametitle{Rendre SSH plus verbeux}
315
316    \begin{exampleblock}{ssh -v}
317        \small
318        \begin{verbatim}
319OpenSSH_6.2p2, OpenSSL 1.0.1e 11 Feb 2013
320debug1: Reading configuration data /home/olivier/.ssh/config
321debug1: /home/olivier/.ssh/config line 38: Applying options for *
322debug1: Reading configuration data /etc/ssh/ssh_config
323debug1: /etc/ssh/ssh_config line 49: Applying options for *
324debug1: Connecting to cartman.latmos.ipsl.fr [194.254.39.137] port 22.
325debug1: Connection established.
326debug1: identity file /home/olivier/.ssh/identity type 0
327debug1: identity file /home/olivier/.ssh/identity-cert type -1
328debug1: identity file /home/olivier/.ssh/id_rsa type -1
329debug1: identity file /home/olivier/.ssh/id_dsa type 2
330debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
331debug1: match: OpenSSH_5.9 pat OpenSSH_5*
332debug1: Enabling compatibility mode for protocol 2.0
333debug1: Local version string SSH-2.0-OpenSSH_6.2
334        \end{verbatim}
335    \end{exampleblock}
336\end{frame}
337
338\begin{frame}[fragile]
339    \frametitle{le point ssh}
340    \begin{exampleblock}{En avez vous un ?}
341        Tapez: \verb+ls ~/.ssh+
342
343        Que dit-il ?
344    \end{exampleblock}
345
346    \begin{block}{Contenu classique}
347        \begin{itemize}
348            \item \verb+known_hosts+: machines connues
349                \pause
350            \item \verb+authorized_keys+: clef autorisée à se connecter sur votre
351                compte
352                \pause
353            \item \verb+config+ votre configuration de ssh+
354                \pause
355            \item \verb+id_rsa.pub+ ou \verb+id_dsa.pub+: clef publiques
356            \item \verb+id_rsa+ ou \verb+id_dsa+: clefs privées
357                \pause
358            \item \verb+identity+, \verb+identity.pub+ vous avez utilisé un
359                trÚs vieux ssh
360        \end{itemize}
361    \end{block}
362\end{frame}
363
364\section{Gérer ses clefs}
365
366\begin{frame}[fragile]
367    \frametitle{S'y retrouver}
368
369    \begin{block}{Clefs asymétriques}
370        Un trousseau composer de 2 clefs qui vont ensemble (générées en même
371        temps)
372        \pause
373        \begin{itemize}
374            \item clef privée
375                \begin{itemize}
376                    \item qu'on ne donne pas
377                    \item sert à déchiffrer et signer
378                \end{itemize}
379                \pause
380            \item clef publique
381                \begin{itemize}
382                    \item qu'on donne
383                    \item sert à chiffrer et valider une signature
384                \end{itemize}
385        \end{itemize}
386    \end{block}
387    \begin{block}{Les fichiers:}
388        \begin{tabular}{|c|l|l|}
389            \hline
390            type&publique&privé\\
391            \hline
392            RSA&\verb+id_rsa.pub+&\verb+id_rsa+\\
393            DSA&\verb+id_dsa.pub+&\verb+id_dsa+\\
394            \hline
395        \end{tabular}
396    \end{block}
397\end{frame}
398
399\begin{frame}[fragile]
400    \frametitle{Générer une paire de clef}
401   
402    \begin{exampleblock}{Lancer la génération}
403    Tapez: \verb+ssh-keygen+
404    \end{exampleblock}
405    \vfill
406
407    \begin{alertblock}{Veilles version de ssh}
408    NB: avec certaines version il faut préciser le type de clef:
409    \verb+ssh-keygen -t rsa+ ou \verb+ssh-keygen -t dsa+
410    \end{alertblock}
411\end{frame}
412
413\begin{frame}[fragile]
414    \frametitle{Générer une paire de clef}
415   
416    \begin{block}{Message}
417    \begin{verbatim}
418Generating public/private rsa key pair.
419Enter file in which to save the key
420    (/home/thauvin/.ssh/id_rsa):
421    \end{verbatim}
422
423    Tapez sur \og{}Entrée\fg{}
424    \end{block}
425    \pause
426    \begin{block}{Message}
427    \begin{verbatim}
428Enter passphrase (empty for no passphrase):
429Enter same passphrase again:
430    \end{verbatim}
431    \pause
432    Tapez et confirmez un mot de passe.
433    \end{block}
434\end{frame}
435
436\begin{frame}[fragile]
437    \frametitle{Sortie de ssh-keygen}
438\small
439\begin{verbatim}
440Your identification has been saved in
441    /home/thauvin/.ssh/id_rsa.
442Your public key has been saved in
443    /home/thauvin/.ssh/id_rsa.pub.
444The key fingerprint is:
44561:8b:ca:25:82:40:cd:7f:1b:92:26:c2:13:55:dd:9c
446    thauvin@adler.latmos.ipsl.fr
447The key's randomart image is:
448+--[ RSA 2048]----+
449| .+.... o .      |
450|.. o   . E       |
451|o . . . o        |
452|.= . = = o       |
453|. + + = S        |
454[...]
455\end{verbatim}
456\end{frame}
457
458\begin{frame}[fragile]
459    \frametitle{Se connecter avec clef}
460
461    \begin{block}{Fichier authorized\_keys}
462        \begin{verbatim}
463ssh-rsa AAAne437b[...] user@machine1
464ssh-dss AAAne437b[...] user@machine2+
465\end{verbatim}
466
467        \begin{itemize}
468            \item \verb+ssh-rsa+ ou \verb+ssh-dss+: le type de clef
469            \item \verb+AAAne437b+\ldots: la clef publique en hexadécimal
470            \item \verb+user@machine+: une description
471        \end{itemize}
472    \end{block}
473    \pause
474    \vfill
475    \begin{block}{En résumé}
476        Le fichier \verb+authorized_keys+ est fabriqué à partir du contenu des
477        fichiers\ldots\pause \verb+id_rsa.pub+ ou \verb+id_dsa.pub+.
478    \end{block}
479\end{frame}
480
481\begin{frame}[fragile]
482    \frametitle{Se connecter sans mot de passe}
483    \begin{block}{Copier votre clef}
484        \begin{enumerate}
485            \item ouvrez un nouvelle fenetre terminal
486                \pause
487            \item connectez-vous sur sirocco:
488                \verb+ssh <LOGIN>@sirocco.aero.jussieu.fr+
489                \pause
490            \item créé si necessaire votre ~/.ssh
491                \verb+mkdir ~/.ssh+ puis \verb+chmod 700 ~/.ssh+
492            \pause
493            \item Ã©diter le fichier \verb+~/.ssh/authorized_keys+ et ajouter
494                votre clef publique {\bf sur une seule ligne}, sauvegardez et quittez
495            \pause
496            \item déconnectez-vous de sirocco
497        \end{enumerate}
498    \end{block}
499    \pause
500
501    \begin{block}{Test}
502        Depuis cartman tapez \verb+ssh <LOGIN>@sirocco.aero.jussieu.fr+.
503
504        Que se passe-t-il ?
505    \end{block}
506\end{frame}
507
508\begin{frame}[fragile]
509    \frametitle{ssh-agent}
510    \begin{block}{RÃŽle}
511        Retenir la clef privée en clair pour ne plus avoir à taper sa
512        passphrase:
513        \pause
514        \begin{itemize}
515            \item la clef reste chiffrée sur le disque
516            \item la clef en clair n'existe qu'en mémoire (extinsion = clef
517                illisible)
518        \end{itemize}
519    \end{block}
520    \pause
521
522    \begin{block}{Lancer ssh-agent à la main}
523        \begin{enumerate}
524            \item Lancer ssh-agent:
525                \verb+eval $(ssh-agent)+
526            \pause
527            \item déverouiller la clef pour ssh-agent:
528                \verb+ssh-add+
529                \pause
530            \item réessayez de faire un ssh vers sirocco
531        \end{enumerate}
532    \end{block}
533    \pause
534    \begin{alertblock}{Rien à faire sous linux}
535            ssh-agent est démarré à la connection si une clef est detectée
536    \end{alertblock}
537\end{frame}
538
539\section{Forward de Port}
540
541\begin{frame}
542    \frametitle{Port forwarding: le problÚme initial}
543    \includegraphics[width=1\linewidth]{portforwarding1}
544\end{frame}
545
546\begin{frame}
547    \frametitle{Port forwarding: Lancer ssh}
548    \includegraphics[width=1\linewidth]{portforwarding2}
549\end{frame}
550
551\begin{frame}
552    \frametitle{Port forwarding: Se connecter au service voulu}
553    \includegraphics[width=1\linewidth]{portforwarding3}
554\end{frame}
555
556\begin{frame}
557    \frametitle{Port Forwarding: mise en pratique}
558
559    \begin{block}{Besoin initial}
560        \begin{itemize}
561            \item https://resa-latmos.ipsl.fr/
562            \item Port: https donc 443 (http = 80)
563        \end{itemize}
564    \end{block}
565    \pause
566    \vfill
567    \begin{block}{La commande ssh}
568        \begin{itemize}
569            \item serveur ssh: cartman.latmos.ipsl.fr
570                \pause
571            \item port local: un port libre entre 1025 et 65535
572        \end{itemize}
573    \end{block}
574\end{frame}
575
576\begin{frame}[fragile]
577    \frametitle{Port Forwarding: mise en pratique}
578
579    \begin{exampleblock}{Lancer ssh}
580        \begin{itemize}
581            \item ouvrez une nouvelle console
582            \item lancez ssh (sur une seule ligne):
583                \begin{verbatim}
584ssh -L 2080:resa-ovsq.latmos.ipsl.fr:443
585    <LOGIN>@cartman.latmos.ipsl.fr+
586                \end{verbatim}
587        \end{itemize}
588    \end{exampleblock}
589    \pause
590    \vfill
591    \begin{block}{Se connecter au site}
592        \begin{itemize}
593            \item Lancer un navigateur
594            \item aller sur le site \verb+https://localhost:2080/+
595        \end{itemize}
596    \end{block}
597\end{frame}
598
599\begin{frame}
600    \frametitle{Port Forwarding: Remarques}
601
602    \begin{block}{Lancer ssh}
603        \begin{itemize}
604            \item c'est bien le serveur ssh qui se connecte
605                \pause
606            \item le chiffrement ajoute de la latence et necessite du temps CPU
607        \end{itemize}
608    \end{block}
609    \pause
610    \vfill
611    \begin{block}{Les problÚmes}
612        \begin{itemize}
613            \item Ne marche pas avec certains site web (Virtual Host)
614                \pause
615            \item Certains services initie plusieurs connections:
616                \begin{itemize}
617                    \item ftp
618                    \item streaming video
619                    \item visioconf
620                    \item \ldots
621                \end{itemize}
622        \end{itemize}
623    \end{block}
624\end{frame}
625
626\section{Configuration}
627
628\begin{frame}[fragile]
629    \frametitle{Le fichier de configuration}
630    \begin{block}{Format}
631        La configuration coté utilisateur se trouve dans le \verb+~/.ssh/config+
632
633        Documentation: \verb+man ssh_config+
634
635        \begin{itemize}
636            \item une option par ligne
637            \item \verb+Host+ pour restreindre à un groupe de machine
638        \end{itemize}
639    \end{block}
640    \pause
641
642    \begin{exampleblock}{Exemple}
643\begin{verbatim}
644ForwardAgent yes
645
646Host *.latmos.ipsl.fr
647User thauvin
648
649Host *.aero.jussieu.fr
650User thauvin
651\end{verbatim}
652    \end{exampleblock}
653\end{frame}
654
655\begin{frame}
656    \frametitle{Exercice}
657   
658    \begin{block}{Ennoncé}
659    \end{block}
660
661\end{frame}
662
663\section{Scripter}
664
665\section{Les problÚmes courants}
666
667\include{cc_by_sa}
668
669\begin{frame}
670\frametitle{Merci}
671\center{
672\huge{Questions ?}
673
674\huge{Boule de poils:}
675
676\includegraphics[width=0.4\linewidth]{Abrichatons}
677
678\small{(c) Wikipédia}
679}
680\end{frame}
681
682\end{document}
Note: See TracBrowser for help on using the repository browser.