IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

[libssh2] mise en place d'un tunnel SSH


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 67
    Points
    67
    Par défaut [libssh2] mise en place d'un tunnel SSH
    Bonjour,

    Je m'intéresse au protocole SSH pour la sécurisation de la transmission de données (O Rly?), je pense avoir bien potassé le sujet et quelques documentations. J'ai un peu bidouillé quelques trucs de base pour mettre en pratique, comme configurer le serveur SSH, me connecter en utilisant des clés publiques/privées, exécuter avec succès quelques exemples de libssh2. Jusque là tout va bien, je comprends bien tout ce qui se passe.
    Mon but ultime étant d'utiliser un tunnel SSH pour accéder à un SGBD postgresql, une page de leur doc explique bien le principe. Pour l'implémentation dans un client, j'ai commencé à regarder l'exemple "tcpip-forward.c" de la lib. Et là, c'est le drame. Je n'arrive pas à me représenter ce qui est fait au niveau des connexions serveur distant-serveur ssh-client dans ce pavé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
        printf("Asking server to listen on remote %s:%d\n", remote_listenhost,
            remote_wantport);
     
        listener = libssh2_channel_forward_listen_ex(session, remote_listenhost,
     
            remote_wantport, &remote_listenport, 1);
        if (!listener) {
            fprintf(stderr, "Could not start the tcpip-forward listener!\n"
                    "(Note that this can be a problem at the server!"
                    " Please review the server logs.)\n");
            goto shutdown;
        }
     
        printf("Server is listening on %s:%d\n", remote_listenhost,
            remote_listenport);
     
        printf("Waiting for remote connection\n");
        channel = libssh2_channel_forward_accept(listener);
     
        if (!channel) {
            fprintf(stderr, "Could not accept connection!\n"
                    "(Note that this can be a problem at the server!"
                    " Please review the server logs.)\n");
            goto shutdown;
        }
     
        printf("Accepted remote connection. Connecting to local server %s:%d\n",
            local_destip, local_destport);
        forwardsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        sin.sin_family = AF_INET;
        sin.sin_port = htons(local_destport);
        if (INADDR_NONE == (sin.sin_addr.s_addr = inet_addr(local_destip))) {
            perror("inet_addr");
            goto shutdown;
        }
        if (-1 == connect(forwardsock, (struct sockaddr *)&sin, sinlen)) {
            perror("connect");
            goto shutdown;
        }
     
        printf("Forwarding connection from remote %s:%d to local %s:%d\n",
            remote_listenhost, remote_listenport, local_destip, local_destport);
    J'essaie de m'aider des noms de variables, mais ça ne m'éclaire pas vraiment...

    Avis à ceux qui sont déjà passé par là

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Ha! Je n'étais pas sur le bon exemple! En fouinant dans l'API, je suis tombé sur la fonction libssh2_channel_direst_tcpip_ex, qui sert à rediriger le flux d'une connexion sur une autre en passant par un tunnel SSH. L'exemple qui l'utilise est direct_tcpip.c. Beaucoup plus compréhensible, en partant de là j'ai pu faire mon test de tunnel SSH pour une connexion à un serveur PostgreSQL.

    My bad!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en place d'un tunnel VPN openswan
    Par linuxman dans le forum Sécurité
    Réponses: 29
    Dernier message: 16/09/2009, 12h27
  2. Réponses: 0
    Dernier message: 02/06/2009, 12h10
  3. [SBS 2003] Mise en place d'un tunnel VPN pour des connexions RDP
    Par Miles Raymond dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 14/03/2008, 10h10
  4. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 18h18
  5. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo