Dans ce didacticiel, nous allons vous montrer comment sécuriser SSH à l'aide de l'authentification à deux facteurs sur Ubuntu 16.04 LTS. Pour ceux d'entre vous qui ne le savaient pas, Sécuriser SSH avec l'authentification à deux facteurs à l'aide La vérification en deux étapes de Google Authenticator (également connue sous le nom d'authentification à deux facteurs, en abrégé TFA) est un processus en deux étapes pour vérifier l'identité d'une entité essayant d'accéder à des services sur un ordinateur ou sur un réseau. l'authentification multifacteur qui peut impliquer un seul des trois facteurs d'authentification (un facteur de connaissance, un facteur de possession et un facteur d'héritage) pour les deux étapes.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple et suppose que vous s'exécutent dans le compte root, sinon vous devrez peut-être ajouter 'sudo
‘ aux commandes pour obtenir les privilèges root. Je vais vous montrer le SSH sécurisé étape par étape en utilisant l'authentification à deux facteurs sur un serveur Ubuntu 16.04 (Xenial Xerus).
Prérequis
- Un serveur exécutant l'un des systèmes d'exploitation suivants :Ubuntu 16.04 et toute autre distribution basée sur Debian comme Linux Mint.
- Il est recommandé d'utiliser une nouvelle installation du système d'exploitation pour éviter tout problème potentiel.
- Accès SSH au serveur (ou ouvrez simplement Terminal si vous êtes sur un ordinateur).
- Un
non-root sudo user
ou l'accès à l'root user
. Nous vous recommandons d'agir en tant qu'non-root sudo user
, cependant, car vous pouvez endommager votre système si vous ne faites pas attention lorsque vous agissez en tant que root.
Sécuriser SSH à l'aide de l'authentification à deux facteurs sur Ubuntu 16.04 LTS
Étape 1. Tout d'abord, assurez-vous que tous vos packages système sont à jour en exécutant le suivant apt-get
commandes dans le terminal.
sudo apt-get update sudo apt-get upgrade
Étape 2. Installation de Google Authenticator.
Pour installer le package sur Ubuntu, exécutez la commande suivante :
apt-get install libpam-google-authenticator
L'étape suivante consiste à obtenir le code de vérification. C'est une commande très simple pour obtenir le code de vérification et les codes à gratter en répondant simplement à des questions simples du serveur qu'il posera Vous pouvez effectuer cette étape en exécutant la commande suivante :
google-authenticator
Vous serez invité à répondre à quelques questions ; répondez aux deux premières questions par oui (y) :
Do you want authentication tokens to be time-based (y/n) y
Un gros code QR sera généré dans votre terminal. Vous pouvez scanner le code avec l'application d'authentification sur votre téléphone ou tablette Android/iOS/Windows ou entrer le secret clé générée à l'écran.
Des codes à gratter d'urgence seront également générés. Vous pouvez utiliser ces codes pour vous authentifier au cas où vous perdriez votre appareil mobile :
Your emergency scratch codes are: 80461001 68335920 89765548 12485672 11145603
Enregistrez les paramètres d'authentification pour l'utilisateur root en répondant OUI à la question suivante :
Do you want me to update your "/root/.google_authenticator" file (y/n) y
Ensuite, vous pouvez configurer l'authentificateur pour générer des mots de passe à usage unique. Au cours des 30 dernières secondes, tous les mots de passe générés peuvent être utilisés une seule fois. Répondez y pour créer le fichier qui stocke ces paramètres :
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
Vous pouvez utiliser le paramètre suivant si vous rencontrez des problèmes de synchronisation de l'heure sur vos appareils, nous n'utiliserons donc pas cette option :
By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n
Le paramètre suivant empêche les attaques par force brute. Vous n'aurez que trois chances toutes les 30 secondes d'entrer le mot de passe correct :
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
Félicitations ! Vous avez fini de générer votre clé et de l'ajouter à votre client, mais une configuration supplémentaire est nécessaire avant que ces paramètres entrent en vigueur.
L'étape suivante consiste à configurer les paramètres d'authentification dans openSSH. Pour ce faire, ouvrez le "/etc/pam.d/sshd
” fichier et ajoutez la ligne suivante à la fin du fichier :
### nano /etc/pam.d/sshd auth required pam_google_authenticator.so
Enregistrez les modifications, ouvrez le "/etc/ssh/sshd_config
” et activez l'authentification Challenge-Response :
### nano /etc/ssh/sshd_config ChallengeResponseAuthentication yes
Enfin, enregistrez le fichier et redémarrez le serveur SSH pour que les modifications prennent effet :
systemctl restart ssh
Félicitations ! Vous avez réussi à sécuriser SSH. Merci d'avoir utilisé ce didacticiel pour sécuriser SSH à l'aide de l'authentification à deux facteurs sur le système Ubuntu 16.04 LTS (Xenial Xerus). Pour obtenir de l'aide supplémentaire ou des informations utiles, nous vous recommandons vous invite à consulter le site Web officiel de SSH.