Forum général.général redirection de ports adslTV derière une passerelle netfilter

Posté par  (site web personnel) . Licence CC By‑SA.
0
7
mar.
2013

Bonjour,

Aujourd'hui, j'ai travaillé à la mise en place d'une passerelle sous Debian à la maison.

Mon netfilter fonctionne bien :
- Nettoyage des tables
- Blocage de tous les paquets
- Autorisation de la boucle locale
- Autorisation en sortie et suivi de connexion de l'interface publique
- Autorisation de l'interface privé (il n'y a pour le moment qu'une seule machine cliente, c'est la mienne)
- NAT
- Règles d'autorisation des ports sur l'interface privé
- Règles d'autorisation des ports sur l'interface publique

Mais à la fin, j'ai mes règles de redirection des ports d'ADSL TV de la freebox à la machine cliente et ça ne fonctionne pas.

Alors, j'ai ma petite idée :
je pense que soit ça viens de l'ordre de mes règles soit des règles de PAT en elles-mêmes ou bien un peu des deux…

Voici mes règles de redirections de ports :

# Ports ADSL TV
$IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 31336:31341 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p tcp -m multiport --dport 31336:31341 -d 192.168.3.10 -j ACCEPT
$IPT -t nat -A PREROUTING -i $WAN -p udp --dport 31336:31341 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p udp -m multiport --dport 31336:31341 -d 192.168.3.10 -j ACCEPT

# Ports VLC au cas où...
$IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 1234 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p tcp -m multiport --dport 1234 -d 192.168.3.10 -j ACCEPT
$IPT -t nat -A PREROUTING -i $WAN -p udp --dport 1234 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p udp -m multiport --dport 1234 -d 192.168.3.10 -j ACCEPT

# Port rtsp juste parce que je l'ai vu en sniffant...**
$IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 554 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p tcp -m multiport --dport 554 -d 192.168.3.10 -j ACCEPT
$IPT -t nat -A PREROUTING -i $WAN -p udp --dport 554 -j DNAT --to 192.168.3.10
$IPT -A FORWARD -i $WAN -o $LAN -p udp -m multiport --dport 554 -d 192.168.3.10 -j ACCEPT

Les variables :
IPT --> /sbin/iptables
WAN --> interface publique
LAN --> interface privée

Quelqu'un peut-il m'aider s'il vous plait ?

  • # me semble que adslTV c'est pas vraiment de l'IP ordinaire

    Posté par  . Évalué à 1.

    ce serait plutot du broadcast sur une plage IP en particulier,
    y a qu'à voir quand tu te connectes à ta box, c'est une IP en dehors du reseau local :

    ex FR2 est un des flux rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd
    et l'adresse se resoud chez moi sur 212.27.38.253

    • [^] # Re: me semble que adslTV c'est pas vraiment de l'IP ordinaire

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

      ce serait plutot du broadcast sur une plage IP en particulier,
      y a qu'à voir quand tu te connectes à ta box, c'est une IP en dehors du reseau local :
      
      ex FR2 est un des flux rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd
      et l'adresse se résout chez moi sur 212.27.38.253
      
      

      Oui, j'ai vu ça… La mienne aussi d'ailleurs… Je trouve ça bizarre mais bon…
      Pour ce qui est du broadcast, je pense que ça ne concerne que les ports rtsp (554) et 1234.

      Je ne vois pas comment appliquer des règles qui autoriseraient un broadcast…
      As-tu une idée ?

      Ca doit être un truc dans le genre, non ?

      $IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 31336:31341 -j DNAT --to 192.168.3.10
      $IPT -A FORWARD -i $WAN -o $LAN -p tcp -m multiport --dport 31336:31341 -d 192.168.3.10 -j ACCEPT
      $IPT -t nat -A PREROUTING -i $WAN -p udp --dport 31336:31341 -j DNAT --to 192.168.3.10
      $IPT -A FORWARD -i $WAN -o $LAN -p udp -m multiport --dport 31336:31341 -d 192.168.3.10 -j ACCEPT
      
      $IPT -I PREROUTING -t nat -i $WAN -p udp --src 0.0.0.0 --dport 554 -j DNAT --to 192.168.3.0:554
      $IPT -I PREROUTING -t nat -i $WAN -p udp --src 0.0.0.0 --dport 1234 -j DNAT --to 192.168.3.0:1234
      
      

      En tous cas, ça, ça ne suffit pas…

  • # Finalement...

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

    Bonjour,

    Ce matin, je travaille de nouveau à ce problème.
    J'ai maintenant accès à mon flux tv à partir de la machine cliente qui se situe derrière la passerelle grâce à ces deux règles :

    $IPT -t nat -A PREROUTING -p udp -i $WAN -s $FREEBOXHD --sport 30000:40000  -j DNAT --to-destination 192.168.3.10
    $IPT -A FORWARD -i $WAN -o $LAN -p udp -s $FREEBOXHD --sport 30000:40000 -j ACCEPT
    
    

    $FREEBOXHD étant l'adresse IP de la Freebox HD (212.27.38.253) que Neox m'a fait remarquer.
    Il n'y a finalement pas besoin de rediriger les ports 554 et 1234…

    Mais ça ne me convient toujours pas car derrière la passerelle, à terme, je n'aurais bien sûr pas qu'une seule machine.
    Et comme le flux se fait sur une plage large de ports (30000 à 40000), je ne pourrais pas ajouter des redirections de ports pour chacune des machines comme je le faisait avant. C'est à dire que pour chaque machine, je redirigeais uniquement 5 ports : de 31336 à 31341, de 31342 à 31347, de 31348 à 31353… Et ainsi de suite…

    Je ne suis plus tout à fait sur que cela soit faisable mais je vais regarder ça tout de même…

    • [^] # Re: Finalement...

      Posté par  (site web personnel) . Évalué à 0. Dernière modification le 12 mars 2013 à 17:32.

      En utilisant un analyseur de trames, je me suis rendu compte que les ports ne sont plus fixes comme avant la FreeBox V6 mais alloués dynamiquement.

      J'ai donc simplifié mes règles :

      $IPT -t nat -A PREROUTING -p udp -i $WAN -s $FREEBOXHD -j DNAT --to-destination 192.168.3.10
      $IPT -A FORWARD -i $WAN -o $LAN -p udp -s $FREEBOXHD -j ACCEPT
      
      

      En ajoutant une machine virtuelle (192.168.3.15) en plus de ma machine physique sur le réseau 192.168.3.0, j'ai voulu vérifier si plus d'une machine peuvent accéder au flux vidéo en même temps ou au pire, l'une après l'autre mais non.

      En faisant une redirection vers la plage d'adresse 192.168.3.10-192.168.3.15 plutôt que l'adresse 192.168.3.10, le flux ne passe plus même pour la machine en 192.168.3.10

      J'ai aussi essayé 192.168.3.0 et 192.168.3.255 mais sans plus de succès…

      Quelqu'un aurait une idée s'il vous plait ??

      • [^] # Re: Finalement...

        Posté par  . Évalué à 1.

        Il te faut les modules nf_conntrack_rtsp.ko et nf_nat_rtsp.ko

        • [^] # Re: Finalement...

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

          Merci beaucoup zx81 !
          Je vais suivre ta piste :)
          Ces modules ne semblent pas être dispo par défaut avec le noyau de Debian Squeeze.
          Je vais enfin avoir une raison de recompiler mon noyau ;)

Suivre le flux des commentaires

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