Skip to content


Freebox : UPnP sans mode routeur !

Free a annoncé le support de l’UPnP dans la freebox HD. Merveilleux ! Fini les attentes pour uploader une vidéo sur la Freebox HD me dis-je.

En creusant un peu on remarque de suite que lorsqu’il est question de UPnP on parle de mode routeur de de l’activation de l’UPnP dans l’interface d’administration Free.

Huch ! Pas de UPnP pour moi alors ? Que néni ! L’UPnP de la Freebox HD c’est aussi possible sans activer le mode routeur de la Freebox ADSL  (en mode bridge donc)

Alors, comment faire ?

Si vous n’avez pas activé le mode routeur, c’est que :

  • Vous avez un autre routeur, qui «possède» l’IP publique fournie par Free, et qui alloue des adresses privées à votre réseau interne,
  • Vous avez qu’un seul ordinateur qui «possède» alors l’IP publique fournie par Free,

Ce routeur est peut-être aussi serveur de fichier etc.

Ce que je vais décrire içi c’est mon contexte :

  • J’ai un serveur qui «possède» l’IP publique :
    • Qui est aussi serveur web, mail etc.
    • Qui est aussi un serveur interne de fichiers
    • Je souhaite qu’il soit aussi serveur UPnP interne.

Le problème en image :

diagramme1-big

Vous voyez ? non ? Normalement on devrait avoir la Freebox HD dans l’intranet. Ici il faut penser à autoriser ce troublion afin qu’il puisse discuter avec le serveur UPnP hébergé sur le serveur/routeur. Et il ne faut autoriser que lui !

diagramme2-bigTravaux pratiques sous Debian GNU/Linux 5.0 (Lenny)

[ca marche aussi sur les autres distributions dérivées (Ubuntu par exemple)]

Ajout des règles de filtrages

Il faut donc savoir quoi autoriser. Le plus simple est d’ intégrer la Freebox HD dans votre intranet. Il faut donc autoriser les flux depuis et vers la Freebox HD.

Dans mon script cela donne :

# Freebox oui quelque soit sa demande
$IPTABLES -A WAN2ME -s $MAFREEBOX_IP -j ACCEPT
# Les autres non sur mediatomb
$IPTABLES -A WAN2ME -p TCP --dport 49152 -j REJECT --reject-with tcp-reset
$IPTABLES -A WAN2ME -p UDP --dport 1900 -j REJECT --reject-with tcp-reset

Comme vous utilisez pas mon script et que vous voulez juste les lignes iptables à rajouter à votre serveur/routeur :

# On accepte tout ce qui vient de la freebox (freeplayer.freebox.fr = 212.27.38.253)
$IPTABLES -t filter -A INPUT -i eth1 -s 212.27.38.253 -j ACCEPT
# On refuse les autres qui voudraient s adresser à mediatomb
$IPTABLES -t filter -A INPUT -i eth1 -p TCP --dport 49152 -j REJECT --reject-with tcp-reset
$IPTABLES -t filter -A INPUT -i eth1 -p UDP --dport 1900 -j REJECT --reject-with tcp-reset
# N oubliez pas d autoriser votre serveur routeur à communiquer avec la freebox
$IPTABLES -t filter -A OUTPUT -i eth1 -s 212.27.38.253 -j ACCEPT

ATTENTION : Vérifiez les ports pour VOTRE installation en regardant après installation de Mediatomb les ports sur lesquels il écoute avec la commande netstat (en root):

netstat -lpn | grep mediatomb

Le serveur UPnP

J’ai choisi Mediatomb (installation: aptitude install mediatomb). Il faut alors le configurer. Après cette commande, par défaut c’est bien fait cela fonctionne presque sans changements, mais vous avez alors accès à … rien. 🙂

Il faut donc dire à Mediatomb d’ajouter un (ou plusieurs emplacements). Pour cela il existe beaucoup de possibilité, mais la plus propre et durable à mon avis et d’utiliser le fichier de pré-configuration spécifique à Debian /etc/default/mediatomb. Voici les deux lignes modifiées :

OPTIONS="--add /la/ou/je/veux"
INTERFACE="eth1"

Comme vous le voyez j’ai modifié deux choses:

  • –add /la/ou/je/veux qui est le répertoire auquel je souhaite avoir accès via Mediatomb
  • L’interface (eth1 ici) sur laquelle le routage multicast doit être activé.

Il faut alors redémarrer Mediatomb (/etc/init.d/mediatomb restart) et bien sur ca fonctionne :). Il faut juste laisser le temps à Mediatomb de référencer tous les fichiers.

Pour valider votre installation, je vous conseille au minimum de regarder si le port 49152 n’est pas accessible depuis l’extérieur (testez ca chez vos amis, parents, voisins). Si vous avez le courage, un test de l’ensemble des ports ouverts avec nmap vous en dira plus.

Posted in Debian, Logiciels Libres.

Tagged with bridge, config, Debian, freebox, iptables, mediatomb, ubuntu, upnp.


6 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. sylwae says

    Salut, bon boulot ! J’essaie de rajouter des external link dans mediatomb, mais la freebox ne les lit pas, même en rajoutant les options de transcodage via vlc pour les avi. Ca marche bien avec un client upnp du style xbmc (je vois meme le vlc se lancer dans les process), mais ça ne fonctionne pas avec la freebox, il se passe rien (écran noir). As tu essayé ?

  2. Ze says

    dans mediatomb à première vu c’est un bug signalé et qui sera corrigé dans la version 0.12, voici une méthode de contournement du problème :
    https://sourceforge.net/forum/message.php?msg_id=5720795

  3. Jean-Luc says

    Bonjour, excellente analyse qui ravirait tout un tas de personnes qui ne comprennent pas pourquoi cette nouvelle fonctionnalité ne fonctionne pas chez eux (cf. tous les forums ou ces personnes tournent en rond depuis quelques jours :-))…
    Par contre, n’étant pas fan d’IPTABLE, je n’arrive pas à transposer vos règles au paramétrage d’un routeur lambda de type boite noir (type Linksys WRT54G, par exemple)…
    Savez-vous le faire? Publier cette information (en particulier sur un des forums free traditionnel) ravirait les malheureux utilisateurs qui se trouvent dans cette situation…

  4. Ze says

    Je ne connait pas ce routeur mais la traduction littérale des règles de filtrages sont les suivantes (l’ordre est important) :

    Il faut autoriser les flux « entrant » (qui viennent de l’internet donc) suivant:
    – Tous les flux venant de l’adresse 212.27.38.253 (Freebox HD)

    Il faut interdire tous les flux « entrant » suivant :
    – Tous les flux adressés sur le port TCP/49152 (celui de mediatomb)
    – Tous les flux adressés sur le port UDP/1900 (idem)

    Il faut ensuite autoriser tous les flux sortant à destination de 212.27.38.253 (Freefox HD)

    Par contre si votre routeur n’est pas aussi le serveur UPnP il y a certainement d’autres choses à faire (du port forwarding et certainement un peu plus). Il faut un suivie des sessions UPnP par le routeur (dont je n’ai pas besoin car mon routeur est aussi le serveur UPnP).

  5. Phil says

    Bonjour,

    Une simple réaction par rapport à ton constat de départ : « Fini les attentes pour uploader une vidéo sur la Freebox HD ». Savais-tu qu’il n’est pas nécessaire de patienter jusqu’à la fin du chargement et que la Freebox gère tout à fait la lecture d’un morceau de fichier et qu’elle continuera sur ce qui est en train d’être chargé sans perturbation ?

    Très bon article ! Merci.

  6. scott needham says

    hi,

    your article is great, and it describes my problem well. the only difference is that my setup is mac. i have installed mediatomb with no problem, but i simply can not figure out how to configure my time capsule to let the freebox hd get to the mac mini where mediatomb is.

    i have tried forwarding ports 49152 tcp/udp and 1900 udp directly to the mac mini, but no joy. i would really appreciate any help with this.

    scott



WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera