SSH » Historique » Version 42
Version 21 (Laurent GUERBY, 23/07/2013 13:11) → Version 42/53 (bikepunk bikepunk, 14/11/2014 15:38)
{{>toc}} {{>toc}}
h1. SSH
TODO: tutorial sur l'outil ssh depuis zéro zéro
TODO: avancé avancé redirection de port, ssh-agent pour rebondir sur des machines
http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html
h1. Le Secure SHell (SSH)
h2. Introduction
Le SSH est un protocole permettant de créer créer un tunnel entre deux machines ou plus. La création création d'un tunnel consiste en l'encapsulation par un protocole réseau réseau d'un autre protocole réseau réseau de même même couche (modèle (modèle OSI) ou supérieur, supérieur, ainsi les données échangées données échangées dans le datagramme seront illisibles car protégées protégées par le protocole ssh qui chiffrera le contenu. Ce protocole peut-être utilisé peut-être utilisé par exemple lié lié avec des technologies comme le Virtual Private Network (VPN).
!http://img41.imageshack.us/img41/5632/schemassh.jpg!
La technique de tunnel pour chiffrer les communications sera utilisée utilisée pour assurer la confidentialité, l’intégrité confidentialité, lâintégrité et l'authenticité l'authenticité de la dite communication lorsque les communications transiteront sur un réseau réseau non fiable (internet par exemple). En effet, le tunnel prendra tout son sens lors de connexions entre sites distants échangeant échangeant des informations. Plusieurs protocoles sont utilisables afin d'établir d'établir des connexions sécurisés; sécurisés; voici quelques exemples: L2TP, TLS, IPSEC... SSH dans sa deuxième deuxième version intègre intègre un protocole de systèmes systèmes de fichiers, Ssh File Tranfert Protocole (SFTP, à à ne pas confondre avec FTPS (FTP over SSL)); il est aussi utilisé utilisé pour la commande scp.
SSH est un protocole mais aussi un programme basé basé sur ce protocole qui permet de connecter les machines entre elles en créant créant un tunnel. Afin d'établir d'établir la connexion entre les deux machines, ssh a besoin de vérifier l'identité vérifier l'identité de la personne qui essaye d'établir d'établir la connexion. Pour cela SSH peut utiliser deux méthodes: établir méthodes: établir la connexion et ouvrir un prompt d'authentification où où l'utilisateur devra entrer son login et son mot de passe; ou il peut utiliser un crypto-système asymétrique, crypto-système asymétrique, pour cette dernière dernière les clés clés publiques devront être distribuées être distribuées sur toutes les machines sur lesquelles l'utilisateur désirera désirera se connecter.
h2. Configuration
Afin d'établir d'établir une connexion entre deux machines via SSH il existe plusieurs méthodes méthodes diverses et variées. variées. Tous d'abord, on peut commencer par dissocier les systèmes systèmes Windows, Linux et Mac. Je vais présenter présenter les différentes manières différentes manières de se connecter à à une machine distante (serveur linux) via SSH sur ces différentes différentes plate-formes. Dans un souci de permettre une meilleure compréhension compréhension voici un petit bilan d'information présentant présentant les futures configurations à à venir:
*Configuration du Serveur*
Nom: LCOSTST01
OS: centos
*Configuration Windows*
Nom: pc01
OS: Windows seven
Logiciel: putty
*Configuration Linux*
Nom: LCOSTST02
OS: CentOS
Logiciel: ssh
*Configuration Mac*
en attente...
h2. le service sshd
Afin de nous permettre d'affiner la configuration de notre serveur et optimiser son système système de sécurité sécurité nous pouvons paramétrer paramétrer le fichier de configuration. Ce fichier est placer dans le répertoire répertoire "/etc/ssh/" (appellé (appellé ssh_config sous red Hat), il contient un certains nombre de paramètre paramètre (les paramètres commenté paramètres commenté (ligne commencant par un "#" sont des paramètre paramètre par défaut) défaut) que nous pouvons juger pertinent de modifier:
Port [22]: Désigne Désigne le port sur lequel le démon démon ssh écoute. écoute.
HostKey [/etc/ssh/ssh_host_key]: définit définit l'emplacement des clés. clés.
*Quelques petits conseils*
Voici quelques conseils de paramètrage paramètrage de sshd pour la sécurité: sécurité:
PasswordAuthentication [yes/no]: Une fois les clés clés ajouter avec succès succès nous pouvons désactiver désactiver la connexion par mot de passe car les clé clé suffiront à assuré à assuré la connexion et empêchera empêchera une personne à à tenter d'attaquer les mot de passe ("PasswordAuthentication no").
PermitRootLogin [yes/no]: Il peut être être utile d'empêcher d'empêcher les utilisateurs de se connecter directement avec le compte root ce qu'ils pourront ensuite via la commande su. De cette manière manière un utilisateur ne peut pas se loger directement sur le serveur avec le compte root (PermitRootLogin no").
AllowUsers [<utilisateur>]: Il est possible aussi de rajouter une liste d'utilisateur qui seront les seuls à Ã pouvoir se loger sur le serveur.
ListenAddress [0.0.0.0]: permet de définir définir sur quel carte réseau réseau le démon démon doit écouter. écouter.
h2. Utilisation
h2. *Windows*
Afin d'établir d'établir une connexion SSH entre l'utilisateur et LCOSTST01 nous allons utiliser l'utilitaire Putty. Une fois l'utilitaire lancé, lancé, nous allons devoir entrer le nom de la machine ou son adresse IP puis le port ciblé. ciblé.
!http://img339.imageshack.us/img339/9020/sshconnectionputty.png!
Etant la première première fois que nous établissons établissons une connexion vers ce serveur,avant d'établir d'établir la connexion, Putty va nous demnander s'il peut rajouter le serveur (sa signature numérique)dans numérique)dans la liste des serveurs autorisés. autorisés.
!http://img685.imageshack.us/img685/9701/sshconnectionputtyregis.png!
Une fois la connexion établie établie il ne nous reste plus qu'à qu'à nous loger sur le serveur grâce à grâce à notre identifiant.
!http://img855.imageshack.us/img855/9994/sshconnectionputtylogin.png!
Vous êtes êtes maintenant connecté à connecté à votre machine au travers d'un tunnel ssh.
h2. *Linux*
Pour permettre les connexions sous linux deux solutions s'offrent à Ã nous.
h3. *Methode de connexion par mot de passe*
La première première consiste à à se connecter directement avec le programme ssh sur la machine visée, visée, il ouvrira de cette manière manière un prompt et nous devrons nous loger avec nos identifiants. Pour ce faire nous nous logerons sous notre utilisateur sur notre machine et executerons la commande ssh.
!http://img801.imageshack.us/img801/7978/sshconnexionlinuxlogins.png!
h3. *Methode de connexion par crypto-système asymétrique* crypto-système asymétrique*
La deuxième deuxième consiste à à utiliser un crypto-système asymétrique, crypto-système asymétrique, ainsi nous créerons créerons une clé clé publique et une clé privée. clé privée. La clé privée clé privée restera sur le serveur dans son dossier (/HOMEDIR/.ssh) ainsi qu'une copie de la clé clé publique et une autre copie de la clé clé publique sera envoyée envoyée sur le serveur sur lequel on veut se connecter automatiquement, il nous suffira d'ajouter la clé clé publique à à la liste des clés autorisées. clés autorisées.
Dans un premier temps nous allons devoir créer créer la clé privée clé privée
!http://img811.imageshack.us/img811/4246/ssconnexionlinuxcreatio.png!
Maintenant que notre clé clé est créée créée nous allons devoir l'envoyer à à la machine sur laquelle nous voulons nous loger
!http://img23.imageshack.us/img23/2088/sshconnexionlinuxenvoic.png!
Nous pouvons maintenant essayer de nous loger
!http://img837.imageshack.us/img837/5267/sshconnexionlinuxfin.png!
et voilà! voilà ! Nous avons une connexion ssh automatisée automatisée sans avoir besoin d'échanger d'échanger des mots de passe ou passphrase et tout aussi sécurisée, sécurisée, nous pouvons aussi utiliser l'agent ssh pour nous connecter.
h3. *ssh-agent*
L'agent ssh (ssh-agent, lancer avec le service ssh) est un valet (service ayant pour fonction de mémoriser mémoriser les mot de passe ou passphrase afin d'automatisé d'automatisé le log d'un utilisateur) lié lié au service ssh. L'agent ssh va ouvrir un shell dans lequel il chargera (grâce à (grâce à la commande ssh-add) les clés clés et les passphrases et ainsi nous n'auront plus à à les tapés à tapés à chaque connexion.
!http://img403.imageshack.us/img403/8236/sshagent.png!
h2. Mac
En attente...
h1. Déchiffrer une "full disk encryption" avec ssh et dropbear
https://projectgus.com/2013/05/encrypted-rootfs-over-ssh-with-debian-wheezy/
https://wiki.debian.org/RescueInitramfs
h1. SSH
TODO: tutorial sur l'outil ssh depuis zéro zéro
TODO: avancé avancé redirection de port, ssh-agent pour rebondir sur des machines
http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html
h1. Le Secure SHell (SSH)
h2. Introduction
Le SSH est un protocole permettant de créer créer un tunnel entre deux machines ou plus. La création création d'un tunnel consiste en l'encapsulation par un protocole réseau réseau d'un autre protocole réseau réseau de même même couche (modèle (modèle OSI) ou supérieur, supérieur, ainsi les données échangées données échangées dans le datagramme seront illisibles car protégées protégées par le protocole ssh qui chiffrera le contenu. Ce protocole peut-être utilisé peut-être utilisé par exemple lié lié avec des technologies comme le Virtual Private Network (VPN).
!http://img41.imageshack.us/img41/5632/schemassh.jpg!
La technique de tunnel pour chiffrer les communications sera utilisée utilisée pour assurer la confidentialité, l’intégrité confidentialité, lâintégrité et l'authenticité l'authenticité de la dite communication lorsque les communications transiteront sur un réseau réseau non fiable (internet par exemple). En effet, le tunnel prendra tout son sens lors de connexions entre sites distants échangeant échangeant des informations. Plusieurs protocoles sont utilisables afin d'établir d'établir des connexions sécurisés; sécurisés; voici quelques exemples: L2TP, TLS, IPSEC... SSH dans sa deuxième deuxième version intègre intègre un protocole de systèmes systèmes de fichiers, Ssh File Tranfert Protocole (SFTP, à à ne pas confondre avec FTPS (FTP over SSL)); il est aussi utilisé utilisé pour la commande scp.
SSH est un protocole mais aussi un programme basé basé sur ce protocole qui permet de connecter les machines entre elles en créant créant un tunnel. Afin d'établir d'établir la connexion entre les deux machines, ssh a besoin de vérifier l'identité vérifier l'identité de la personne qui essaye d'établir d'établir la connexion. Pour cela SSH peut utiliser deux méthodes: établir méthodes: établir la connexion et ouvrir un prompt d'authentification où où l'utilisateur devra entrer son login et son mot de passe; ou il peut utiliser un crypto-système asymétrique, crypto-système asymétrique, pour cette dernière dernière les clés clés publiques devront être distribuées être distribuées sur toutes les machines sur lesquelles l'utilisateur désirera désirera se connecter.
h2. Configuration
Afin d'établir d'établir une connexion entre deux machines via SSH il existe plusieurs méthodes méthodes diverses et variées. variées. Tous d'abord, on peut commencer par dissocier les systèmes systèmes Windows, Linux et Mac. Je vais présenter présenter les différentes manières différentes manières de se connecter à à une machine distante (serveur linux) via SSH sur ces différentes différentes plate-formes. Dans un souci de permettre une meilleure compréhension compréhension voici un petit bilan d'information présentant présentant les futures configurations à à venir:
*Configuration du Serveur*
Nom: LCOSTST01
OS: centos
*Configuration Windows*
Nom: pc01
OS: Windows seven
Logiciel: putty
*Configuration Linux*
Nom: LCOSTST02
OS: CentOS
Logiciel: ssh
*Configuration Mac*
en attente...
h2. le service sshd
Afin de nous permettre d'affiner la configuration de notre serveur et optimiser son système système de sécurité sécurité nous pouvons paramétrer paramétrer le fichier de configuration. Ce fichier est placer dans le répertoire répertoire "/etc/ssh/" (appellé (appellé ssh_config sous red Hat), il contient un certains nombre de paramètre paramètre (les paramètres commenté paramètres commenté (ligne commencant par un "#" sont des paramètre paramètre par défaut) défaut) que nous pouvons juger pertinent de modifier:
Port [22]: Désigne Désigne le port sur lequel le démon démon ssh écoute. écoute.
HostKey [/etc/ssh/ssh_host_key]: définit définit l'emplacement des clés. clés.
*Quelques petits conseils*
Voici quelques conseils de paramètrage paramètrage de sshd pour la sécurité: sécurité:
PasswordAuthentication [yes/no]: Une fois les clés clés ajouter avec succès succès nous pouvons désactiver désactiver la connexion par mot de passe car les clé clé suffiront à assuré à assuré la connexion et empêchera empêchera une personne à à tenter d'attaquer les mot de passe ("PasswordAuthentication no").
PermitRootLogin [yes/no]: Il peut être être utile d'empêcher d'empêcher les utilisateurs de se connecter directement avec le compte root ce qu'ils pourront ensuite via la commande su. De cette manière manière un utilisateur ne peut pas se loger directement sur le serveur avec le compte root (PermitRootLogin no").
AllowUsers [<utilisateur>]: Il est possible aussi de rajouter une liste d'utilisateur qui seront les seuls à Ã pouvoir se loger sur le serveur.
ListenAddress [0.0.0.0]: permet de définir définir sur quel carte réseau réseau le démon démon doit écouter. écouter.
h2. Utilisation
h2. *Windows*
Afin d'établir d'établir une connexion SSH entre l'utilisateur et LCOSTST01 nous allons utiliser l'utilitaire Putty. Une fois l'utilitaire lancé, lancé, nous allons devoir entrer le nom de la machine ou son adresse IP puis le port ciblé. ciblé.
!http://img339.imageshack.us/img339/9020/sshconnectionputty.png!
Etant la première première fois que nous établissons établissons une connexion vers ce serveur,avant d'établir d'établir la connexion, Putty va nous demnander s'il peut rajouter le serveur (sa signature numérique)dans numérique)dans la liste des serveurs autorisés. autorisés.
!http://img685.imageshack.us/img685/9701/sshconnectionputtyregis.png!
Une fois la connexion établie établie il ne nous reste plus qu'à qu'à nous loger sur le serveur grâce à grâce à notre identifiant.
!http://img855.imageshack.us/img855/9994/sshconnectionputtylogin.png!
Vous êtes êtes maintenant connecté à connecté à votre machine au travers d'un tunnel ssh.
h2. *Linux*
Pour permettre les connexions sous linux deux solutions s'offrent à Ã nous.
h3. *Methode de connexion par mot de passe*
La première première consiste à à se connecter directement avec le programme ssh sur la machine visée, visée, il ouvrira de cette manière manière un prompt et nous devrons nous loger avec nos identifiants. Pour ce faire nous nous logerons sous notre utilisateur sur notre machine et executerons la commande ssh.
!http://img801.imageshack.us/img801/7978/sshconnexionlinuxlogins.png!
h3. *Methode de connexion par crypto-système asymétrique* crypto-système asymétrique*
La deuxième deuxième consiste à à utiliser un crypto-système asymétrique, crypto-système asymétrique, ainsi nous créerons créerons une clé clé publique et une clé privée. clé privée. La clé privée clé privée restera sur le serveur dans son dossier (/HOMEDIR/.ssh) ainsi qu'une copie de la clé clé publique et une autre copie de la clé clé publique sera envoyée envoyée sur le serveur sur lequel on veut se connecter automatiquement, il nous suffira d'ajouter la clé clé publique à à la liste des clés autorisées. clés autorisées.
Dans un premier temps nous allons devoir créer créer la clé privée clé privée
!http://img811.imageshack.us/img811/4246/ssconnexionlinuxcreatio.png!
Maintenant que notre clé clé est créée créée nous allons devoir l'envoyer à à la machine sur laquelle nous voulons nous loger
!http://img23.imageshack.us/img23/2088/sshconnexionlinuxenvoic.png!
Nous pouvons maintenant essayer de nous loger
!http://img837.imageshack.us/img837/5267/sshconnexionlinuxfin.png!
et voilà! voilà ! Nous avons une connexion ssh automatisée automatisée sans avoir besoin d'échanger d'échanger des mots de passe ou passphrase et tout aussi sécurisée, sécurisée, nous pouvons aussi utiliser l'agent ssh pour nous connecter.
h3. *ssh-agent*
L'agent ssh (ssh-agent, lancer avec le service ssh) est un valet (service ayant pour fonction de mémoriser mémoriser les mot de passe ou passphrase afin d'automatisé d'automatisé le log d'un utilisateur) lié lié au service ssh. L'agent ssh va ouvrir un shell dans lequel il chargera (grâce à (grâce à la commande ssh-add) les clés clés et les passphrases et ainsi nous n'auront plus à à les tapés à tapés à chaque connexion.
!http://img403.imageshack.us/img403/8236/sshagent.png!
h2. Mac
En attente...
h1. Déchiffrer une "full disk encryption" avec ssh et dropbear
https://projectgus.com/2013/05/encrypted-rootfs-over-ssh-with-debian-wheezy/
https://wiki.debian.org/RescueInitramfs