Installation et configuration d'un serveur SSH sous Linux. Comment utiliser le protocole SSH dans Ubuntu : installation et configuration Ne se connecte pas via ssh ubuntu

Cet article concerne les paramètres accès à distance au serveur Ubuntu. Le principe de connexion est très simple : côté client on utilise un programme d'accès à distance (par exemple, Putty), côté serveur on installe et configure le package OpenSSH. Lors de la connexion, le client subit une procédure d'autorisation auprès du serveur et une connexion cryptée s'établit entre eux. Le principe de fonctionnement du protocole SSH a été abordé plus en détail dans l'article sur.

Le schéma du réseau est présenté ci-dessous. La connexion à distance au serveur sera établie à partir de l'ordinateur client.

Nous avons installé Ubuntu Server sur un disque dur propre. Après l'installation, vous devez configurer l'interface réseau du serveur pour accéder au réseau. À savoir, définissez l'adresse IP, le masque de réseau et la passerelle par défaut. Si votre interface est déjà configurée, vous pouvez ignorer cette étape. Paramètres Interfaces réseau sont précisés dans le fichier /etc/réseau/interfaces. Pour éditer, nous utiliserons un éditeur de texte nano.

On passe dans le mode édition du fichier d'interfaces. Nous nous intéressons à tout ce qui suit # L'interface réseau principale. DANS ce moment le serveur reçoit une adresse IP via DHCP, ce qui n'est pas tout à fait correct. Le serveur doit avoir une IP statique afin que tous les nœuds du réseau connaissent exactement son adresse. Écrivons-le paramètres réseau manuellement.

Mon serveur est sur le sous-réseau local 192.168.1.0/24. Le serveur se voit attribuer l'IP 192.168.1.2, le masque 255.255.255.0, la passerelle par défaut 192.168.1.1, l'adresse du serveur DNS 192.168.0.1

Pour enregistrer le fichier, appuyez sur Ctrl + X -> Y -> Entrée. Pour appliquer les paramètres, vous devez redémarrer le processus réseau. Vous pouvez également simplement redémarrer le serveur avec la commande sudo reboot.

Vérifier (commande ifconfig -a) – les paramètres sont appliqués

Tout est prêt pour OpesnSS, qui peut être installé depuis le terminal à l'aide des commandes

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Vous pouvez contrôler le démarrage, l'arrêt et le redémarrage du serveur SSH à l'aide des commandes

$ sudo service chut arrêter | démarrer | redémarrage

En fait, vous disposez déjà d’un accès SSH au serveur. Mais pour plus réglage fin Il existe un fichier de configuration dans /etc/ssh/sshd_config. L'accès aux configurations n'est possible qu'à partir du root.

Côté client, téléchargez n'importe quel programme pour vous connecter via SSH, je recommande Putty. Dans le programme, il suffit de saisir l’adresse IP du serveur et de s’y connecter. Lors de la connexion, saisissez le nom d'utilisateur et le mot de passe.


Abonnez-vous à notre


Pour installer le serveur ssh, exécutez dans le terminal :

Ubuntu/Debian/Linux Menthe

Modifiez ensuite les paramètres du serveur ssh dans le fichier /etc/ssh/sshd_config
Pour ce faire, dans le terminal, exécutez :


Aussi, pour qu'OpenSSH n'écoute que certaines adresses IP, par exemple 192.168.0.50, 192.168.0.51 sur le port 777, ajoutez alors simplement les lignes suivantes :

Restreindre l'accès via SSH pour les utilisateurs : test test2 test3

Le serveur OpenSSH peut utiliser le protocole Rlogin pour l'autorisation et peut simuler le comportement de l'ancienne commande rsh, désactivez donc la lecture fichiers utilisateur~/.rhosts et ~/.shosts :

Activez la bannière d'avertissement en modifiant la ligne suivante et en créant ce qui suit. déposer:

Enregistrez les journaux, assurez-vous que la directive LogLevel est définie sur INFO ou DEBUG

Pour redémarrer OpenSSH sur CentOS, Fedora ou RHEL :

Dans certains cas, vous pouvez démarrer le serveur uniquement de cette manière :


Pour vérifier l'état du serveur, utilisez la commande suivante


Vous pouvez maintenant vous connecter à un ordinateur sur lequel le serveur OpenSSH est installé comme ceci :

Ssh [port-p]

Par exemple:

CentOS / RHEL / Fedora Linux - vous pouvez désactiver ou supprimer OpenSSH comme ceci :

$ chkconfig sshd désactivé
$ miam effacer openssh-server

Principaux fichiers et dossiers SSH :
~/.ssh/ - répertoires de configuration utilisateur
~/.ssh/authorized_keys et ~/.ssh/authorized_keys2 - listes de clés publiques (RSA ou DSA) pouvant être utilisées pour autoriser un compte utilisateur
~/.ssh/known_hosts - clés du serveur
/etc/ssh/sshd_config - Fichier de configuration du serveur OpenSSH
/etc/ssh/ssh_config - Fichier de configuration du client OpenSSH
/etc/nologin - si ce fichier existe, le système refusera d'autoriser quiconque autre que l'utilisateur root. Il vaut mieux retirer et ne pas utiliser.
/etc/hosts.allow et /etc/hosts.deny - listes de contrôle d'accès (ACL)

Dans cet article, nous allons vous montrer comment installer, configurer et utiliser OpenSSH sur Ubuntu 16.04. SSH (Secure Shell) est un protocole qui permet un accès sécurisé à une machine distante tandis qu'OpenSSH est un ensemble d'outils basés sur le protocole SSH. Aujourd'hui, nous allons vous montrer comment installer et configurer OpenSSH en utilisant Ubuntu 16.04 comme système d'exploitation.

Installation d'OpenSSH sur Ubuntu 16.04

Tout d’abord, installons OpenSSH. Mettez à jour les index des packages à l'aide de la commande suivante :

Sudo apt-get mise à jour

Pour installer l'application serveur OpenSSH, ainsi que d'autres packages associés, utilisez la commande suivante :

Sudo apt-get install openssh-server

Veuillez noter que le package du serveur OpenSSH est peut-être déjà installé sur votre système dans le cadre du processus d'installation initial du serveur. Vous pouvez également installer l'application client OpenSSH à l'aide de la commande suivante :

Sudo apt-get install openssh-client

Configuration d'OpenSSH sur Ubuntu 16.04

Avant d'apporter des modifications à la configuration OpenSSH, il est bon de savoir comment gérer le service OpenSSH sur votre . Pour démarrer le service, vous pouvez utiliser la commande suivante :

Sudo systemctl démarrer sshd.service

Pour arrêter le service, vous pouvez utiliser :

Sudo systemctl arrête sshd.service

Pour redémarrer le service, vous pouvez utiliser :

Sudo systemctl redémarrer sshd.service

Pour vérifier l'état du service, vous pouvez utiliser :

Sudo systemctl statut sshd.service

Pour activer le service lors du démarrage du système, vous pouvez utiliser :

Sudo systemctl activer sshd.service

Pour désactiver le service pendant le démarrage du système, vous pouvez utiliser :

Sudo systemctl désactiver sshd.service

Après avoir apporté des modifications à la configuration d'OpenSSH, vous devez redémarrer le service pour que les modifications prennent effet.

Le fichier de configuration principal de l'application serveur OpenSSH est /etc/ssh/sshd_config . Assurez-vous de sauvegarder votre configuration d'origine avant d'apporter des modifications :

Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

Vous pouvez modifier ce fichier avec éditeur de texte selon votre choix. La première chose que vous pouvez faire est. Ouvrez le fichier et recherchez la ligne qui définit le port d'écoute :

Changez-le pour autre chose. Par exemple 2022

Port 2022

Enregistrez le fichier et fermez-le. Redémarrez ensuite le service pour que les modifications prennent effet.

Vous pouvez maintenant essayer d'utiliser le numéro de port spécifié dans le fichier de configuration du serveur OpenSSH. Si vous parvenez à vous connecter au serveur via SSH avec succès, vous pouvez passer à l'étape suivante qui consiste à sécuriser OpenSSH.

Sécurisez OpenSSH sur Ubuntu 16.04

#PermitRootLogin oui

et changez-le en :

PermitRootLogin non

Enregistrez les modifications et redémarrez le service pour que les modifications prennent effet. La prochaine fois que vous vous connecterez au serveur, vous pourrez utiliser l'utilisateur SUDO nouvellement créé.

Pour protéger le serveur, vous pouvez également désactiver la vérification des mots de passe et . De plus, vous le pouvez.

Vous pouvez vérifier les options de configuration supplémentaires à l'aide de la page de manuel :

Homme sshd_config

ou vous pouvez visiter les pages du manuel OpenSSH sur https://www.openssh.com/manual.html.

Cette section du Guide du serveur Ubuntu présente une puissante collection d'outils pour le contrôle à distance et le transfert de données entre des ordinateurs en réseau appelés OpenSSH. Vous découvrirez également certains des paramètres de configuration possibles avec le Serveur OpenSSH application et comment les modifier sur votre système Ubuntu.

OpenSSH est une version disponible gratuitement de la famille de protocoles Secure Shell (SSH) de des outils pour contrôler à distance ou transférer des fichiers entre des ordinateurs. Les outils traditionnels utilisés pour accomplir ces fonctions, tels que telnet ou rcp, ne sont pas sécurisés et transmettent le mot de passe de l'utilisateur en texte clair lorsqu'ils sont utilisés. OpenSSH fournit un démon serveur et des outils clients pour faciliter les opérations de contrôle à distance et de transfert de fichiers sécurisées et cryptées, remplaçant efficacement les outils existants.

Le composant serveur OpenSSH, sshd , écoute en permanence les connexions client à partir de n'importe quel outil client. Lorsqu'une demande de connexion se produit, sshd établit la connexion correcte en fonction du type d'outil client qui se connecte. Par exemple, si l'ordinateur distant se connecte à l'application client ssh, le serveur OpenSSH configure une session de contrôle à distance après l'authentification. Si un utilisateur distant se connecte à un serveur OpenSSH avec scp , le démon du serveur OpenSSH initie une copie sécurisée des fichiers entre le serveur et le client après authentification. OpenSSH peut utiliser de nombreuses méthodes d'authentification, notamment un mot de passe simple, une clé publique et des tickets Kerberos.

Installation

L'installation des applications client et serveur OpenSSH est simple. Pour installer les applications client OpenSSH sur votre système Ubuntu, utilisez cette commande à l'invite du terminal :

sudo apt install openssh-client

Pour installer l'application serveur OpenSSH et les fichiers de support associés, utilisez cette commande à l'invite du terminal :

sudo apt installer openssh-server

Le package openssh-server peut également être sélectionné pour être installé pendant le processus d'installation de Server Edition.

Configuration

Vous pouvez configurer le comportement par défaut de l'application serveur OpenSSH, sshd , en éditant le fichier /etc/ssh/sshd_config . Pour plus d'informations sur les directives de configuration utilisées dans ce fichier, vous pouvez consulter la page de manuel appropriée avec la commande suivante, émise à l'invite du terminal :

homme sshd_config

Il existe de nombreuses directives dans le fichier de configuration sshd contrôlant des éléments tels que les paramètres de communication et les modes d'authentification. Voici des exemples de directives de configuration qui peuvent être modifiées en modifiant le fichier /etc/ssh/sshd_config.

Avant de modifier le fichier de configuration, vous devez faire une copie du fichier original et le protéger contre l'écriture afin d'avoir les paramètres d'origine comme référence et de les réutiliser si nécessaire.

Copiez le fichier /etc/ssh/sshd_config et protégez-le contre l'écriture avec les commandes suivantes, émises à l'invite du terminal :

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

Voici des exemples de directives de configuration que vous pouvez modifier :

    Pour configurer votre OpenSSH pour qu'il écoute sur le port TCP 2222 au lieu du port TCP 22 par défaut, modifiez la directive Port comme telle :

    Pour que sshd autorise les informations de connexion basées sur une clé publique, ajoutez ou modifiez simplement la ligne :

    PubkeyAuthentification oui

    Si la ligne est déjà présente, assurez-vous qu'elle n'est pas commentée.

    Pour que votre serveur OpenSSH affiche le contenu du fichier /etc/issue.net sous forme de bannière de pré-connexion, ajoutez ou modifiez simplement la ligne :

    Bannière /etc/issue.net

    Dans le fichier /etc/ssh/sshd_config.

Après avoir apporté des modifications au fichier /etc/ssh/sshd_config, enregistrez le fichier et redémarrez l'application serveur sshd pour appliquer les modifications à l'aide de la commande suivante à l'invite du terminal :

sudo systemctl redémarrer sshd.service

De nombreuses autres directives de configuration pour sshd sont disponibles pour modifier le comportement de l'application serveur en fonction de vos besoins. Soyez toutefois averti si votre seule méthode d'accès à un serveur est ssh et que vous faites une erreur en configurant sshd via le /etc /ssh /sshd_config, vous constaterez peut-être que vous êtes bloqué hors du serveur au redémarrage. De plus, si une directive de configuration incorrecte est fournie, le serveur sshd peut refuser de démarrer, alors soyez très prudent lorsque vous modifiez ce fichier sur un serveur distant.

Nous avons compris ce que c'était SSH et quels sont ses avantages, nous avons également implémenté l'exemple le plus simple SSH- serveur et client.

Aujourd'hui, je vais parler de paramètres plus détaillés SSH- serveur.

Comme le dit la célèbre phrase, « dans Linux tout est un fichier", donc pour configurer SSH- serveur, il est nécessaire et suffisant d'éditer un fichier de configuration. Son chemin complet/etc/ssh/sshd_config. Pour le modifier, ouvrez ce fichier avec les droits de superutilisateur à l'aide de n'importe quel éditeur de texte.

Avant de modifier, nous le ferons au cas où. sauvegarde déposer:

Sudo cp /etc/ssh/sshd_config(,.bak)

Voyons maintenant son contenu :

Sudo nano /etc/ssh/sshd_config

Après chaque modification de ce fichier, vous devez redémarrer chut- serveur pour appliquer nos modifications.

Comme nous pouvons le constater, il y a ici pas mal de paramètres, nous traiterons chacun d'eux progressivement.

Port

Ici, nous spécifions quel port notre serveur écoutera. Par défaut il écoute 22 port TCP/IP. Fait intéressant que vous pouvez spécifier plusieurs ports. Par exemple:

ÉcouterAdresse

La vue générale des paramètres peut s'écrire comme suit :

Hôte ListenAddress | adresse_IPv4 | Adresse_IPv6 ListenAddress :port

Spécifie l'adresse réseau sur laquelle le serveur « écoutera ».
Si le serveur dispose de plusieurs interfaces réseau configurées pour utiliser différentes PI adresses, vous pouvez alors restreindre l'accès par ce paramètre.
Par exemple, sur le serveur ce qui suit 4 interface réseau:

Eth0 – 192.168.0.1 eth1 – 192.168.0.2 eth2 – 192.168.0.3 eth3 – 192.168.0.4

Défaut chut- le serveur est en état d'attente de connexion PI adresses. Si vous souhaitez que les utilisateurs puissent se connecter uniquement sur les interfaces 2 Et 3 , alors vous devriez faire ceci :

Adresse d'écoute 192.168.0.2 Adresse d'écoute 192.168.0.3

Vous pouvez également spécifier le port ici. Par exemple:

ÉcouterAdresse 192.168.0.2:222

Si le port n'est pas spécifié, chut j'écouterai à cette adresse et
sur le port spécifié dans l'option Port. Si tu utilises ÉcouterAdresse sans préciser le port, puis l'option Port doit être précédé d'une option ÉcouterAdresse. Si vous ne le précisez pas du tout ÉcouterAdresse, puis par défaut le serveur écoute sur toutes les adresses locales.

Adresse Famille

Indique quelle famille PI les adresses doivent être utilisées par le service chut. Options possibles :
"n'importe lequel"- n'importe lequel
"inet"(seulement IPv4)
"inet6"(seulement IPv6)
Défaut - "n'importe lequel".

Il est judicieux, si possible, de limiter la famille d'adresses traitées à celles réellement utilisées, c'est-à-dire si vous utilisez uniquement IPv4- désactiver IPv6, et vice versa.

Par exemple, pour résoudre IPv4 et interdire IPv6 :

AdresseFamille inet

Protocole

chut peut travailler avec des protocoles SSH1 Et SSH2. Dans le même temps, l'utilisation de produits dangereux SSH1 fortement déconseillé. Forcer chut travailler uniquement avec le protocole SSH2 tu peux le faire:

Protocole 2

PermitRootConnexion

Par défaut, connectez-vous au serveur distant en tant qu'utilisateur racine personne ne l'interdit. Mais ce n'est pas entièrement sûr. Au lieu de cela, il serait plus correct de vous connecter en utilisant le nom d'utilisateur compte et augmentez vos privilèges en utilisant la commande 'su -', Ou utiliser 'sudo'.

Si votre organisation dispose de plusieurs administrateurs système et qu'ils se connectent tous au serveur en tant que superutilisateur, il n'est pas toujours possible de savoir quel administrateur se trouve sur le serveur. Par conséquent, après avoir désactivé la possibilité de vous connecter directement sous l'utilisateur racine administrateurs système ils se connecteront d’abord sous leur compte et seulement après cela, ils recevront les privilèges de superutilisateur ; Cela facilitera l'audit du serveur et des actions effectuées par les administrateurs système.
Pour désactiver la fonction ci-dessus, désactivez le paramètre PermitRootConnexion, en définissant la valeur "Non".

PermitRootLogin non

PermettreMots de passe vides

Bloquer les mots de passe vides

PermitEmptyPasswords non

Autoriser les utilisateurs, autoriser les groupes

Par défaut, n'importe quel utilisateur du serveur peut se connecter. Il est préférable de limiter le cercle d'utilisateurs autorisés à accéder à chut.
Cela peut être utile lorsque vous créez un certain nombre d'utilisateurs sur le système, mais autorisez l'accès par chut je n'en veux que quelques-uns.

Pour cela, dans le fichier de configuration sshd_config vous devez ajouter des utilisateurs spécifiques qui existent sur le serveur. Dans l'exemple ci-dessous, ce sont des utilisateurs Jean, Pierre Et Michael, qui sont autorisés à entrer sur le serveur. Les noms d'utilisateur sont séparés par des espaces.

Autoriser les utilisateurs John Peter Michael

Lors de l'ajout de tous les utilisateurs présents dans un groupe spécifique, vous devez le spécifier comme indiqué dans l'exemple ci-dessous. Les groupes d'utilisateurs autorisés à se connecter au serveur sont également séparés par un espace.

Administrateurs des développeurs AllowGroups

Refuser les utilisateurs, refuser les groupes

Au lieu d'autoriser l'accès à des utilisateurs ou des groupes spécifiques, vous pouvez également spécifier des utilisateurs ou des groupes auxquels l'accès au serveur est refusé.
Pour ce faire, ajoutez au fichier de configuration sshd_config paramètre Refuser les utilisateurs, dans lequel, séparés par un espace, indiquent les utilisateurs à qui il est interdit d'accéder au serveur. Dans l'exemple ci-dessous, il s'agit du système apache et aussi tout à fait réel Boris.

Refuser les utilisateurs Apache Boris

Il existe également une option qui vous permet de refuser l'accès non pas à des utilisateurs individuels, mais à des groupes entiers auxquels appartiennent les utilisateurs. Ceci est un paramètre Refuser les groupes et les groupes sont également indiqués par un espace.

Les pirates marketing de DenyGroups

Veuillez noter que vous pouvez utiliser des combinaisons de paramètres d'interdiction et d'autorisation : Refuser les utilisateurs, Autoriser les utilisateurs, Refuser les groupes, Et Autoriser les groupes.

ConnexionGraceTime

Lorsque vous essayez de vous connecter en utilisant chut sur le serveur que vous avez 2 minutes pour saisir votre nom d'utilisateur et votre mot de passe. Si vous ne le faites pas, la connexion au serveur sera perdue. 2 les minutes d'attente pour les données d'autorisation, c'est beaucoup. Devrait se limiter à 1 minutes ou même jusqu'à 30 secondes

Pour ce faire, modifiez le paramètre ConnexionGraceTime en éditant le fichier sshd_config et indiquez-y l'heure souhaitée. Dans l'exemple ci-dessous, c'est 1 minute.

ConnexionGraceTime 1m

ClientAliveInterval

Déconnexion lorsqu'il n'y a aucune activité dans le shell

Après vous être connecté avec succès au serveur, vous souhaiterez peut-être permettre la déconnexion automatique après un certain temps pendant lequel vous n'avez effectué aucune action sur la console. C’est ce qu’on appelle communément le temps d’inactivité.

En utilisant Frapper, vous pouvez y parvenir en changeant variable d'environnement TMOUT.

DANS OuvertSSH ceci est réalisé par une combinaison de paramètres ClientAliveCountMax Et ClientAliveInterval dans le fichier de configuration sshd_config.

  • ClientAliveCountMax— indique la quantité maximale vérifier en vie messages envoyés chut- serveur dont il ne reçoit aucune réponse chut- client. La valeur par défaut est 3.
  • ClientAliveInterval— indique le temps d'attente (timeout) en secondes. Après l'heure spécifiée chut- le serveur enverra vérifier en vie message au client, attendant une réponse de sa part (réponse). La valeur par défaut est 0, c'est-à-dire que le serveur n'enverra pas de messages pour vérification.

Afin que votre chut- le client s'est automatiquement déconnecté après 10 minutes ( 600 secondes), vous devez apporter des modifications au fichier de configuration sshd_config de la manière suivante :

ClientAliveInterval 600 ClientAliveCountMax 0

C'est tout pour le moment. En principe, je pense que c'est déjà suffisant pour une bonne configuration et une sécurité améliorée chut. Dans la partie suivante, nous examinerons quelques paramètres supplémentaires chut- serveur et peut-être pourrons-nous discuter de l'authentification par clé.

Bonne chance à tous et à bientôt sur notre blog !




Haut