Magazine Internet

Installation serveur NAT-PMP sous FreeBSD

Publié le 24 mars 2009 par Nicolargo

MiniUPnP est une implémentation libre du protocole NAT-PMP. Développé par Apple, ce successeur de UPnP IGD permet de configurer automatique et à la demande des applications des règles de NAT sur votre routeur d'accès. Free vient d'ajouter cette fonction sur le firmware des Freebox.

Nous allons voir dans ce billet comment fonctionne ce protocole et comment transformer votre routeur/firewall PF FreeBSD en un daemon NAT-PMP.

C'est quoi NAT-PMP ?

NAT-PMP est un protocole basée sur le protocole Bonjour. Ce dernier utilise des trames UDP sur le port 5351 qui sont envoyé vers l'adresse de la passerelle par défaut de votre réseau.

Il permettant à une application de:

  • récupérer son adresse IP publique (comment le PC va être vu sur Internet)
  • ajouter une règle de NAT PF (ou IPFW) sur le routeur

Si l'adresse publique de la passerelle par défaut change, une alerte au format multicast (adresse 224.0.0.1 sur le port 5351) sera envoyée sur le réseau. Elle contiendra en donnée la nouvelle adresse.

Installation du daemon sur FreeBSD

Le daemon en question s'appelle minipnpd et est présent dans les ports de FreeBSD (/usr/ports/net/miniupnpd).

L'installation est classique:

portinstall net/miniupnpd

Il faut également ajouter les règles suivantes dans votre fichier de configuration PF (/etc/pf.conf par défaut):

# NAT section
# UPnPd rdr anchor
rdr-anchor "miniupnpd"

# Rules section
# uPnPd rule anchor
anchor "miniupnpd"

puis relancer les règles PF:

pfctl -f /etc/pf.conf

et enfin ajouter la ligne suivante dans votre fichier /etc/rc.conf:

miniupnpd_enable="YES"

La configuration doit se faire par un fichier /usr/local/etc/miniupnpd.conf. Vous pouvez utiliser le template suivant (à adapter à votre réseau):

# WAN network interface
ext_ifname=em0
# if the WAN interface has several IP addresses, you
# can specify the one to use below
#ext_ip=

# there can be multiple listening ips for receiving SSDP traffic.
# the 1st IP is also used for UPnP Soap traffic.
listening_ip=192.168.0.254
port=5555

# bitrates reported by daemon in bits per second
bitrate_up=131072
bitrate_down=524288

# default presentation url is http address on port 80
#presentation_url=

# report system uptime instead of daemon uptime
system_uptime=yes

# notify interval in seconds default is 30 seconds.
#notify_interval=240

# log packets in pf
#packet_log=no

# uuid : generated by the install a new one can be created with
# uuidgen
uuid=%%UUID%%

# UPnP permission rules
# (allow|deny) (external port range) ip/mask (internal port range)
# A port range is <min port>-<max port> or <port> if there is only
# one port in the range.
# ip/mask format must be nn.nn.nn.nn/nn
allow 1024-65535 192.168.0.0/24 1024-65535
deny 0-65535 0.0.0.0/0 0-65535

Pour lancer le daemon, il faut lancer la commande suivante:

/usr/local/etc/rc.d/miniupnpd start

Pour tester

Le plus simple est d'utiliser une des applications compatibles UPnP (voir liste dans le Wiki) ou bien d'utiliser le client en ligne de commande miniupnpc (compilable sous Linux, BSD, Mac OS X et Windows...).

Conclusion

Bien sûr ce daemon peut présenter un trou de sécurité assez important (possibilité d'ajouter des règles sur votre Firewall), il faut donc prendre toutes les précautions nécessaires sur les réseaux sensibles (notamment au niveau de la configuration de la section UPnP permission rules).


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • RAID 1 logiciel sous FreeBSD

    Certains serveurs de votre réseau sont plus sensibles que d’autres: on peut citer par exemple les serveurs DNS, LDAP ou base de données. Lire la suite

    Par  Nicolargo
    INTERNET
  • Installation et Configuration de JBoss

    Le serveur d’application JBoss Récemment je me suis intéressé à JBoss pour le configurer dans un environnement de production. Si l’installation dun serveur est... Lire la suite

    Par  Rberthou
    INTERNET, PROGRAMMATION
  • Installation de NRPE depuis les sources

    Afin de disposer de la dernière version de NRPE (le plugin pour superviser vos serveurs GNU/Linux, BSD ou Mac OS X sous Nagios), il est parfois nécessaire de... Lire la suite

    Par  Nicolargo
    INTERNET
  • Installation d’un serveur NTP

    A partir du moment ou votre réseau est composé de plusieurs machines, il est utile d’avoir une base de temps commune. Heureusement, il existe un protocole... Lire la suite

    Par  Nicolargo
    INTERNET
  • Dotclear 2.0.2 : une installation automatique

    L'équipe de Dotclear met à disposition une installation automatique. Pour simplifier le déploiement de sa plateforme de blog, l'équipe de Dotclear a sorti une... Lire la suite

    Par  Marie
    INTERNET, PROGRAMMATION
  • La bible de FreeBSD

    Si vous suivez régulièrement ce blog, vous savez tout le bien que je pense du système d’exploitation FreeBSD. C’est celui-ci que j’utilise sur mes serveurs... Lire la suite

    Par  Nicolargo
    INTERNET
  • Installation de Liferay sous GNU/Linux

    Le but est d’installer le portail Liferay sous un système GNU/Linux. La distribution retenue est une Ubuntu Server 8.10 mais la parocédure suivante devrait... Lire la suite

    Par  Nicolargo
    INTERNET

A propos de l’auteur


Nicolargo 417 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog

Magazine