Apprenez à maîtriser SSH !

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J’ai commencé (il y a 3 minutes) la rédaction d’un article au doux nom de « Apprenez à maîtriser SSH ! » et j’ai pour objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limites pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l’adresse suivante :

Merci !


Bonjour !

C’est la conversion d’un billet que j’écrivais qui commence à grossir. Je me suis dis que ça serait une bonne idée de le publier en article plutôt et pourquoi pas en béta.

Le contenue n’est pour l’instant pas près à être publié.

\o

+3 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.


Ça avance !
Il ne me reste qu’à finir les 3 parties principales. La redirection de port, l’utilisation du protocole SOCKS et enfin la configuration d’une paire de clés.

Le tutoriel est bourrée de fautes horribles à lire pour l’instant. Je le vois bien, je corrige / reformule à la fin.

  1. Finir la partie SOCKS;
  2. Finir la partie redirection de port;
  3. Finir la partie Utilisation d’une paire de clés;
  4. Corriger les fautes;
  5. Ajoutez les références;
  6. Ne pas oublier les remerciements.

J’espère finir demain :)

+0 -0

Bonsoir @ache,

J’ajoute des idées pour les parties qui ne sont pas encore rédigées :D.

Tout d’abord la partie "Se connecter à un serveur (avancé)" - Port fowarding et Reverse shell.

  • Port forwarding (2 types de redirections : local ou distante)
  • Tunnel SSH
  • Reverse SSH (attention pas reverse shell ! On peut faire du reverse sur tout les protocoles. Par exemple SSH, VNC, WEB, …). Pour cette partie, je recommande même la mise en place d’un service pour plus de stabilité (sous GNU/Linux ça se fait très bien - sous Windows je ne connais pas …).

Ensuite il est possible d’aborder les thèmes suivants :

  • la commande scp qui permet d’envoyer des fichiers au travers de SSH
  • le fichier de configuration SSH : très pratique pour un usage professionnel. L’article que j’ai liéé ne parle que de la connexion de base, mais il est tout à fait possible de traverser des proxy, faire du port forwarding … L’équivalent sous Putty est la partie "Stored Session"
  • la possibilité native de se connecter en sftp si le service openssh-server est installé
  • la mise en place rapide, simple et sécurisé d’un service SFTP grâce à openssh-server : la différence avec le point précédent est qu’ici on n’autorise QUE le SFTP dans un environnement chrooté pour les utilisateurs souhaités (ou groupes d’utilisateurs)
  • utilisation de l’agent SSH ssh-agent
  • le service et le client SSH natif de Windows (pas sur toute les versions …)
  • Cygwin : uniquement la partie openssh. Dans notre cas, cet outil permet la mise en place d’un service SSH sous Windows lorsque les fonctionnalités natives ne sont pas présentes

Si tu as besoins d’un coup de main, je peux aider à la rédaction sur les parties que je connais ;)

+0 -0

Salut.

Je ne comprend pas ton premier passage. Je compte bien parler de reverse Shell (cas particulier d’un reverse SSH). Tunnel SSH, que comptes-tu traiter ici ?

Je ne compte pas parler de scp cette commande est dépréciée. Je ne comptais pas aborder le transfert de fichier mais c’est une bonne idée. Je parlerais certainement de rsync et peut-être de sftp.

On ne peut pas parler d’un fichier de configuration SSH, il y en a plein. Mais une partie sur la configuration est intéressante. Il y a tellement de choses que j’hésite à le faire mais peut-être une version suivante. Parler des différents fichiers de configuration pourrait certainement être un plus ^^ Je le ferais donc en annexe.

Je ne compte pas parler de SSHSF ni de Cygwin, le tutoriel se veut basique et ce n’est pas le sujet. On peut installer OpenSSH sur Android, je l’ai déjà fait. Mais je ne vais pas en parler par exemple.

Si tu te sens d’attaque, je n’ai pas Windows pour tester le client natif de Windows. ^^

Après avoir fini ce que j’ai déjà prévu. Je rajouterais une GROSSE partie sur le debugage. Comment réagir à la plupart des erreurs courantes.

J’espère finir les parties principales ce WE.

+0 -0

Je ne comprend pas ton premier passage. Je compte bien parler de reverse Shell (cas particulier d’un reverse SSH). Tunnel SSH, que comptes-tu traiter ici ?

OK. Tunnel : SSH VPN et SOCKS PROXY (tu parles déjà du second).

Je ne compte pas parler de scp cette commande est dépréciée. Je ne comptais pas aborder le transfert de fichier mais c’est une bonne idée. Je parlerais certainement de rsync et peut-être de sftp

o_O sérieux !?! J’étais pas au courant que scp était dépréciée. Mais du coup tu as trouvé cette information ou ? Car je ne trouve pas l’info sur le man ni sur le net. Après scp fait partie des packages openssh-* tout comme sftp c’est pour cette raison que j’en parlais.

On ne peut pas parler d’un fichier de configuration SSH, il y en a plein. Mais une partie sur la configuration est intéressante.

Parler des instructions les plus utilisées du fichier /etc/ssh/sshd_config est une obligation. Pour ce qui est du fichier ~/.ssh/config je trouve les alias vraiment pratique dans le quotidien professionnel et malheureusement peu connu.

Je ne compte pas parler de SSHSF ni de Cygwin, le tutoriel se veut basique et ce n’est pas le sujet.

Titre du tutoriel : "Apprenez à maîtriser SSH !".

Si tu te sens d’attaque, je n’ai pas Windows pour tester le client natif de Windows. ^^

Arf ! Je suis dans le même cas que toi :)

Je rajouterais une GROSSE partie sur le debugage. Comment réagir à la plupart des erreurs courantes.

Super ! J’ai hâte de lire !

Après c’était juste des suggestions, et comme c’est beaucoup de travail je proposais un coup de main ;)

Je ne compte pas parler de scp cette commande est dépréciée. Je ne comptais pas aborder le transfert de fichier mais c’est une bonne idée. Je parlerais certainement de rsync et peut-être de sftp

o_O sérieux !?! J’étais pas au courant que scp était dépréciée. Mais du coup tu as trouvé cette information ou ? Car je ne trouve pas l’info sur le man ni sur le net. Après scp fait partie des packages openssh-* tout comme sftp c’est pour cette raison que j’en parlais.

Release Notes OpenSSH 8

The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. Source: Release Notes

On ne peut pas parler d’un fichier de configuration SSH, il y en a plein. Mais une partie sur la configuration est intéressante.

Parler des instructions les plus utilisées du fichier /etc/ssh/sshd_config est une obligation. Pour ce qui est du fichier ~/.ssh/config je trouve les alias vraiment pratique dans le quotidien professionnel et malheureusement peu connu.

L’analogue de /etc/ssh/sshd_config est /etc/ssh/ssh_config, j’en parle vite fait déjà dans le tutoriel. Et non ce n’est pas une obligation. Je souhaite parler de l’utilisation de plusieurs clé SSH donc à un moment il va bien falloir que je parler de .ssh/config.

Je ne compte pas parler de SSHSF ni de Cygwin, le tutoriel se veut basique et ce n’est pas le sujet.

Titre du tutoriel : "Apprenez à maîtriser SSH !".

Ce n’est qu’un titre légèrement racoleur.

+1 -0

Hey !

Des news.

Du coup, j’ai écris une partie sur la configuration. Je travail sur une annexe à propos des outils externes (rsync, ftp, sshfs, …). Le tutoriel est encore lacunaire. Il manque encore pas mal de trucs. Je m’attendais à aller plus vite ._.

Je ne connaissais pas le VPN SSH, j’en parlerais soit dans une prochaine version soit dans un tutoriel/partie annexe. En vrai, j’aimerais vraiment que ce soit un tutoriel d’introduction en premier lieu. Un truc que je peux passer à un collègue, un pote et lui dire « t’inquiète y a rien de complexe ». Si je commence à parler de VPN dans la rubrique principale, là je vais perdre le publique visé.

+3 -0

Plop,

Je ne connaissais pas le VPN SSH, j’en parlerais soit dans une prochaine version soit dans un tutoriel/partie annexe. En vrai, j’aimerais vraiment que ce soit un tutoriel d’introduction en premier lieu. Un truc que je peux passer à un collègue, un pote et lui dire « t’inquiète y a rien de complexe ». Si je commence à parler de VPN dans la rubrique principale, là je vais perdre le publique visé.

ache

Juste pour dire, de manière générale, le VPN via SSH est plutôt à proscrire, sauf si le débit nécessaire est faible. En effet, créer un VPN via SSH suppose d’encapsuler du TCP… dans du TCP et ça marche assez mal (une recherche « TCP over TCP » donne pas mal de détails là-dessus). En bref, préférez de l’UDP, comme le permet OpenVPN par exemple.

+1 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

J’ai pris en compte les remarques et rajouter pas mal de contenu ! Le texte me semble prêt à commencer son processus de validation. :D

Merci d’avance pour vos commentaires.

+0 -0

Salut.
J’ai lu en très grande diagonale.
Dans la partie connexion via clé, tu montres comment générer des clés RSA, pourquoi ne pas partir directement sur de l’ed25519 ? Il me semble que c’est ce qui est conseillé recommandé par l’anssi. Quitte à faire une balise info vite fait du pourquoi du comment le type.
D’ailleurs lorsque tu parles de la vérification de clé à coup de ssh-keygen -lvf, tu quotes bien une ed25519.
Ça peut aussi amener des petites configs en plus dans le sshd_config pour utiliser uniquement du chiffrement rapide et sur : Ciphers, KexAlgorithms, pour ne citer que ça.

Merci pour le taf, bonne continuation.

+0 -0

J’aimerais vraiment écrire une partie là dessus.

Quelque chose comme « La sécurité de SSH ». Ça parlerait d’algorithme, de ssh-audit et de la sécurité alternative (fail2ban, changement de port et port knocking).

Mais actuellement, je n’ai pas le temps et je ne suis pas sûr que ça rentre dans le cadre de ce tutoriel. Par-contre, je rajoute une balise info. Car comme tu dis, ça vaut quand même le coup d’en parler.

D’ailleurs, merci ! Pour mes algorithmes de clés, j’utilise aléatoirement du RSA 4096b, RSA 3048b ou ed25519 256. Je sais que basiquement avec ces algos et cette taille de clé, je suis ok. Mais je ne savais pas que l’ANSII recommandait ecdsa à rsa par exemple !

Je n’utilise jamais ecdsa mais pourquoi pas.

Bref, je rajoute une balise info. Merci beaucoup pour la relecture.

+0 -0

Salut,

J’ai relu le début de ton article (je me suis arrêté juste avant « la redirection de port ») et je continuerai plus tard, mais voici déjà quelques remarques et corrections.

Dans l’introduction tu parles d’un billet, par endroits d’un tutoriel et sinon tu nous présentes ce contenu comme un article, je pense que tu gagnerais à uniformiser un peu les termes.

Dans la première partie (« Histoire de SSH ») tu as plusieurs passages qui ne sont pas très clairs, par exemple quand tu parles d’email « de numéro 11 ». Il n’est pas évident de comprendre ce que vient faire l’« utilisateur défaillant » sur le réseau, je pense qu’il faudrait expliciter comment/pourquoi il a accès à ces données qui transitent. Je ne comprends pas bien non plus l’exemple sur le pain et le fromage : au pire il s’agit d’une publicité non désirée et pas d’un vrai problème de sécurité.
De même, j’ai du mal à suivre l’idée des emails pour présenter SSH alors que ce n’est pas ce qui est utilisé, j’ai plutôt l’impression de lire une introduction à SSL (qui n’est pas mentionné).

Aussi tu as quelques formulations un peu lourdes ou répétitives :

  • « pour comprendre il faut comprendre »
  • « les acteurs du réseau étaient connus et maîtrisés » / « tous les acteurs étaient des acteurs de confiance »
  • « ils sont les piliers de la cryptographie » / « ce sont les bases de la sécurité »
  • « Des solutions ont émergé. Il existait également d’autres solutions » / « mais aucune solution »
  • « Après avoir reçu un nombre énorme de demandes d’assistance, Tatu décida de créer une société d’assistance. »
  • « Désormais […]. Les implémentations récentes sont donc désormais compatibles entre elles. »

Et je trouve que certaines de tes phrases ont tendance à être très voire trop courtes (« Parallèlement, des gens de toute la terre étudient le fonctionnement de SSH. Des problèmes de sécurité sont rapidement trouvés. »).

Dans la partie suivante (« Installation d’un serveur SSH simple »), je note que tu montres le statut du service systemd sans présenter la commande qui permet de l’obtenir.

Quelques lourdeurs encore dans la partie « Connexion à un serveur SSH » au moment où tu expliques que l’empreinte n’est pas censée être acceptée à chaque connexion : « il est normal qu’il s’affiche la première fois » / « il n’est pas normal » / « vous ne devez l’avoir que la première fois ».
Tu montres l’exécution de SSH comme une « conversation », est-ce que le terme est vraiment approprié ?

Aussi, je pense qu’un paragraphe pourrait être dédié aux « lancements alternatifs », là il paraît un peu tôt de parler de l’option -n (qui n’a a priori pas été utilisée, et sans indiquer ce que fait cette option), idem pour -f.

Je trouve que la partie « Copier un fichier » arrive un peu comme un cheveu sur la souple. On vient d’apprendre à se connecter à un serveur et l’on n’a encore rien fait dessus qu’on cherche à y envoyer des fichiers, ça ne me paraît pas être le besoin premier quand on découvre SSH.

Certaines explications sur sftp manquent un peu de clarté, notamment la note sur l’activation par défaut : la ligne d’activation serait présente dans le fichier généré, mais pourtant l’option ne serait pas activée ? Je ne comprends pas non plus pourquoi on passe d’un coup à psftp mais que les options décrites ensuites soient celles de sftp.

À plusieurs moments tu parles de fichiers « déplacés » mais ils ne sont en fait que copiés : ils existent toujours sur la source.
Aussi plusieurs exemples que tu présentes ne correspondent pas à ce que tu dis, il n’y a pas de sauvegarde dans le dossier /media/mon_fichier par exemple, et tu ne copies pas seulement le fichier /home/ache/photos/Italie/francesca.png mais tous les fichiers du répertoire.

Les explications sur pwd et lpwd sont assez claires, mais les résultats que tu montres ne sont pas cohérents entre tes exemples, on se téléporte de dossier en dossier sans avoir demandé à en changer.
Au niveau de la commande get, tu la présentes juste avant de la présenter à nouveau, c’est un peu étrange. Et pour ce qui est du put, je te trouve un peu flou sur les arguments que la commande attend, tu mélanges ça avec la présentation des chemins relatifs et absolus et n’expliques jamais vraiment comment sont gérés les répertoires en arguments.

Difficile aussi de te suivre sur les commandes locales / distantes et le préfixe l : tu dis par exemple que la « version locale » de ls est toujours précédée d’un l quand elle existe… mais elle existe toujours. Je vois où tu veux en venir mais c’est un peu tordu.
Le préfixe ! n’est pas tellement expliqué non plus.

Sinon j’ai noté que l’ancre pour la note sur sftp était mauvaise (ça amène sur une note d’une précédente partie), que tu avais des chevrons dans un exemple de configuration (« Subsystem›sftp› internal-sftp »), et que tu annonces à deux reprises qu’on est connecté au serveur (« Et voilà, vous êtes connecté à un serveur. » / « À partir de maintenant, une connexion entre les deux ordinateurs est établie. »).

Quant à rsync, tu parles d’algorithme incrémental et de comment s’en passer, mais tu n’expliques pas en quoi il consiste. Tu n’es pas très clair sur le fait que l’on « possède déjà une partie de la source », rsync marche aussi très bien pour une première copie.
On notera que l’option -a (archive) ne se limite pas à la copie des métadonnées, elle inclut d’ailleurs l’option -r (recursive) que tu présentes plus loin.

Enfin, je me suis arrêté là pour le moment mais j’ai tout de même remarqué qu’il y avait un problème de titres dans la partie « La redirection de ports ». Tu fais un court paragraphe introductif comme quoi tu vas présenter plusieurs usages avancés… pour finalement ne faire qu’une sous-partie sur « la redirection de ports ».

Voilà pour les remarques générales, et j’ajoute ci-dessous les fautes d’orthographe/grammaire que j’ai relevées en lisant. Merci pour cet article en tout cas, et bon courage pour la suite.

Intro

Phrase Correction
« tous d’abord » « tout »
« un plus avancées » il manque un « peu »
« connection » « connexion » (plusieurs occurrences de la faute)

Histoire de SSH

Phrase Correction
« il comprend le contexte de l’époque » « il faut comprendre »
« Nous sommes dans au milieu » « dans au milieu »
« en sommes » « en sommmes »
« On voit que ici, utilisateur entre une command » « l'utilisateur entre une commande »
« et ce que le serveur sont tous deux du texte » « et ce que le serveur envoie »
« communication en claire » « en claire » (plusieurs occurrences de la faute)
« Ainsi ce que l’utilisateur à taper et l’e-mail qu’il a reçu est librement accessible » « […] a tapé […] sont librement accessibles »
« les un entre les autres » « les uns »
« étaient connus et maîtriser » « maîtrisés »
« un internet mondiale » « mondiale », mais la formulation reste assez étrange
« Ce sont les piliers le cryptographie » « de la »
« Le manque de sécurité à très vite posé » « a très vite »
« mots de passes » « passes »
« Des solutions ont émergées » « émergées »
« après que l’université ait été victime » « a été »
« ce qu’il avait crée » « créé »
« un nombre énorme de demande » « demandes »
« IEFT » « IETF » (plusieurs occurrences de la faute)
« qui à pour but » « a »
« qui s’accorde comme elles peuvent » « s’accordent »
« et se fonctionne » « et se fonctionne »
« tirant sont origines » « sont origines »
« Très accès » « a »
« une implémentation de SSH2 nommé » « nommée »
« Aux fils des années » « Aux fils »
« il existe ainsi différente implémentation de SSH2 » « différentes implémentations »
« sont plus où moins compatible entre elle » « plus ou moins compatibles entre elles »
« à tout d’abord été publié » « a » + féminin sachant que tu parlais d’une implémentation ?
« on n’utilise uniquement » « on n'utilise »

Installation d’un serveur SSH simple

Phrase Correction
« Il existe une interface graphique permettant d’activer le serveur SSH cependant, je n’ai pas les moyens matériels de décrire la procédure » manque de ponctuation
« Peut-être un jour ou j’aurais » « où j’aurais »
« Ce sera soit openssh-server afin soit openssh » « afin »
« Ouvrez donc un terminal et entrer » « entrez »
« Si systemd indique que le serveur SSH est démarré et est prêt à être utilisé ! » la formulation est étrange
« La description des différentes options sont disponibles » « est disponibles »
« les options de ligne de commande » « de la ligne »

Connection à un serveur SSH

Phrase Correction
« Connection » « Connexion »
« Quand vous avez fini, confirmer » « confirmez »
« Lors de votre première connexion, vous deviez voir » « devriez »
« PuTTY se trouver très certainement » « trouver »
« Après avoir installé et lancer PuTTY » « lancé »
« un message vous demandez de confirmer » « demandant »
« Il n’y plut qu’à confirmer » « plus »
« Il n’est pas normal que l’emprunte » « empreinte » (plusieurs occurrences de la faute)
« Vous deviez n’avoir ce message que la première fois » « devriez »
« le serveur à changer » « a changé »

Copier un fichier

Phrase Correction
« Il existe différente solutions » « différentes »
sftp
Phrase Correction
« soit bien configurer » « configuré »
« la non activation de la sftp » « de la sftp » ?
« Rien de bien compliquer » « compliqué »
« au transfert de fichier Pour faire » manque un point
« absolut » « absolut » 🍸 (plusieurs occurrences de la faute)
« Pour lister les fichiers et dossier » « dossiers »
« Vous devez dans un premier temps le copier ensuite le supprimer » manque un mot
« rm mon_chier » « mon_fichier », sois poli bordel !
« on récupère […] et je le sauvegarde » concordance
rsync
Phrase Correction
« mais orienter synchronisation » « orienté »
« de fichiers entre serveur » « serveurs »
« dont une la destination » une ou la ?
« simplement entre vers un serveur » entre ou vers ?
« la date de création et modification » « et de modification »
« le type de fichier spéciaux » « fichiers spéciaux »
scp
Phrase Correction
« À termes » « À termes »
« de bugs […] qui ne peuvent être corrigée » « corrigés »

@ache Je vois que cet article a été mis à jour en octobre, ce qui me fait penser qu’il n’est pas à l’abandon. Comptes-tu encore bosser sur cet article pour le publier ? Il m’a l’air déjà bien parti donc ça serait dommage de le laisser en béta sans jamais le publier. On peut aussi essayer de t’aider en cas de besoin !

Coucou @Migwel !

Pendant longtemps l’article a été mis en validation. Il y a deux mois environs je l’ai retiré car il ne me convenais plus. Je vais le restructurer dès mi-mars. Mon emploi du temps ne me permet pas de bosser sur le sujet avant cette date. :/

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte