OpenSSH (Ouvrez Secure Shell) est un ensemble d'applications qui permettent des communications cryptées sur un réseau, en utilisant le protocole SSH. Il a été créé comme une alternative gratuite et ouverte au programme Secure Shell, qui est un logiciel propriétaire. « Wikipédia.
Certains utilisateurs peuvent penser que les bonnes pratiques ne devraient s'appliquer qu'aux serveurs et ce n'est pas le cas. De nombreuses distributions GNU / Linux incluent OpenSSH par défaut et il y a quelques points à garder à l'esprit.
Sécurité
Voici les 6 points les plus importants à garder à l'esprit lors de la configuration de SSH:
- Utilisez un mot de passe fort.
- Modifiez le port par défaut de SSH.
- Utilisez toujours la version 2 du protocole SSH.
- Désactivez l'accès root.
- Limitez l'accès des utilisateurs.
- Utilisez l'authentification par clé.
- d'autres options
Un mot de passe fort
Un buen password es aquel que contiene caracteres alfanuméricos o especiales, espacios, mayúsculas y minúsculas… etc. Acá en DesdeLinux hemos mostrado varios métodos para generar buenas contraseñas. Pueden visitar Cet article y cet autre.
Changer le port par défaut
Le port par défaut pour SSH est 22. Pour le changer, il suffit de modifier le fichier / etc / ssh / sshd_config. Nous recherchons la ligne qui dit:
#Port 22
nous le décommentons et changeons le 22 pour un autre numéro .. par exemple:
Port 7022
Pour connaître les ports que nous n'utilisons pas dans notre ordinateur / serveur, nous pouvons exécuter dans le terminal:
$ netstat -ntap
Maintenant, pour accéder à notre ordinateur ou serveur, nous devons le faire avec l'option -p comme suit:
$ ssh -p 7022 usuario@servidor
Utiliser le protocole 2
Pour nous assurer que nous utilisons la version 2 du protocole SSH, nous devons éditer le fichier / etc / ssh / sshd_config et recherchez la ligne qui dit:
# Protocole 2
Nous le décommentons et redémarrons le service SSH.
Ne pas autoriser l'accès en tant que root
Pour empêcher l'utilisateur root de pouvoir accéder à distance via SSH, nous regardons dans le fichier/ etc / ssh / sshd_config la ligne:
#PermitRootLogin no
et nous le décommentons. Je pense qu'il vaut la peine de préciser qu'avant de faire cela, nous devons nous assurer que notre utilisateur dispose des autorisations nécessaires pour effectuer des tâches administratives.
Limiter l'accès des utilisateurs
Cela ne fait pas de mal non plus d'autoriser l'accès via SSH uniquement à certains utilisateurs de confiance, nous revenons donc au fichier / etc / ssh / sshd_config et nous ajoutons la ligne:
Autoriser les utilisateurs elav usemoslinux kzkggaara
Là où évidemment, ce sont les utilisateurs elav, usemoslinux et kzkggaara qui pourront accéder.
Utiliser l'authentification par clé
Bien que cette méthode soit la plus recommandée, nous devons faire particulièrement attention car nous allons accéder au serveur sans entrer le mot de passe. Cela signifie que si un utilisateur parvient à entrer dans notre session ou si notre ordinateur est volé, nous pouvons être en difficulté. Cependant, voyons comment le faire.
La première chose à faire est de créer une paire de clés (publique et privée):
ssh-keygen -t rsa -b 4096
Ensuite, nous passons notre clé à l'ordinateur / serveur:
ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7
Enfin, nous devons avoir décommenté, dans le fichier / etc / ssh / sshd_config la ligne:
AuthorizedKeysFile .ssh/authorized_keys
d'autres options
Nous pouvons réduire le temps d'attente pendant lequel un utilisateur peut se connecter avec succès au système à 30 secondes
LoginGraceTime 30
Pour éviter les attaques ssh via l'usurpation TCP, en laissant le côté ssh crypté en vie pendant 3 minutes maximum, nous pouvons activer ces 3 options.
TCPKeepAlive non ClientAliveInterval 60 ClientAliveCountMax 3
Désactivez l'utilisation des fichiers rhosts ou shosts qui, pour des raisons de sécurité, ne doivent pas être utilisés.
IgnoreRhosts oui IgnoreUserKnownHosts oui RhostsAuthentication non RhostsRSAAuthentication non
Vérifiez les autorisations effectives de l'utilisateur lors de la connexion.
StrictModes yes
Activez la séparation des privilèges.
UsePrivilegeSeparation yes
Conclusiones:
En suivant ces étapes, nous pouvons ajouter une sécurité supplémentaire à nos ordinateurs et serveurs, mais nous ne devons jamais oublier qu'il y a un facteur important: qu'y a-t-il entre la chaise et le clavier. C'est pourquoi je recommande de lire Cet article.
source: CommentForger
Excellent post @elav et j'ajoute des choses intéressantes:
ConnexionGraceTime 30
Cela nous permet de réduire le temps d'attente pendant lequel un utilisateur peut se connecter avec succès au système à 30 secondes
TCPKeepAlive non
Intervalle ClientAlive 60
ClientAliveCountMax 3
Ces trois options sont très utiles pour éviter les attaques ssh au moyen de l'usurpation TCP, laissant le chiffré vivant du côté ssh actif pendant un maximum de 3 minutes.
IgnoreRhosts oui
IgnoreUserKnownHosts oui
RhostsAuthentification non
RhostsRSAAauthentification non
Il désactive l'utilisation des fichiers rhosts ou shosts qui, pour des raisons de sécurité, ne doivent pas être utilisés.
StrictModes oui
Cette option permet de vérifier les autorisations effectives de l'utilisateur lors de la connexion.
UsePrivilegeSeparation oui
Activez la séparation des privilèges.
Eh bien, dans un moment, je modifierai le message et l'ajouterai au message 😀
Ne pas commenter pour ne pas changer la ligne est redondant. Les lignes commentées montrent la valeur par défaut de chaque option (lisez la clarification au début du fichier lui-même). L'accès root est désactivé par défaut, etc. Par conséquent, ne pas commenter cela n'a absolument aucun effet.
Oui, mais par exemple, comment savons-nous que nous n'utilisons que la version 2 du protocole? Parce que nous pourrions bien utiliser 1 et 2 en même temps. Comme le dit la dernière ligne, décommenter cette option par exemple, remplace l'option par défaut. Si nous utilisons la version 2 par défaut, très bien, sinon, nous l'utilisons OUI ou OUI 😀
Merci pour le commentaire
Très bon article, je savais plusieurs choses mais une chose qui n'est jamais claire pour moi est l'utilisation des clés, vraiment ce qu'elles sont et quels avantages cela a, si j'utilise des clés, puis-je utiliser des mots de passe ??? Si tel est le cas, pourquoi augmente-t-il la sécurité et sinon, comment y accéder depuis un autre PC?
Salutations, j'ai installé Debian 8.1 et je ne peux pas me connecter depuis mon PC Windows à Debian avec WINSCP, dois-je utiliser le protocole 1? toute aide .. merci
Adien
Vous pourriez être intéressé par cette vidéo sur OpenSh https://m.youtube.com/watch?v=uyMb8uq6L54
Je veux essayer certaines choses ici, plusieurs que j'ai déjà essayées grâce à Arch Wiki, d'autres par paresse ou par ignorance. Je le garde pour le démarrage de mon RPi