Forum Linux.général Application par tunnel SSH

Posté par  .
Étiquettes : aucune
0
5
mar.
2008
Bonjour à tous,

je souhaite créer un tunnel SSH afin de faire passer une appli dedans du type nedit (vachement utile me direz-vous).
Voilà le contexte:
je suis sur une machine cliente.
Je veux travailler sur mon super logiciel nedit qui se trouve être sur le serveur loin là-bas.
Pour ne pas être pris en train de rédiger mes comptes-rendu sous un logiciel non microsoft, je souhaite utiliser un tunnel par lequel passera donc mon application nedit.
mais comment faire?
je tente la commande # ssh -N -f login@serveur -L1025:serveur:1025 sleep 60
mais je ne vois pas ou mettre nedit la dedans... :(

Si une bonne âme voulait bien me venir en aide, ça serait gigacool :P

PS: j'ai déjà regardé sur Google, et lu pas mal de doc mais je ne trouve pas comment faire pour ça en fait...

Salut!
  • # Export du display ?

    Posté par  . Évalué à 3.

    Si j'ai tout compris
    ssh login@serveur -X
    et une fois sur le serv
    > nedit
    l'interface de nedit (et juste l'interface) apparaitra sur ton écran local

    le tunnel sert à rediriger des ports d'une machine vers une autre machine, typiquement quand tu veux faire du msn de ton boulot alors que seul le 80 sort, ou tout simplement acceder une machine C à partir de A alors que normalement seul B (qui à un serveur ssh installé) y a accès, et plein d'autres trucs marrants.
    Avec ta ligne de commande, si tu écrit en local sur le port 1025, tout ce que tu auras écrit sera envoyé au port 1025 de ton serveur (si quelque chose écoute)
    • [^] # Re: Export du display ?

      Posté par  . Évalué à 2.

      ou ssh -X serveur nedit
      • [^] # Re: Export du display ?

        Posté par  (site web personnel) . Évalué à 4.

        Dans la config /etc/ssh/sshd.conf ne pas oublier :
        export display = On (un truc comme ça)
        Et, mieux, interdire le login root.
        Eventuellement, changer le port.

        pour la connexion, comme dit plus haut :
        ssh -XC -p port user@serveur

        et ensuite, tu lances tes applications, nedit, konqueror....

        Le -C, c'est pour compresser le flux, donc, si ça passe par l'upload Internet, c'est mieux.

        Une bonne doc :

        http://www.coagul.org/spip.php?article168&var_recherche=(...)

        Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

        • [^] # Re: Export du display ?

          Posté par  . Évalué à 1.

          Ok, ok, merci à tous pour vos explications.
          Mais alors, la sécurité elle est ou là-dedeans?
          - Qu'est ce qui est crypté quand je travaille sur Nedit par SSH?
          - Qui c'est qu'est dans le tunnel :? ?

          Merci encore
          • [^] # Re: Export du display ?

            Posté par  . Évalué à 1.

            Ce qui est chiffré c'est les appels vers le serveur X, la seule chose qui passe dans le tunnel, en gros l'interface graphique et les commandes que toi tu tapes. Et ce n'est bien sur chiffré qu'au niveau du réseau. Un attaquant sur ta machine, ou sur la machine distante pourra tres bien sniffer ce qui passe entre l'entrée/la sortie du port ssh et ton client/serveur X
            • [^] # Re: Export du display ?

              Posté par  . Évalué à 1.

              Oui, mais c'est déjà pas mal. Le serveur X, c'est mon Xorg, c'est ça?
              Donc en gros, j'ai un tunnel qui empeche les gens de voir au ce qui passe dedans, et dans ce tunnel, j'ai tout ce que je fais qui passe, n'est-ce pas?
              Donc, c'est quand même good ça, niveau sécu, non?
              • [^] # Re: Export du display ?

                Posté par  . Évalué à 1.

                le serveur X cest en effet xorg
                le client X cest dans ton cas nedit
                et en effet cest good niveau secu, surtout si tu fais ça en wifi, ou que tu n'as pas confiance dans le cablage qu'il y a entre ta machine et ton serveur distant
                • [^] # Re: Export du display ?

                  Posté par  . Évalué à 1.

                  Ok, merci.
                  Maintenant une autre colle.
                  J'ai une 2 stations A & B. Sur les deux est installé SSH. Ainsi, elles sont potentiellement client et serveur SSH. Je veux autoriser la connexion de A à B avec l'export du display. Mais je ne veux pas que lorsqu'un user se loggue en SSH sur la machine B, il puisse ensuite faire un SSH vers A. En fait je ne veux pas qu'il puisse faire de scp de données de B vers A.
                  Alors selon ce que j'ai compris, je paramètre comme suit:
                  - machine A, côté client: forwardX11, compression et port
                  - machine A, côté serveur: je désactive le forwardX11, et je choisi un port
                  - machine B, côté serveur: x11forwarding, x11display et port
                  - machine B, côté client: je désactive forwardX11 et je choisi un port autre que pour A serveur.

                  maintenant, est-ce suffisant? J'ai lu que la priorité dans la prise en compte des options est donnée à la ligne de commande. Donc quelqu'un qui arrive à trouver le port pourra toujours se connecter de B vers A en saisissant -p XXX comme argument, non?

                  Comment puis-je être sûr de ne pas avoir ce cas de figure, empêchant ainsi les copies distantes?

                  Merci de vos contribs.
                  • [^] # Re: Export du display ?

                    Posté par  (site web personnel) . Évalué à 2.

                    Attention à ne pas confondre ssh et sshd (le serveur ssh). Je veux dire : installer le client ssh n'implique pas d'avoir un serveur ssh sur sa machine.

                    Ainsi tu dis :
                    "J'ai une 2 stations A & B. Sur les deux est installé SSH. Ainsi, elles sont potentiellement client et serveur SSH. Je veux autoriser la connexion de A à B avec l'export du display. Mais je ne veux pas que lorsqu'un user se loggue en SSH sur la machine B, il puisse ensuite faire un SSH vers A. En fait je ne veux pas qu'il puisse faire de scp de données de B vers A."

                    A peut se connecter à B => Sur B tu met un serveur SSH.
                    On ne veut pas que quelqu'un sur B puisse faire un ssh sur A => Soit tu ne met pas de ssh sur A soit tu met un serveur ssh sur A mais tu bloques le port en provenance de B

                    Bon par contre, pour le scp... Si tu peux te loguer sur B, tu peux y récupérer des données : scp toto@B:/home/toto/blagues.txt ./

                    Le mieux c'est peut-être de penser droits utilisateurs non ?
                    • [^] # Re: Export du display ?

                      Posté par  . Évalué à 1.

                      >> On ne veut pas que quelqu'un sur B puisse faire un ssh sur A => Soit tu ne met pas de ssh sur A soit tu met un serveur ssh sur A mais tu bloques le port en provenance de B

                      Le mieux c'est de bloquer la sortie directement de données sur le port 22 à partir de B, non?

                      J'ai établi quelques règles de pare-feu pour sécuriser ce cas. Les voici:
                      - laisser entrer depuis A vers B par le port 22
                      - autoriser uniquement les sorties de B par le port 22
                      - interdire toute les sorties depuis B

                      En fait je garde l'entrée et la sortie sur le port 22 pour permettre au tunnel SSH de fonctionner, c'est impératif non?


                      Sinon, pour bloquer sftp et scp j'ai trouvé ça (à l'adresse http://www.debian.org/doc/manuals/securing-debian-howto/ch-s(...)

                      "5.1.3 Interdire les transferts de fichiers

                      Si vous ne voulez pas que les utilisateurs transfèrent des fichiers depuis et vers le serveur ssh, vous devez restreindre l'accès au sftp-server et l'accès scp. Vous pouvez restreindre sftp-server en configurant le bon Subsystem dans /etc/ssh/sshd_config. Cependant, pour restreindre l'accès scp, vous devez :

                      * soit interdire les connexions d'utilisateurs au serveur ssh (comme décrit ci-dessus par le fichier de configuration ou par la configuration PAM),

                      * soit ne pas donner de shells valides aux utilisateurs qui ne sont pas autorisés à faire des transferts sécurités. Cependant, les shells fournis devraient être des programmes qui justifieraient la connexion au serveur ssh par eux-même, comme des programmes de menus (ala BBS). Sinon, l'option précédente est préférée."

                      -> Pour bloquer le sftp, je paramètre /etc/sshd_config avec:
                      Subsystem sftp /path/vers/autre/chose/que/sftp-server
                      la question est: vers quel programme?

                      -> par contre pour scp... Dur dur... sauf en interdisant le ssh de B vers A, en indiquant à sshd_config de A un port différent de 22. Ainsi, en bloquant toute sortie autre que par le port 22 depuis B, ça devrait le faire, vu que le client ne peut se connecter que sur le port que lui donne le serveur.
                      Non?

                      C'est bien compliqué ces histoires LOL

                      Merci en tout cas.
                      • [^] # Re: Export du display ?

                        Posté par  (site web personnel) . Évalué à 2.

                        Ne te casse pas la tête avec le port, c'est juste un paramètre.

                        Sinon, avec le module fuse, (inclus dans les noyaux récents), il suffit qu'il y ait un serveur SSH sur C pour pouvoir s'y connecter et gérer ses fichiers sur un point de montage.

                        C'est avec sshfs.

                        Il n'y a rien de particulier à configurer sur le serveur C (ssh).

                        Par contre, les droits utilisateurs doivent concorder.

                        Tu peux ajouter les paquets:

                        sshfs
                        shfs-utils

                        Enfin, avoir l'export display à ON, c'est un risque de sécurité (bien sur, c'est un service supplémentaire).

                        Donc, à éviter si l'on peut.

                        A bientôt
                        Grégoire

                        Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

                        • [^] # Re: Export du display ?

                          Posté par  . Évalué à 1.

                          Ok, merci. Mais cela ne résoud pas mon problème concernant le scp. J'ai bien trouvé un paramètre à configurer, subsytem, dans sshd_config, mais je ne sais pas comment l'utiliser en fait...
                          • [^] # Re: Export du display ?

                            Posté par  . Évalué à 1.

                            Avec openssh, il me semble que scp n'est pas un subsytem (contrairement a sftp), mais un "truc" autour de ssh (désolé pour ce manque de precision, mais le lundi matin...)
                            A ma connaissance donc, il n'y a pas de moyen de bloquer un scp autrement qu'en jouant avec les droits de tes fichiers, ou en écrivant un shell spécifique (tu pourras constater que de mettre /bin/false comme shell à un utilisateur empeche tout scp), à partir de là on pourrait imaginer à la place du shell un truc plus ou moin interactif qui ne te propose que 5/6 commande (appuyer sur 1 pour lancer nedit, etc...)
                            • [^] # [RESOLU] Application par tunnel SSH

                              Posté par  . Évalué à 1.

                              C'est bon, j'ai ma solution.
                              Ca a été dur mais en fait c'est très simple. Tout est dans l'utilisation de forceCommand dans sshd_config.

                              Merci à tous pour vos contibutions.

                              @+

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.