Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente | |||
|
securite:bonnespratiques:sshrenforce [2023/03/10 09:55] pinvidic-h supprimée |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Utilisation de clés SSH ====== | ||
| - | L' | ||
| - | |||
| - | On va voir également comment protéger sa clé SSH privée par une phrase de sécurité (// | ||
| - | ===== 1 - Principe ===== | ||
| - | |||
| - | Le principe repose sur l' | ||
| - | |||
| - | ==== 1.1 - Création d'une paire de clé sous Linux ==== | ||
| - | |||
| - | Par défaut, c'est une clé RSA 2048bits qui est générée. C'est aujourd' | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | Generating public/ | ||
| - | Enter file in which to save the key (/ | ||
| - | Enter passphrase (empty for no passphrase): | ||
| - | Enter same passphrase again: | ||
| - | Your identification has been saved in / | ||
| - | Your public key has been saved in / | ||
| - | The key fingerprint is: | ||
| - | SHA256: | ||
| - | The key's randomart image is: | ||
| - | +---[RSA 2048]----+ | ||
| - | | E| | ||
| - | | . | | ||
| - | | | ||
| - | |.. o . o| | ||
| - | |+ = o | ||
| - | | O * . .o + . . .| | ||
| - | |.o* + +o = . . | | ||
| - | |oo+o =+=*.o | ||
| - | |o+ .==*+++ | ||
| - | +----[SHA256]-----+ | ||
| - | herve@ubuntu: | ||
| - | total 16 | ||
| - | drwx------ | ||
| - | drwxr-xr-x 22 herve rv 4096 sept. 23 12:42 .. | ||
| - | -rw------- | ||
| - | -rw-r--r-- | ||
| - | |||
| - | </ | ||
| - | |||
| - | Il reste à copier la clé publique sur les systèmes distants. | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | / | ||
| - | The authenticity of host ' | ||
| - | ECDSA key fingerprint is SHA256: | ||
| - | Are you sure you want to continue connecting (yes/no)? yes | ||
| - | / | ||
| - | / | ||
| - | pinvidic-h@remote' | ||
| - | |||
| - | Number of key(s) added: 1 | ||
| - | |||
| - | Now try logging into the machine, with: " | ||
| - | and check to make sure that only the key(s) you wanted were added. | ||
| - | </ | ||
| - | |||
| - | |||
| - | La connexion se fait sans demande de mot de passe: | ||
| - | < | ||
| - | herve@ubuntu: | ||
| - | Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-112-generic x86_64) | ||
| - | |||
| - | pinvidic-h@remote: | ||
| - | </ | ||
| - | |||
| - | ==== 1.2 - Création d'une paire de clé sous Windows ==== | ||
| - | |||
| - | Nous allons prendre exemple sur la suite d' | ||
| - | |||
| - | {{: | ||
| - | |||
| - | Les clés SSH peuvent être générées à l'aide de puttygen. Elles seront dans un format utilisable par Putty ou Kitty Portable. L' | ||
| - | |||
| - | |||
| - | {{: | ||
| - | |||
| - | Pour protéger la clé privée, on définit une // | ||
| - | |||
| - | On peut installer la clé publique dans les clés SSH autorisées sur les systèmes distants. | ||
| - | Pour cela, on transfère la clé public sur le serveur (linux) et on convertit la clé Putty au format SSH-RSA : | ||
| - | < | ||
| - | ssh-keygen -i -f putty1.ppk.pub > putty1.rsa.pub | ||
| - | cat putty1.rsa.pub >> ~/ | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== 2 - Renforcer les accès aux systèmes Linux ===== | ||
| - | |||
| - | Configurer le système " | ||
| - | - passer à une base de comptes LDAP (en ldaps) | ||
| - | - autoriser seulement un groupe LDAP à se connecter | ||
| - | - configurer SUDO pour ce groupe | ||
| - | - Renforcer la configuration SSH | ||
| - | |||
| - | |||
| - | Modifier / | ||
| - | |||
| - | < | ||
| - | # Désactiver l' | ||
| - | ChallengeResponseAuthentication no | ||
| - | PasswordAuthentication no | ||
| - | UsePAM no | ||
| - | |||
| - | # interdire les connexions distantes à root : | ||
| - | PermitRootLogin no | ||
| - | |||
| - | # ou n' | ||
| - | PermitRootLogin prohibit-password | ||
| - | AllowUsers root[at]172.20.13.* | ||
| - | |||
| - | # restreindre les accès au groupe ' | ||
| - | AllowGroups admins | ||
| - | |||
| - | </ | ||
| - | |||
| - | ===== 3 - Passphrase et agent SSH ===== | ||
| - | |||
| - | Si l' | ||
| - | |||
| - | L' | ||
| - | |||
| - | L' | ||
| - | |||
| - | |||
| - | ==== 3.1 Ajouter/ | ||
| - | |||
| - | Note: cela aurait pû être fait lors de la création de la clé SSH. | ||
| - | |||
| - | **Illustration en ligne de commande:** | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | Enter new passphrase (empty for no passphrase): | ||
| - | Enter same passphrase again: | ||
| - | Your identification has been saved with the new passphrase. | ||
| - | </ | ||
| - | |||
| - | |||
| - | A la première utilisation de sa clé privée (ou pour chaque utilisation si l' | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | Enter passphrase for key '/ | ||
| - | </ | ||
| - | |||
| - | Si l' | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | SSH_AUTH_SOCK=/ | ||
| - | SSH_AGENT_PID=15835; | ||
| - | echo Agent pid 15835; | ||
| - | |||
| - | herve@ubuntu: | ||
| - | Enter passphrase for / | ||
| - | Identity added: / | ||
| - | |||
| - | </ | ||
| - | |||
| - | A partir de maintenant, les connexion utilisant la clé privée ne demanderont plus la passphrase : | ||
| - | |||
| - | < | ||
| - | herve@ubuntu: | ||
| - | Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-112-generic x86_64) | ||
| - | |||
| - | pinvidic-h@remote: | ||
| - | </ | ||
| - | |||
| - | **Illustration avec l' | ||
| - | |||
| - | L' | ||
| - | |||
| - | {{securite: | ||
| - | |||
| - | \\ | ||
| - | |||
| - | Pour effacer les passphrases chargées dans l' | ||
| - | < | ||
| - | ssh-add -D | ||
| - | </ | ||
| - | |||
| - | **Illustration avec putty agent: ** | ||
| - | |||
| - | On lance le programme pageant.exe | ||
| - | |||
| - | {{: | ||
| - | |||
| - | On charge la clé générée par puttygen et on renseigne la // | ||
| - | |||
| - | {{: | ||
| - | {{: | ||
| - | |||
| - | On se connecte avec putty ou kitty sur le serveur distant sans mot de passe ou passphrase grâce à l' | ||
| - | |||
| - | {{: | ||
| - | |||
| - | ==== 3.2 - Limiter les accès SSH par IP avec des clés ==== | ||
| - | |||
| - | Il peut être judicieux de limiter la provenance des connexions SSH utilisant des clés à certaines IP. Cela peut être le cas pour l' | ||
| - | |||
| - | Le fichier ~/ | ||
| - | < | ||
| - | |||
| - | On peut avoir par exemple : | ||
| - | < | ||
| - | ssh-rsa AAAAB3Nza...== pinvidic-h@pcbureau 20171225 | ||
| - | from=" | ||
| - | from=" | ||
| - | </ | ||
| - | |||
| - | Attention : il ne faut pas introduire de risque d' | ||
| - | donner l' | ||
| - | |||
| - | Dans le //pattern// from=" | ||
| - | |||
| - | |||
| - | ===== 4 - Quelques articles à lire ===== | ||
| - | |||
| - | * [[https:// | ||
| - | * [[http:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||