Bonnes pratiques avec OpenSSH

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:

  1. Utilisez un mot de passe fort.
  2. Modifiez le port par défaut de SSH.
  3. Utilisez toujours la version 2 du protocole SSH.
  4. Désactivez l'accès root.
  5. Limitez l'accès des utilisateurs.
  6. Utilisez l'authentification par clé.
  7. 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

La contribution de Yukiteru

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


8 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Yukiteru dit

    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.

    1.    animé dit

      Eh bien, dans un moment, je modifierai le message et l'ajouterai au message 😀

  2.   Eugenio dit

    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.

    1.    animé dit

      # La stratégie utilisée pour les options dans le sshd_config par défaut livré avec
      # OpenSSH consiste à spécifier les options avec leur valeur par défaut où
      # possible, mais laissez-les commentés. Les options non commentées remplacent le
      # valeur par défaut.

      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

  3.   Sli dit

    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?

  4.   Adien dit

    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

  5.   franksanabria dit

    Vous pourriez être intéressé par cette vidéo sur OpenSh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Carreaux dit

    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