Comment personnaliser les paramètres SSH pour une sécurité maximale

Le fichier de configuration SSH du système Unix contrôle le fonctionnement du shell sécurisé. Il peut être utilisé pour rendre la commande ssh plus facile à utiliser, configurer certaines fonctions spécifiques à l'utilisateur ou renforcer la sécurité contre les attaques potentielles. Bien que des procédures relativement simples, telles que la modification du port ssh sur vos périphériques, permettent souvent d'éliminer un grand nombre d'appels à froid sur votre périphérique, le fichier de configuration ssh peut faire beaucoup plus.

Comment personnaliser les paramètres SSH pour une sécurité maximale - Linux

Où se trouve le fichier SSH?

Comment personnaliser les paramètres SSH pour une sécurité maximale - Linux

Sur les systèmes Linux, vous pouvez trouver un fichier de configuration ssh au niveau du système dans "/ etc / ssh / ssh_config".

En Systèmes MacOS , Le fichier lui-même se trouve dans «/ private / etc / ssh / ssh_config», associé à «/ etc / ssh / ssh_config» pour des raisons de compatibilité.

Le second fichier ssh_config de l'utilisateur peut être spécifié dans "~ / .ssh / ssh_config" (le symbole "~" représente le répertoire de base). Ce fichier remplace le fichier de configuration du système, ce qui vous permet de définir des options spécifiques à l'utilisateur sans modifier la configuration du système. Les systèmes ne sont pas toujours chargés à l'aide du fichier "~ / .ssh / ssh_config", mais peuvent être créés facilement.

A partir de maintenant, nous allons appeler ce fichier de configuration “ssh_config“Clarté et simplicité.

Editez le fichier ssh_config

Pour éditer le fichier ssh_config, ouvrez la fenêtre Terminal et éditez le fichier en utilisant votre éditeur de texte préféré. Nous utiliserons nano dans cet affichage, mais vi ou emacs peut être utilisé à la place.

sudo nano / etc / ssh / ssh_config

Cela ouvrira un fichier contenant des dizaines de lignes en attente expliquant son rôle, mais pas une explication complète.

Comment personnaliser les paramètres SSH pour une sécurité maximale - Linux

Qu'est-ce que ssh_config et que fait ssh_config?

Le fichier ssh_config est utilisé pour contrôler le fonctionnement du shell sécurisé, appelé commande ssh terminal, sur votre système. Le fichier ssh_config est organisé par les hôtes. Chaque hôte a des paramètres spécifiques pour cet hôte. Les caractères génériques peuvent être utilisés comme * Faire correspondre plusieurs noms d'hôtes avec une seule autorisation.

Les options sont définies à l'aide du couple clé / identification. Il y a beaucoup de clés disponibles. Une explication détaillée des fonctions de chaque touche est disponible sur une page. man ssh_config.

Configurez votre SSH

Verrouiller les fichiers: avant de modifier le fichier, assurez-vous que les fichiers ssh_config et sshd_config disposent des autorisations d'administrateur et d'utilisateur pour définir la routine. Dans la plupart des cas, vous devrez également ne pas autoriser d'autorisations pour tous sauf pour la routine.

sudo chown root:root /etc/ssh/sshd_config

sudo chmod og-rwx /etc/ssh/sshd_config

Confirmer le protocole SSH 2

Assurez-vous que vous utilisez le protocole 2 le plus récent et le plus à la place du protocole 1. L'ancien protocole fonctionne avec un contrôle de sécurité plus faible et est généralement moins sécurisé.

Pour définir le protocole explicitement, utilisez ce qui suit dans ssh_config:

Protocol 2

Vous pouvez également définir votre protocole de manière implicite à l'aide de chiffrements, ce qui définira automatiquement le protocole sur 2 pour utiliser des chiffrements modernes.

Ciphers aes128-ctr، aes192-ctr، aes256-ctr

Ne pas autoriser un mot de passe vide

Assurez-vous que chaque compte SSH utilise un mot de passe lorsque vous vous connectez en bloquant les mots de passe vierges.

PermitEmptyPasswords no

Ne pas autoriser Root à se connecter

Root devrait rarement être utilisé pour la plupart des utilisations de Linux. Cela vous permettra d’empêcher une connexion racine pour verrouiller les comptes avec précision selon les besoins et non pour une utilisation à l’échelle du système. C'est aussi un compte cible dans les attaques. Les options de PermitRootLogin incluent «Oui», «Aucun mot de passe», «Commandes forcées uniquement» ou «Non». La valeur par défaut est Oui. Pour arrêter complètement de vous connecter à la racine, nous devons taper la ligne ci-dessous.

PermitRootLogin no

Changer le numéro de port

Vous pouvez modifier le numéro de port de 22 (valeur par défaut) afin de limiter l'accès direct à votre serveur sur ce port. Cela limitera la plupart des personnes qui utilisent un script qui se rend sur ce port ou qui attaquent manuellement ce port. Cependant, cela ne limitera pas ceux qui recherchent des ports ouverts et attaquent tout ce qui est ouvert. De plus, vous devrez vous assurer que toute personne qui entre par ce port est informée du nouveau numéro et que ce nouveau numéro de port est utilisé par tout client ou programme.

Pour définir le port, éditez le serveur ssh principal dans «/ etc / ssh / sshd_config». Vous devrez ajouter une nouvelle ligne spécifiant le port qui suit la syntaxe. Port XXXXX.

Comment personnaliser les paramètres SSH pour une sécurité maximale - Linux

Limiter l'accès

Si plusieurs personnes accèdent à votre serveur, vous souhaiterez peut-être limiter l'utilisation de ssh. Dans ces cas, vous pouvez autoriser et bloquer les utilisateurs et les groupes. Pour cela, vous devez utiliser l'une des clés suivantes, suivie des valeurs que vous souhaitez autoriser ou rejeter: DenyUsers, AllowUsers, DenyGroups et AllowGroups. Cette opération est terminée dans cet ordre. Par conséquent, même si vous autorisez un utilisateur à figurer dans la section "Approuvé", il sera refusé.

AllowUsers ramesh john jason

AllowGroups sysadmin dba

DenyUsers cvs apache jane

DenyGroups developers qa

Mettre à jour LoginGraceTime

Par défaut, une personne doit rester inactive pendant deux minutes sans se connecter. Réduire cela aidera à prévenir les connexions non autorisées. Une proposition typique dure une minute ou moins. Ajustez l'heure à l'aide de LoginGraceTime.

LoginGraceTime 1m

Personnaliser les configurations SSH

Créer des alias

Les options de ligne de commande Ssh peuvent être déterminées via des alias dans ssh_config. Les alias suivants permettent à l'utilisateur de se connecter à un serveur. dev Avec les options spécifiées simplement en tapant ssh dev Dans la ligne de commande.

Host dev

    HostName dev.example.com

    Port 22222

    User foobar

Cette commande effectue les opérations suivantes lors de l'exécution:

ssh foobar@dev.example.com -p 22222

Notez que le port ssh a été remplacé par 22222 pour empêcher les appels impromptus. Sinon, il s'agit d'une connexion ssh très simple, raccourcie de nombreux caractères pour plus de commodité.

Authentification avec des clés sécurisées

ssh est plus sûr et plus pratique lorsqu'il est utilisé avec des clés publiques / privées pour l'authentification, plutôt que des mots de passe. Le fichier ssh_config peut annoncer une clé spécifique à un hôte particulier à l'aide de la clé IdentityFile.

Host dev

    HostName dev.example.com

    Port 22222

    User foobar

    IdentityFile ~/.ssh/dev.example.key

Comme dans les exemples précédents, cette commande ssh est exécutée à l'aide de dev ssh, en exécutant la ligne de commande équivalente à la commande suivante:

ssh -i ~ / .ssh / dev.example.key foobar@dev.example.com -p 22222

Définir d'autres options ssh

Les options ssh ci-dessous sont quelques-unes des clés les plus courantes trouvées dans les fichiers ssh_config.

Compression: Cette clé prend comme argument «Oui» ou «Non» et est utilisée pour activer et désactiver la compression de l'hôte. Ceci est généralement inutile sauf si la connexion est incroyablement lente.

LogLevel: Définissez le niveau de détail dans les journaux ssh côté client. Des options les moins longues aux plus longues, les options sont QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 et DEBUG3.

StrictHostKeyChecking: Définissez une préférence pour ajouter un autre hôte au fichier known_hosts. Vous n'ajouterez jamais "oui" à known_hosts. "Non" sera toujours ajouté à known_hosts. "Ask", qui est l'option par défaut, demandera à l'utilisateur avant d'ajouter dans le fichier known_hosts. Yes fournit une sécurité maximale contre les chevaux de Troie, mais peut être fastidieux avec un fichier known_hosts mal géré. "Non" est le moins sûr, mais peut rendre la connexion d'un grand nombre d'hôtes temporaires moins pénible.

UserKnownHostsFile: Spécifiez le chemin du fichier nom_utilisateur_hôte_connu.

Rediriger la connexion

SSH est souvent utilisé pour rediriger les connexions, autorisant le tunneling local via une connexion distante. Les options suivantes peuvent être utilisées pour configurer le transfert de connexion.

LocalForward: Spécifie une connexion pour rediriger le trafic du port local vers un périphérique distant. Ces tunnels communiquent sur le réseau distant.

RemoteForward: Définit un port distant devant être routé en dehors d’un port local. C'est l'opposé de l'option ci-dessus.

DynamicForward: Configurez un port local à utiliser avec un protocole de transfert dynamique.

Conclusion

La plupart des options ssh_config existent pour fournir des moyens plus pratiques d'effectuer des tâches spécifiques à l'aide de la commande ssh. C'est un moyen de créer des alias et des raccourcis complexes qui contribuent à accroître la sécurité en rendant les parties plus sécurisées de ssh plus faciles à utiliser.

source
Aller au bouton supérieur