Serveur d'impression

en / SSH – Wiki Debian – Bien choisir son serveur d impression

Le 24 janvier 2020 - 15 minutes de lecture


Traduction (s): Deutsch – English – Español – Français – Italiano – Português Brasileiro

ToDo: fusionnez (et traduisez) cette page avec la version anglaise

introduction

SSH1 (& # 39; Srécuré SHell ") est un protocole de communication sécurisé. Entre autres, il vous permet de vous connecter à un hôte distant en toute sécurité sur un réseau qui ne l'est pas nécessairement. Allez sur Wikipedia – Secure Shell pour plus d'informations, ainsi que ssh, lsh-client ou dropbear pour découvrir quelques implémentations du protocole SSH présent dans Debian, avec bien sûr OpenSSH qui est probablement le plus populaire2. SSH remplace et améliore telnet, rlogin et rsh, qui sont tous des protocoles de communication distants mais n'incluent aucune couche de sécurité.

Dans ce document, nous utiliserons la suite OpenSSH, et on supposera également que les deux variables suivantes seront définies:

remote_host =
remote_user =

Par conséquent, pour reproduire les commandes ci-dessous, assurez-vous de remplacer ces valeurs par celles qui vous intéressent. Notez également que "remote_host" peut être une adresse IP.

Installation

Installation client

Normalement, le client est installé par défaut, sinon il suffit d'entrer en tant que superutilisateur:

apt-get install openssh-client

Installation du serveur

La partie serveur permet aux hôtes distants de se connecter à votre système et sera installée en tant que superutilisateur comme suit:

apt-get install openssh-server

Fichiers de configuration

Les principaux fichiers de configuration se trouvent dans le répertoire / Etc / ssh :

De plus, ce répertoire contient les paires de clés privées / publiques identifiant vos hôtes:

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub

Depuis OpenSSH 5.73, une nouvelle paire de clés est apparue:

  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub

Depuis OpenSSH 6.54, une nouvelle paire de clés est apparue:

  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

Régénérer les clés d'hôte

rm / etc / ssh / ssh_host_ *
dpkg-reconfigure openssh-server

Accès sur une machine distante

Avec mot de passe

Si vous souhaitez vous connecter à la machine $ remote_host avec l'utilisateur $ remote_user, entrez simplement

ssh $ remote_user @ $ remote_host

et entrez votre mot de passe.

Si le nom d'utilisateur sur le système local et la machine distante sont identiques, vous pouvez omettre la partie $ remote_user @ et simplement entrer

ssh $ remote_host

Si c'est la première fois que vous vous connectez à l'hôte distant, le client ssh vous demandera si vous êtes sûr de vouloir vous connecter à la machine distante. Répondez «oui» après avoir vérifié l'empreinte digitale du serveur et entrez votre mot de passe, afin que ssh vous connecte à l'hôte distant.

Utilisation de clés partagées

L'une des fonctionnalités prises en charge par SSH est l'utilisation de deux clés privées / publiques pour se connecter à l'hôte distant. Aussi nommé Clés SSH, cette méthode permet, si vous vous connectez souvent à un hôte distant, de ne pas saisir à chaque fois son mot de passe. Pour ce faire, vous devez générer quelques clés privées / publiques sur votre ordinateur local et déposer la clé publique sur l'hôte distant.

  • Pour générer la clé, nous utilisons le programme ssh-keygen
ssh-keygen -t rsa

Ce programme générera quelques clés privées / publiques dans le répertoire ~ / .ssh. Le programme vous demande d'abord le répertoire de destination des clés, par défaut votre répertoire personnel, une phrase secrète est alors demandée.

Remarques: nous vous conseillons de ne pas laisser la phrase secrète vide. En effet, un attaquant qui a récupéré votre clé privée pourrait alors facilement se connecter à tous les hôtes sur lesquels vous avez déposé votre clé publique si la phrase secrète est vide. Pensez à choisir une phrase de passe longue et complexe.

Votre clé privée est id_rsa (vous ne devez jamais la fournir à un tiers), votre clé publique est id_rsa.pub.

Vous devez copier votre clé publique sur l'hôte distant avec la commande ssh-copy-id

ssh-copy-id -i ~ / .ssh / id_rsa.pub $ remote_user @ $ remote_host

Vous pouvez maintenant simplement vous connecter à l'hôte distant, vous êtes invité à saisir la phrase secrète. Une fois retourné, vous êtes connecté à l'hôte distant. En cas de nouvelles connexions, la phrase secrète ne vous sera plus demandée pendant toute votre session.

Gestion des clés

Interfaces graphiques pour la gestion des clés

En option, Seahorse est une application GNOME pour gérer facilement les mots de passe et les clés de cryptage, via une interface graphique intuitive. Seahorse est capable d'effectuer diverses opérations telles que la création de clés SSH ou PGP, leur configuration et leur mise en cache. Consultez cette page pour plus d'informations.

sécuriser

Serveur SSH

Par défaut, un serveur SSH est relativement sécurisé. Il est possible, en utilisant quelques options ou outils de configuration, de rendre encore plus difficile biscuit salé.

  • /! L'utilisation de la dernière version disponible du package openssh-server permet de se protéger contre l'utilisation de failles de sécurité connues.

  • Activez l'authentification par clés SSH uniquement avec des mots de passe / phrases. Désactivez l'authentification par mot de passe unique.

  • Vous pouvez utiliser fail2ban, un logiciel de surveillance des fichiers journaux qui interdit automatiquement une adresse IP après un nombre prédéfini de tentatives de connexion ayant échoué. Il fournit une protection automatique contre les attaques par force brute.

  • Les meilleures pratiques d'utilisation de SSH sont disponibles à l'adresse http://lackof.org/taggart/hacking/ssh/

Options de configuration

(!) Vous devez modifier le fichier / etc / ssh / sshd_config pour ajuster le paramètre, puis redémarrer le serveur SSH en

service ssh restart

  • Désactiver l'utilisation du mot de passe pour l'authentification (PasswordAuthentication no)

  • Désactiver l'utilisation du compte racine (PermitRootLogin non)

  • Autoriser uniquement certains utilisateurs ou groupes d'utilisateurs à se connecter (AllowUsers et AllowGroups)

JE Les options AllowUsers et AllowGroups n'améliorera pas la sécurité d'un serveur SSH. Mais, dans certains cas, leur utilisation leur permet de résister un peu plus longtemps lors d'attaques par force brute.

Outils externes

  • fail2ban: permet de «blacklister» automatiquement en utilisant des adresses IP iptables essayant d'attaquer par " Force brute " un serveur SSH.

  • denyhosts: comme fail2ban, denyhosts vous permet de bloquer les adresses IP en essayant de forcer une connexion SSH. Mais contrairement à fail2ban, il n'utilise pas iptables, mais le fichier "/Etc/hosts.deny".

Client SSH

Meilleures pratiques avec le client SSH

Fonctions supplémentaires

Afficher des fichiers dans une interface graphique

Dans les gestionnaires de fichiers tels que Konqueror, Dolphin, Krusader et Midnight Commander, vous pouvez utiliser FISH pour afficher des fichiers graphiquement en utilisant:

poisson: // nom d'utilisateur @ nom_serveur_ou_ip

Commandes supplémentaires

scp

scp $ source_file $ remote_user @ $ remote_host: $ destination_file

  • Récupération d'un fichier sur la machine locale:
scp $ remote_user @ $ remote_host: $ source_file $ destination_file

sftp

mode texte

mode graphique


ssh-agent et ssh-add

eval `ssh-agent -s`

Ou, avec un shell C:

eval `ssh-agent -c`

La première fois que vous chargez une clé privée, il vous sera demandé sa phrase secrète et ssh-agent se souviendra de la clé. Par la suite, il ne sera plus nécessaire d'y entrer.

ssh-add peut être utilisé pour gérer les clés conservées:

  • Chargement d'une clé: ssh-add $ private_key

  • Liste les clés disponibles: ssh-add -l

  • Suppression de toutes les clés chargées: ssh-add -D

porte-clés

Le trousseau, fourni par le package trousseau, est un script shell facilitant l'utilisation d'un seul agent SSH pendant plusieurs sessions du même utilisateur. En effet, lors du premier lancement, ssh-agent crée une socket permettant la communication avec SSH. Ce socket n'est référencé que dans l'environnement de la session utilisée lors du démarrage de l'agent. Le trousseau vous permet de garder la trace de l'agent et de propager l'accès à cet agent à d'autres sessions, ce qui vous permet de limiter à une seule instance de ssh-agent par utilisateur sur une machine donnée.

ssh-askpass

libpam-usb

  • libpam-usb (disponible uniquement jusqu'à Debian Jessie) est un outil d'authentification à l'aide d'une clé USB. Ce package comprend un outil pratique: pamusb agent. Cet outil permet de charger les clés SSH présentes sur la clé USB lorsqu'elle est connectée et de les décharger lorsqu'elle est déconnectée du système.


Télécommandes

Si vous souhaitez simplement exécuter une commande sur l'ordinateur distant, vous n'avez pas besoin de vous connecter à la machine hôte pour vous identifier, puis exécutez la commande. Vous pouvez demander à votre client SSH de démarrer la commande directement, par exemple:

ssh $ remote_user @ $ remote_host & # 39; ls * .txt & # 39;

Cela répertoriera tous les fichiers avec l'extension .txt sur la machine hôte. Cela fonctionne avec des guillemets simples & # 39; … & # 39; comme monté ici, avec des guillemets doubles et sans les guillemets. Il pourrait y avoir des différences entre ces trois possibilités. Cependant, cela n'est pas encore documenté ici.

Connexion SSH dans Debian à partir d'un autre système d'exploitation

Meilleures pratiques pour l'utilisation de SSH

Vous doit lire ceci: http://lackof.org/taggart/hacking/ssh/

Ce document résume de nombreuses bonnes pratiques que les utilisateurs SSH réguliers doivent suivre afin de ne pas compromettre la sécurité de leurs comptes (et de la machine entière en même temps).

Configurez votre ~ / .Ssh / config pour n'envoyer que la bonne clé.

Hôte master.debian.org
    Compte utilisateur dd
    IdentityFile ~ / .ssh / id_rsa
    IdentitésSeulement oui

SSH et sécurité

Serveur SSH

  • Pensez à utiliser fail2ban qui est un superviseur de fichier journal qui interdit automatiquement une adresse IP après un nombre prédéfini de tentatives de connexion infructueuses. Protège contre les attaques par force brute.

  • Utilisez l'authentification SSH par clés plutôt que par mot de passe.

Client SSH

Autoriser l'accès à un réseau extérieur via un pare-feu sans modifier sa configuration

  • Par sa mise en œuvre, SSH permet de transporter («tunnel») d'autres protocoles d'application, permettant ainsi de les chiffrer.

Tunnel SSH pour sécuriser d'autres applications

Options additionelles

Applications graphiques (X11Forwarding)

pop3

imap

smtp

Divers

Options de ligne de commande SSH (séquences après échappement ~)

  • ~. : Se déconnecter

  • ~ ^ Z : Passez la connexion en arrière-plan.

  • ~ # : Affiche les tunnels actuels.

  • ~ & : Envoie la session en arrière-plan lors d'une demande de fin de session SSH lorsqu'il existe un tunnel X11

  • ~? : Affiche l'aide.

  • ~ B : Envoie-le Pause (uniquement en SSH2)

  • C ~ : Passer en mode commande.

Options de configuration pour le fichier authorized_keys


CatégorieCatégorie réseauLogiciel

  • Le fichier touches_autorisées est le fichier contenant les clés publiques permettant à un utilisateur de s'authentifier à l'aide de sa clé privée. La configuration de ce fichier, trouvée dans ~ / .Ssh, peut être très utile dans certains cas. Sa syntaxe est:

    option1, option2, optionN type-key key-in-base64 commentaire.

  • le les options :

    • de = "*. domain.tld, machine.domaine2.tld" : autorise uniquement la connexion de toutes les machines du domaine domain.tld et de la machine machine.domain2.tld

    • de = "! badguy.domain3.tld" : refuse les connexions initiées par la machine! badguy.domain3.tld.

    • command = "/ chemin / vers / commande" : force l'exécution de la commande / path / to / command

    • environnement = "VAR = valeur" : permet de forcer la définition des variables d'environnement.

    • Open-enabled = "hôte: port" : permet uniquement l'ouverture d'un tunnel pour héberger: port

    • pas de redirection de port : empêche l'utilisation de tunnels TCP

    • pas de transfert X11 : empêche l'utilisation du tunnel X

    • transfert sans agent : empêche le transfert de ssh-agent

Aidez-moi

Offset de la version OpenSSL. Construit avec la version 1000105f, vous avez le numéro de version 10001060

Si vous avez un tel message d'erreur lors du démarrage du démon ssh, vous devez exécuter la commande:

apt-get install openssh-server openssh-client

Voir aussi le rapport de bogue.

SSH plante

Problème

Vous essayez d'utiliser SSH sur un ordinateur distant. Mais pendant la connexion, SSH se bloque ou se fige. Par conséquent, vous ne parvenez pas à accéder à l'invite de commandes et ne pouvez pas utiliser les lignes de commande SSH. :( Lors de l'utilisation du mode de débogage SSH, la session se bloque sur la ligne suivante debug2 canal 0: double rwindow confirmé 0 rmax 32768

Cause possible

Cela peut se produire avec certains routeurs derrière NAT et lors de l'utilisation d'OpenSSH. Lors de la configuration de la session, après avoir donné le mot de passe, OpenSSH définit le champ TOS (type de service) dans le datagramme IP. Le routeur le frappe. L'effet est que votre session SSH se bloque indéfiniment. En d'autres termes, les commandes ou connexions SSH fonctionnent rarement ou jamais.

Résolution avec IPQoS 0x00

Jusqu'à ce que le fabricant du routeur corrige son micrologiciel, il n'y a qu'une seule solution pour résoudre le problème:

  1. Vérifiez que les versions de openssh-server et openssh-client sont au moins la version 5.7. Par exemple, la solution ci-dessous devrait fonctionner avec Debian Wheezy 7.11 ou une version plus récente de Debian, car la première a la version 6.0 d'OpenSSH.

  2. Modifiez l'une des deux lignes suivantes situées à:

    ~ / .Ssh / config

    ou

    / Etc / ssh / ssh_config

    Remarque: le fichier config est par utilisateur et le fichier ssh_config est pour tous les utilisateurs et l'ensemble du système. Si vous n'êtes pas sûr, modifiez le fichier config correspondant à votre utilisateur.

    Contenu du fichier avant

    Hôte *

    Contenu du fichier après

    Hôte *
      IPQoS 0x00

  3. Si une fenêtre de terminal est déjà ouverte, fermez-la pour mettre fin à toute session SSH active.
  4. Pas besoin de redémarrer OpenSSH ou votre système Debian. Essayez de vous connecter par SSH à un serveur distant. Ça devrait marcher. Vous venez de résoudre ce problème :)

Merci à Joe et catmaker pour cette astuce :)

Documentation connexe: https://www.openssh.com/txt/release-5.7

Résolution avec Netcat

/! AVERTISSEMENT : Il est suggéré d'utiliser la solution avec IPQoS 0x00 au lieu d'utiliser l'option netcat /ProxyCommand nc% h% p, car IPQoS 0x00 est l'option intégrée officielle d'OpenSSH. En outre, IPQoS 0x00 est une solution plus directe et potentiellement plus sécurisée pour résoudre ce problème. IPQoS 0x00 utilise le cryptage SSH intégré pour des transferts sécurisés. En comparaison, netcat n'offre pas de transfert sécurisé. Sources: 1 2. Lisez, si vous choisissez d'utiliser l'option netcat /ProxyCommand nc% h% p.

Une autre option pour résoudre ce problème de blocage SSH consiste à utiliser ProxyCommand nc% h% p. Pour ce faire, utilisez les mêmes étapes que pour la solution avec IPQoS 0x00, mais remplacez IPQoS 0x00 avec

ProxyCommand nc% h% p

Gardez la connexion SSH active

Pour des raisons de sécurité, une connexion SSH est automatiquement fermée, par défaut, après un délai spécifié. Mais dans certains cas, vous souhaitez garder cette connexion ouverte, comme dans le cas du stockage cloud via une connexion SSH.

/! AVERTISSEMENT : Avant d'activer l'option de maintien de la connexion SSH active, il est suggéré d'envisager de sécuriser votre client et serveur SSH. Par exemple, il est risqué de laisser les connexions SSH ouvertes si les utilisateurs laissent leur ordinateur déverrouillé et sans surveillance, n'importe qui pourrait alors s'approcher du PC et, simplement en utilisant la commande passwd, peut changer le mot de passe et ainsi accéder au serveur. Faites preuve de bon jugement.

Pour un serveur Debian 7.x

Étapes pour maintenir une connexion SSH active.

  1. Sur le serveur SSH, modifiez le fichier "/ Etc / ssh / sshd_config"

  2. Ajoutez ce qui suit à la fin de ce fichier

    # Gardez la connexion SSH du client active en envoyant toutes les 300 secondes un petit paquet de maintien en vie au serveur afin d'utiliser la connexion ssh. 300 secondes équivalent à 5 minutes.
    ClientAliveInterval 300
     
    # Déconnectez le client après 3333 demandes "ClientAlive". Le format est (ClientAliveInterval x ClientAliveCountMax). Dans cet exemple (300 secondes x 3333) = ~ 999 900 secondes = ~ 16 665 minutes = ~ 277 heures = ~ 11 jours.
    ClientAliveCountMax 3333

  3. En tant que superutilisateur, redémarrez le service SSH

    service sshd restart

Notez que sur les versions récentes de Debian Wheezy (c'est-à-dire avec les mises à jour de novembre 2015), la commande ci-dessus ne fonctionne plus et renvoie l'erreur suivante:

sudo service sshd restart
sshd: service non reconnu

Cependant, la commande suivante fonctionne:

sudo service ssh restart
[ ok ]    Redémarrage du serveur OpenBSD Secure Shell: sshd.


CatégorieCatégorie réseauLogiciel

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.