Quelles sont les bonnes pratiques pour accéder en toute sécurité à mon instance Linux EC2 à l'aide de SSH tout en évitant les accès non autorisés ?

Date de la dernière mise à jour : 04/09/2020

Je souhaite accéder à mon instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de SSH. Quelles sont les bonnes pratiques pour assurer la protection de mon instance et éviter les accès non autorisés lors de l'utilisation de SSH ?

Solution

Remarque : exécutez les commandes suivantes avec des privilèges racine. Exécutez la commande sudo -i pour devenir l'utilisateur racine.

Ne pas autoriser l'utilisateur racine à utiliser un terminal SSH

Il s'agit de la valeur par défaut des AMI fournies par Amazon et de la plupart des fournisseurs d'AWS Marketplace. Si votre instance permet à l'utilisateur racine de se connecter, procédez comme suit pour refuser l'accès.

1.    Ajoutez un * (astérisque) au champ réservé au mot de passe dans le fichier /etc/shadow pour invalider le mot de passe de l'utilisateur racine :

Modifiez le fichier avec vipw -s.

La première ligne est généralement la ligne de l'utilisateur racine. Modifiez la ligne de l'utilisateur racine comme suit :

root:*LOCK*:14600::::::

2.    Modifiez le fichier de configuration du démon SSH à l'aide d'un éditeur tel que l'éditeur vi :

vi /etc/ssh/sshd_config

Assurez-vous que la ligne suivante est présente et non commentée. Cette ligne refuse l'autorisation de connexion à l'utilisateur racine.

PermitRootLogin no

3.    Redémarrez le démon SSH :

service sshd restart

Pour plus d'informations sur les autres paramètres de l'option PermitRootLogin, consultez le serveur de pages du manuel OpenBSD sur le site Web man.openbsd.org.

S'assurer que tous les utilisateurs se connectent à l'aide d'une paire de clés SSH, puis désactiver l'authentification par mot de passe

La configuration par défaut pour des AMI fournies par Amazon est la connexion à l'aide d'une paire de clés SSH avec l'authentification par mot de passe désactivée. Si vous avez modifié votre instance, revenez à la configuration par défaut à l'aide des commandes suivantes :

1.    Utilisez l'éditeur vi ou l'éditeur de votre choix pour accéder au fichier sshd_config :

vi /etc/ssh/sshd_config

2.    Vérifiez que la ligne suivante est présente et non commentée :

PasswordAuthentication no

3.    Redémarrez le démon SSH :

service sshd restart

Les utilisateurs auront besoin de leurs clés publiques dans ~/.ssh/authorized_keys. Pour plus d'informations à propos des connexions par clé, consultez Paires de clés Amazon EC2 et instances Linux.

Restreindre l'accès à partir de sources inconnues

Pour les instances publiques, le fait d'avoir le port SSH ouvert et sans restriction peut permettre des intrusions en cas de mauvaise configuration ou de vulnérabilités logicielles inattendues. Pour éviter ces intrusions, suivez les bonnes pratiques suivantes :

1.    Gardez le démon SSH à jour vers la dernière version fournie par votre responsable de distribution Linux. Le démon SSH reçoit souvent des mises à jour de backport provenant de versions ultérieures du fournisseur en amont. Pour plus d'informations sur le backporting, consultez l'article Correctifs de sécurité relatifs au backporting sur le site Web Red Hat Customer Portal.

yum -y install openssh-server # for Amazon Linux, RHEL, Centos
apt update && apt install openssh-server # For Ubuntu, Debian

2.    Limitez votre groupe de sécurité de façon à autoriser les connexions entrantes au port 22 uniquement à partir d'adresses IP approuvées, telles que les adresses IP d'un réseau d'entreprise. Pour plus d'informations, consultez Autorisation du trafic entrant pour vos instances Linux

3.    Les intrus peuvent essayer de deviner les noms d'utilisateur et les mots de passe ou essayer de surcharger votre démon SSH si le port 22 est ouvert au public. fail2ban est un utilitaire qui surveille vos fichiers journaux pour détecter les tentatives constantes de connexion à votre instance et les bloque après plusieurs tentatives infructueuses. Pour installer fail2ban :

Ubuntu :

apt -y install fail2ban

Amazon Linux, Centos, RHEL :

Installez le référentiel EPEL.

Exécutez les commandes suivantes :

yum -y install fail2ban
systemctl enable fail2ban
systemctl start fail2ban

Pour plus d'informations sur la configuration de fail2ban, consultez l'article Sécurité Linux : Protégez votre système à l'aide de fail2ban sur le site Web de Red Hat.

Utiliser la fonctionnalité Session Manager d'AWS Systems Manager pour un accès shell aux instances EC2

Session Manager permet aux utilisateurs d'AWS Identity and Access Management (IAM) de se connecter à vos instances grâce à des fonctionnalités de chiffrement et de journalisation. Le trafic de Systems Manager passe par le point de terminaison de Systems Manager, ce qui permet un accès facile et sécurisé aux instances privées sans ouvrir de ports entrants. Pour plus d'informations sur Session Manager, consultez Fonctionnalité Session Manager d'AWS Systems Manage pour un accès shell aux instances EC2.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?