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

Linux Discussion :

Intercepter le trafic socket en mode user ?


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut Intercepter le trafic socket en mode user ?
    Bonjour,

    J'ai une application Windows de filtrage qui intercepte le trafic de la session en cours en utilisant un LSP (Layered Service Provider). Ca a l'avantage d'être performant (tout reste en user) et simple. J'ai regardé pour adapter le soft sur Linux, et à première vue là je suis obligé de passer par un module kernel NetFilter/LSM, ce qui pose un problème de performance et surtout de licence : les modules noyaux sont obligatoirement GPL et mon appli est commerciale.
    Une suggestion ?

  2. #2
    Membre confirmé
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 118
    Par défaut
    Pourquoi ne pas jeter un coup d'oeil sur www.wireshark.org.
    Il fonctionne très bien sous linux et offre sur son site un guide pour les développeurs.

    Bonne chance

  3. #3
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    J'ai plusieurs remarques :
    _ Tout l'espace kernel linux est en license GPL. Mais ton application tourne en espace user donc tu n'as pas de problème de license tant que tu ne 'link' pas statiquement ton application avec une librairie de licence GPL.
    _ D'après ce que j'ai lu (rapidement) ici http://www.linuxjournal.com/article/6451 NetFilter/LSM est une API de cryptographie qui n'a rien a voir avec ce que tu cherches.
    _ Wireshark est un sniffer réseau comme apparament ton application. WireShark utilise la très connue libraire libpcap disponible sous Linux comme sous Windows. Jette un œil ici http://www.tcpdump.org/ tu as même un tutoriel pour développer avec cette librairie.
    _ Heureusement que tu ne développes pas dans l'espace kernel de Windows

    ++

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Netfilter n'est pas une API de cryptographie ni LSM d'ailleurs.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    libpcap à ma connaissance ne permet que la capture et non pas à proprement parler le filtrage. En plus c'est une api de très (trop) bas niveau.
    L'idéal pour moi serait LSM, et en particulier les parties spécifiques aux sockets. J'y retrouve un peu de la souplesse des LSP sous Windows. N'empêche qu'un module qui exploite LSM doit obligatoirement être un module noyau, avec les contraintes propres à la GPL. avec le LSP, on intercepte les sockets juste *avant* le passage au kernel. Avec LSM, on est *déjà* dans le Kernel.

    La moins mauvaise solution consiste sans doute à écrire un module LSM minimal en GPL qui re-balance tout ou presque en user qui fera l'essentiel du travail, mais ce n'est ni élégant ni efficace.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Pourquoi n'utilises-tu pas les iptables, qui sont dans l'userspace ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    Citation Envoyé par thierry.chich Voir le message
    Pourquoi n'utilises-tu pas les iptables, qui sont dans l'userspace ?
    Sauf erreur de ma part, les iptables sont dans le kernel (et donc également les modules d'extension), à part les outils d'administration qui sont eux dans le userspace.

  8. #8
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Autant pour moi je me suis trompé sur Netfilter et LSM, bien que je n'ai toujours pas cerné leur usage (pas de résultat google satisfaisant). cependant je reste convaincu que leur utilisation n'est pas la meilleure solution.
    Tu dis que libpcap est une appli de trop bas niveau, mais développer en mode kernel reste à mon avis une tache hardue. Quelle est la distance entre ce que propose la libpcap et ce que tu souhaites ?

    Non libpcap fais aussi du filtrage avec le 'Berkeley Packet filter' , tu peux le vérifier avec tcpdump qui passe ta chaine de filtrage à la lib.

    Voir ce site http://www.linuxjournal.com/article/4659

  9. #9
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par bizulk Voir le message
    Non libpcap fais aussi du filtrage avec le 'Berkeley Packet filter' , tu peux le vérifier avec tcpdump qui passe ta chaine de filtrage à la lib.
    Non tu confonds, la chaîne de filtrage que tu passes n'est là que pour filtrer ce que tu analyses, et non pour filtrer les paquets qui remonte en user space (i.e ça n'est pas un firewall mais un simple analiseur réseau).

Discussions similaires

  1. installer QT en mode user
    Par Hisoka_Hunter dans le forum Qt
    Réponses: 1
    Dernier message: 09/08/2009, 01h45
  2. [C#] socket en mode synchrone et asynchrone
    Par Cyrill26 dans le forum Développement
    Réponses: 0
    Dernier message: 23/07/2007, 16h32
  3. Ouvrir un socket en mode "promiscuous"
    Par Keul125 dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2007, 13h54
  4. Socket et mode de communication
    Par Mandotnet dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 15/01/2007, 17h44
  5. gérer le socket en mode threadless
    Par Thor Tillas dans le forum Réseau
    Réponses: 3
    Dernier message: 20/10/2006, 21h15

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