Forum Linux.général Redirecteur TCP

Posté par (page perso) .
Tags : aucun
1
8
fév.
2010
Cher Fumor,

Je te pose cette petite question parce que je constate des soucis avec mon actuel redirecteur TCP ( rinetd : http://www.boutell.com/rinetd/ ).

Un redirecteur TCP est un "petit" logiciel qui ecoute sur un couple IP:Port et qui filtre les connexions et "redirige" les connexions accepter vers un autre couple IP:Port .

c'est très pratique mais ... il me semble que rinetd ne tienne pas la charge puisqu'il refuse assez rapidement les connexions du fait — à priori — des quelques bugs officiellement documentés.

Après quelques passage par Google , j'ai l'impression que google n'est pas très loquace sur le sujet.

D'où ma question :
Connaitrais tu d'autres redirecteurs TCP remplissant les memes fonctions que rinetd ?

je te remercie d'avance,
  • # iptables ?

    Posté par . Évalué à 4.

    iptables ne serait-il pas le logiciel que tu recherches ?

    regarder ce qui est demandé (ex : ippublic:port public)
    et renvoyer vers ipprivé:portprivé

    il me semble que c'est meme une de ses fonctions de base
    • [^] # Re: iptables ?

      Posté par (page perso) . Évalué à 1.

      iptables redirige vers l'extérieur ?

      j'avais fait ce genre de choses avec iptable et son prédécesseur ipfwadm, il y a bien longtemps et cela ne redirigeait qu'au niveau interne.

      ce que je recherche permet par exemple de faire croire qu'un processus ecoute sur 127.0.0.1 alors qu'il se trouve à écouter sur le 127.0.0.1 d'une autre machine.

      cela peut servir pour des outils avec des memcache like ou autre outil excessivement spécialisé qui n'a pas de couche de securisation suffisante.

      j'avais pensé à des tunnels SSH mais je ne sais pas si cela peut gerer pleins de connexions/deconnexions et si la partie crypto ne donne pas un overhead significatif.
      • [^] # Re: iptables ?

        Posté par . Évalué à 2.

        effectivement si le but c'est de faire un proxy TCP
        je ne suis pas sur que iptables soit fait pour.

        par contre SSH pourrait effectivement permettre ca

        creer un port local qui finalement sera renvoyer vers une machine distante

        voire utiliser une machine avec un SSH dans un screen pour faire proxy
      • [^] # Re: iptables ?

        Posté par . Évalué à 3.

        Pour moi, ce que tu veux faire se fait avec du DNAT en iptables.

        iptables -t nat -A PREROUTING -d mon_relai -j DNAT --to-destination le_vrai_serveur
        • [^] # Re: iptables ?

          Posté par (page perso) . Évalué à 1.

          je testerai des que possible.

          je te remercie :)
        • [^] # Re: iptables ?

          Posté par . Évalué à 2.

          il faut peut-etre completer avec une notion de port
          sinon ca va tout renvoyer vers "le_vrai_serveur"
  • # tcpproxy

    Posté par . Évalué à 1.

    J'ai déjà utilisé tcpproxy.
    Très simple à configurer.
    • [^] # Re: tcpproxy

      Posté par (page perso) . Évalué à 1.

      démarable par upstart ? runit ? inittab ?

      il n'induit pas trop de latence ? tiens un peu de charge ?

      le but est de faire du nettoyage et du désengorgement d'un serveur sans tout réécrire.
      • [^] # Re: tcpproxy

        Posté par . Évalué à 1.

        démarable par upstart ? runit ? inittab ?
        Probablement.
        Notre besoin était ponctuel (ne pas perdre de connexion pendant que les DNS étaient mis à jour après le déménagement d'une dizaine de serveurs).
        Je m'étais contenté de le lancer via rc.local

        il n'induit pas trop de latence ? tiens un peu de charge ?

        le but est de faire du nettoyage et du désengorgement d'un serveur sans tout réécrire.

        Je l'ai trouvé très léger et performant.
        On avait remis en service un vieux serveur pour rediriger tout le trafic http et smtp.

        Par contre, je viens de vérifier sur le site du projet http://quietsche-entchen.de/cgi-bin/wiki.cgi/proxies/TcpProx(...) et il semble ne plus évoluer depuis deux ans.
  • # xinetd ...

    Posté par . Évalué à 4.

    xinetd qui remplace le inetd de base le fait en natif. je l'utilise depuis longtemps sans soucis.

    extrait du man de xinetd.conf
    redirect
    Autorise un service tcp à être redirigé vers une autre machine. Quand xinetd reçoit une connexion tcp sur ce port, il lance un processus qui établit une connexion vers l'hôte et le numéro de port spécifié, et transmet toute les données entre les deux machines. Cette option est très utile quand votre réseau interne n'est pas visible depuis l'extérieur. La syntaxe est : redirect = (adresse ip) (port). Vous pouvez aussi utiliser un nom de machine à la place de l'adresse IP dans ce champ. La résolution du nom n'est effectuée qu'une seule fois, lorsque xinetd est lancé, et la première adresse IP renvoyée est celle qui sera utilisée, jusqu'à ce que xinetd soit redémarré. L'attribut « server » n'est pas requis lorsque cette option est spécifiée. Si l'attribut « server » est spécifié, il est est prioritaire.
  • # socat

    Posté par (page perso) . Évalué à 1.

    Sinon perso c'est OpenSSH mais si t'as pas besoin d'authentification ou de chiffrement, socat est sans doute préférable.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

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