Les configurations SSH personnalisées les plus courantes du serveur OpenSSH

Les configurations SSH personnalisées les plus courantes du serveur OpenSSH

Le Opensh Ensemble de services publics Laissez-nous créer des connexions sécurisées et cryptées entre les machines. Dans ce tutoriel, nous allons examiner certaines des options les plus utiles que nous pouvons utiliser pour modifier le comportement de SSHD, le Opensh démon afin de faciliter votre travail d'administration du système Linux.

Dans cet article, nous supposons l'existence d'un serveur déjà en cours d'exécution et accessible. Si vous souhaitez en savoir plus sur l'installation d'OpenSSH, vous pouvez jeter un œil à cet article sur la façon d'installer SSH Server sur Ubuntu Linux.

Dans ce tutoriel, vous apprendrez:

  • Comment personnaliser le comportement du démon sshd en manipulant les options dans le fichier de configuration SSH principal / etc / ssh / sshd_config
  • Comment modifier le (s) port (s) par défaut utilisé par le serveur
  • Comment modifier l'adresse à l'écoute du serveur
  • Comment changer le temps de connexion SSH maximum
  • Comment autoriser ou refuser la connexion comme racine
  • Comment modifier les tentatives de connexion max et le nombre maximum de session ouverte
  • Comment afficher un message lorsque l'utilisateur essaie de s'authentifier avec le serveur
  • Comment activer / désactiver le mot de passe et l'authentification pubkey
  • Comment activer / désactiver l'authentification hôte
  • Activer / désactiver le transfert x11


Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution
Logiciel Aucun logiciel supplémentaire n'est nécessaire pour suivre ce tutoriel en dehors de OpenSSH
Autre Un serveur OpenSSH exécutif
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Le fichier de configuration du démon sshd

Par défaut SSHD, le Opensh démon, lit sa configuration à partir du / etc / ssh / sshd_config déposer. Un chemin de fichier différent peut être spécifié en utilisant le -F option lors du lancement du démon. Il existe de nombreuses options que nous pouvons changer pour modifier le comportement du démon. Bien qu'il ne soit pas possible de les mentionner tous ici, nous verrons certains des plus couramment utilisés et ce que nous pouvons obtenir en modifiant leurs valeurs. Chaque fois qu'une option est modifiée, pour rendre les modifications efficaces, le démon doit être redémarré. Lorsque vous utilisez SystemD, la commande à exécuter est:

$ sudo systemctl redémarrer sshd

Modification du (s) port (s) utilisé par le serveur

C'est ce qu'on appelle un Sécurité par l'obscurité Mesure: par défaut le SSHD le démon écoute sur le port 22. La modification du port utilisée n'améliore pas la sécurité en soi, car il est trivial de faire une analyse de port et de voir quels ports sont utilisés par une machine. Plus que souvent, cependant, les tentatives de connexion par force brute ciblent simplement le port par défaut, donc modifier le port utilisé peut aider. Pour demander au démon d'écouter un port spécifique, nous utilisons le Port Option et fournir le numéro de port:

Port 1024


Plusieurs occurrences de l'option peuvent être fournies: le serveur écoutera sur tous les ports spécifiés. Avant de redémarrer le serveur SSH pour rendre le changement efficace, il est vraiment important de modifier les règles du pare-feu en conséquence au changement. Côté client, pour se connecter à l'aide d'un port spécifique, nous devons spécifier le numéro de port en utilisant le -p Option (abréviation pour -port). Par exemple, pour se connecter à l'aide du port 1024, nous écrivions:

$ ssh -p 1024 egdoc @ feanor

Pour éviter d'avoir à spécifier le port chaque fois que nous nous connectons au serveur, nous pouvons configurer une entrée pour cela dans le ~ /.ssh / config Fichier (nous devrons peut-être le créer, car il n'existe pas par défaut et nous devons le rendre accessible uniquement par l'utilisateur), comme dans l'exemple ci-dessous:

Hôte Feanor Hostname 192.168.0.39 Port 1024

De cette façon, chaque fois que nous essaierons de SSH en une correspondance Héberger (Feanor dans ce cas) Les paramètres spécifiés dans la strophe associée du fichier de configuration SSH seront appliqués automatiquement.

Modification de l'adresse à l'écoute du serveur

En plus du port le SSHD le démon écoute, nous pouvons également changer le adresse d'écoute. Par défaut, le serveur écoute toutes les adresses locales. Des exemples de la syntaxe à utiliser avec cette option peuvent déjà être trouvés dans le fichier de configuration SSH:

#ListenAddress 0.0.0.0 #ListenAddress ::

Nous pouvons spécifier l'adresse de l'une des manières suivantes:

  • Hôte | Adresse IPv4 | Adresse IPv6
  • Hôte | Adresse IPv4: Port
  • Hôte | Adresse IPv6: Port

L'option à utiliser est appelée Écouter De multiples occurrences des options sont autorisées, afin de spécifier plusieurs adresses. On peut utiliser Ipv4 ou Ipv6 adresse et spécifier éventuellement le port à utiliser. Si nous ne spécifions pas un port le SSHD Daemon écoutera sur le ou les ports spécifiés avec le Port option que nous avons vue ci-dessus.

Changer le temps de connexion maximum

Nous pouvons configurer le Opensh démon de déconnexion après un temps spécifié si l'utilisateur ne se connecte pas avec succès. Dans ce cas, l'option que nous voulons changer est appelée Loggeracetime. Tout ce que nous avons à faire est de fournir la valeur de limite de temps, par exemple:

Loggeracetime 2m

La valeur par défaut de cette option est 120 (secondes)

Autoriser ou refuser la connexion comme racine

En utilisant le Permatlogine option que nous pouvons établir si le SSHD le démon devrait permettre à l'utilisateur racine de se connecter directement. L'option accepte l'une de ces valeurs:

  • Oui
  • Non
  • interdiction de mot de passe
  • Commands forcés uniquement

Les deux premières valeurs sont assez explicites. Lors de l'utilisation Oui L'utilisateur racine est autorisé à se connecter via SSH, lors de l'utilisation Non Cette possibilité est refusée. Le interdiction de mot de passe et Commands forcés uniquement Les valeurs sont plus intéressantes.

Quand le premier
est utilisé comme valeur du Permatlogine Les connexions interactives de l'option, le mot de passe et le clavier sont désactivés, mais l'utilisateur racine peut se connecter à l'aide d'un Clé publique. Si Commands forcés uniquement est utilisé, à la place, la connexion racine via l'authentification de la clé publique est autorisée mais uniquement si un commande L'option est spécifiée dans la clé autorisée. Par exemple:

Command = "ls -a" ssh-rsa […]


Ci-dessus nous avons spécifié ls -a Comme la commande de la clé SSH qui sera utilisée par Root. De cette façon, lors de la connexion à l'aide de la touche, la commande sera exécutée, puis la connexion au serveur sera fermée. Vérifions-le (ici, j'ai supposé que la clé est déjà en place sur le client et a été autorisée sur le serveur):

$ ssh root @ feanor Entrez la phrase de passe pour la clé '/ home / egdoc /.ssh / id_rsa ':… bash_history .bashrc .profil .ssh .vigueur .VIMINFO Connexion à Feanor fermé.

Modification des tentatives de connexion maximales et le nombre maximum de session a ouvert ses portes

Deux autres paramètres que nous pouvons vouloir modifier est le nombre de tentatives de connexion par connexion, et le nombre de coquilles ouvertes, de connexion ou de session de sous-système autorisés. Nous pouvons modifier l'ancien paramètre en utilisant le Maxauthtries option, fournissant le nombre de tentatives autorisées (la valeur par défaut est 6). Ce dernier peut plutôt être modifié en utilisant le Maxssesions option. Cette option prend également une valeur entière, la valeur par défaut dix.

Affichez un message lorsque l'utilisateur essaie de s'authentifier avec le serveur

Nous pouvons utiliser le Bannière Option pour spécifier un fichier contenant du texte que nous souhaitons envoyer à l'utilisateur avant de s'authentifier au serveur. La valeur par défaut de l'option est aucun, Donc aucune bannière n'est affichée. Voici un exemple. Le fichier / etc / ssh / bannière que nous avons créé contient du texte que nous utilisons comme message. Si nous définissons l'option comme ci-dessous:

Bannière / etc / ssh / bannière.SMS

Lorsque nous essayons de nous connecter, nous obtenons le résultat suivant:

$ ssh egdoc @ feanor ################################ # Banner de test ######### ##################### ° Egdoc @ Feanor: 

Activation / désactivation du mot de passe et de l'authentification pubkey.

Le SSHD Daemon fournit plusieurs moyens d'authentifier les utilisateurs. Nous pouvons choisir d'activer ou de désactiver l'authentification par mot de passe ou par clé publique en utilisant respectivement le PasswordAuthentication et Pubkeyauthentification options. Par défaut, les deux options sont généralement définies sur Oui: Cela signifie que l'utilisateur peut se connecter au serveur en fournissant son mot de passe et également en utilisant une clé publique qu'il possède (la clé peut également être protégée par un mot de passe). Pour désactiver l'une des deux options que nous utilisons simplement Non comme une valeur. Par exemple, si je veux seulement permettre la connexion par les clés publiques que nous pouvons définir:

PasswordAuthentication Non

De cette façon, seuls les utilisateurs qui ont un Clé publique contenu dans le fichier de clés autorisé pourra se connecter au serveur. Le fichier de clés autorisé est le fichier qui contient les clés publiques autorisées. Par défaut, le fichier est .SSH / AUTORISED_KEYS dans le répertoire domestique de l'utilisateur sur le serveur, mais cela peut être modifié à l'aide du AutorizedKeysFile option et spécification d'un fichier alternatif, fournissant soit un absolu ou un relatif chemin. Lorsqu'un chemin relatif est utilisé, il est considéré comme relatif au répertoire domestique des utilisateurs. L'option peut également être définie sur aucun: De cette façon, le serveur ne recherchera pas les clés publiques dans les fichiers.

Activer / désactiver l'authentification hôte

Le serveur OpenSSH peut être défini pour accepter hôte authentification. Lorsque vous utilisez ce type d'authentification, un hôte s'authentifie au nom de tous ou de certains de ses utilisateurs. L'option est définie sur Non par défaut. Définition de l'option sur Oui ne suffit pas pour faire du travail d'authentification basé sur l'hôte.

Activer / désactiver le transfert x11

Le X11 Window System a une architecture client-serveur: les clients sont les nombreuses applications graphiques demandant une connexion au serveur qui gère des affichages. Le serveur X11 et ses clients s'exécutent souvent sur la même machine, mais ce n'est pas nécessaire. Il est possible d'accéder à un serveur X11 distant via un protocole dédié mais non sécurisé. Opensh Exécutons la connexion en toute sécurité, créant un tunnel crypté. L'option qui contrôle ce comportement est X11 pour. La fonction est généralement désactivée par défaut, il est donc défini sur Non.

Nous devons définir l'option sur Oui Si nous voulons en profiter. Côté client, nous activons la fonctionnalité en utilisant le -X Option de la ligne de commande ou définir Avantx11 pour Oui Dans le fichier de configuration du client. Par exemple, disons que X11 fonctionne sur la machine distante; Nous voulons utiliser la connexion SSH pour lancer l'application «Pluma» (un éditeur de texte léger) et le contrôler en utilisant X11Forwarding. Nous courrons:

$ ssh egdoc @ feanor -x pluma


Le programme sera lancé. Dans la barre de titre, nous pouvons clairement voir qu'il fonctionne sur «Feanor», qui est le nom de la machine distante.



X11 transfert en action

Conclusion

Dans ce tutoriel, nous avons vu quelle est la valeur par défaut SSHD Fichier de configuration de démon et nous avons appris comment nous pouvons en utiliser un alternatif en spécifiant son chemin avec le -F Option lors du démarrage du service. Nous avons également examiné certaines des options les plus utiles que nous puissions utiliser dans ledit fichier pour modifier le comportement de SSHD. Nous avons vu comment autoriser ou refuser les authentifications basées sur des mots de passe et basées sur les clés publiques; comment activer ou refuser la connexion racine; Comment activer ou désactiver la fonction de transfert X11 et comment faire afficher le serveur un message lorsqu'un utilisateur essaie de s'authentifier dessus.

Nous avons également vu comment spécifier les tentatives de connexion maximales autorisées par connexion et comment modifier les adresses et les ports. Pour en savoir plus sur les configurations du serveur possibles, veuillez consulter la page manuelle de SSHD et du fichier de configuration SSHD_CONFIG.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment profiter au maximum d'OpenSSH
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Linux: Configuration SSH
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Choses à installer sur Ubuntu 22.04
  • Comment surveiller l'activité du réseau sur un système Linux
  • Installez Arch Linux dans VMware Workstation
  • Téléchargement Linux