Forum Linux.général Redirection de port vers 127.0.0.1?

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
oct.
2007
J'essaye de faire une redirection de port vers lo mais pour le moment, rien ne passe et tcpdump me confirme que rien n'est redirigé :( Une idée?

#!/bin/bash
iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1101:7003 -j DNAT --to-destination 127.0.0.1
  • # moi pas comprendre...

    Posté par  . Évalué à 0.

    lo = eth0 dans bien des cas.

    donc redirigé un truc qui arrive sur eth0 vers lo
    n'a pour moi aucun sens.

    si tu pouvais developper ce que tu souhaites faire, je suis persuadé qu'il y a d'autre moyen de le faire, de maniere logique.
    • [^] # Re: moi pas comprendre...

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

      ssh -L 1101:172.17.254.252:1098 10.89.16.4

      Le port 1101 est ouvert sur lo, pas sur eth0.
      • [^] # Re: moi pas comprendre...

        Posté par  . Évalué à 1.

        et d'apres ta ligne iptables (si je ne me trompe pas)

        tu veux renvoyer TOUS les ports depuis 1101 jusqu'à 7003
        qui arrivent sur ETH0
        vers 127.0.0.1

        sauf que dans ce cas là ce n'est pas vraiment du forward, mais ce serait plutot de l'INPUT qu'il faut simplement accepter.

        INPUT etant ce qui arrive sur la machine

        pour en savoir plus sur les chaines à utiliser j'utilise personnellement le site
        http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWT(...)
        • [^] # Re: moi pas comprendre...

          Posté par  . Évalué à 1.

          d'autre part, d'apres la documentation SSH

          tu demandes à SSH d'ecouter ce qui arrive sur le port 1101
          et de le renvoyer vers la machine 172.17.254.252 port 1098

          si c'est sur la meme machine que SSH que tu veux autoriser le port 1101, c'est bien la chaine INPUT qui doit gerer ce flux entrant.
          • [^] # Re: moi pas comprendre...

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

            INPUT est à accept par défaut, donc non ce n'est pas ca ;)

            Et si c'est bien une redirection de port qu'il faut faire.

            Et je demande à ssh d'ouvrir un tunnel entre 127.0.0.1:1101 et la machine distante 172.17.254.252:1098 à travers un tunnel ipsec.
            • [^] # Re: moi pas comprendre...

              Posté par  . Évalué à 1.


              Et je demande à ssh d'ouvrir un tunnel entre 127.0.0.1:1101 et la machine distante 172.17.254.252:1098 à travers un tunnel ipsec.


              chez moi pour renvoyer un port local (8080)
              vers une machine B vers le port 5500 de cette machine B, j'ai mis ca


              iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination machineB:portB
              • [^] # Re: moi pas comprendre...

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

                Oui, comme ca ca passe :-/

                C'est pas grave, apt-get install redir et la au moins ca fonctionne...
                • [^] # Re: moi pas comprendre...

                  Posté par  . Évalué à 1.

                  ben heureusement que ca marche avec ma methode (celle de 'iptables' en fait, et c'est la methode officielle.

                  Ta ligne iptable a pour resultat de prendre ce qui arrive sur eth0 (-i eth0) par le port 1101 à 7003 (--dport 1101:7003)
                  et de l'envoyer sur l'adresse 127.0.0.1 (--to-destination 127.0.0.1)

                  ce qui n'est pas ce que tu veux faire il me semble.
      • [^] # Re: moi pas comprendre...

        Posté par  . Évalué à 1.

        Salut,

        Bon, tu dois pouvoir t'en sortir avec tes règles iptables, mais il est certainement plus simple de demander à ssh d'écouter sur le port 1101 des autres interfaces !

        Il suffit de rajouter l'option "-g" lors de l'appel à ssh, ou alors de préciser l'adresse locale dans l'option -L. En clair, ça devrait marcher avec une des formes suivantes :

        ssh -g -L 1101:172.17.254.252:1098 10.89.16.4
        ssh -L *:1101:172.17.254.252:1098 10.89.16.4
        ssh -L :1101:172.17.254.252:1098 10.89.16.4

        Evidemment, avec ça tu permets la connexion sur 172.17.254.252 port 1098, depuis n'importe quelle machine ayant accès au port 1101 de ta propre machine, sans contrôle du flux.

        A+
        JJD
    • [^] # Re: moi pas comprendre...

      Posté par  . Évalué à 1.

      lo = eth0 dans bien des cas.
      Non et heureusement que ce n'est jamais le cas...
      (revoir l'utilité de la boucle locale)

Suivre le flux des commentaires

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