guide.deuxfleurs.fr/content/operations/site-openwrt.md
2024-05-30 23:49:32 +02:00

3.9 KiB

title description date dateCreated weight extra
Configuration réseau OpenWrt Configuration réseau OpenWrt 2024-05-30 2024-05-30 20
parent
operations/site.md

Pourquoi OpenWrt

Pour installer un site géographique, il y a deux possibilités pour gérer le réseau :

  • utiliser la box fournie par le FAI
  • utiliser son propre routeur

Certaines box de FAI sont limitées : elles ne permettent parfois pas de configurer le pare-feu IPv6, ou bien elles ont un support d'UPnP pas assez fiable pour les besoins de Deuxfleurs.

Dans ce cas, utiliser son propre routeur et y installer OpenWrt est un choix naturel : c'est un projet en logiciel libre, avec une grande communauté et beaucoup de modèles matériel supportés. Par ailleurs, OpenWrt est très modulaire, on peut installer des paquets additionnels pour rajouter des fonctionnalités comme UPnP.

Attention, installer et configurer OpenWrt demande d'être à l'aise avec SSH, vim, et d'avoir quelques connaissances en réseau.

Choisir un matériel supporté par OpenWrt

Voir le site d'OpenWrt.

Installer OpenWrt

Voir la documentation OpenWrt et un guide générique.

Configurer OpenWrt pour un site géographique Deuxfleurs

Configuration de base

  • installer OpenWrt
  • se connecter en SSH sur le routeur
  • définir un mot de passe root avec passwd, le renseigner dans le dépôt des secrets
  • désactiver les IPv6 ULA : dans /etc/config/network, supprimer le bloc qui ressemble à ça :
config globals 'globals'
    option ula_prefix 'fda0:8093:6a4c::/48'
  • autoriser le trafic IPv6 en entrée. Attention, la configuration ci-dessous autorise absolument tout le trafic IPv6 pour toutes les machines du réseau local. Vous pouvez être plus fin si nécessaire. Dans /etc/config/firewall, rajouter le bloc suivant :
config forwarding
	option src		wan
	option dest		lan
	option family		ipv6
  • définir un nom d'hôte pour le routeur, par exemple gw-<nom du site>. Ça se passe dans /etc/config/system
  • rebooter le routeur pour être sûr d'appliquer tous les changements

Configuration UPnP

C'est le plus gros morceau.

  • installer le serveur UPnP (ici pour un OpenWrt récent qui utilise nftables et non iptables) :
opkg update
opkg install miniupnpd-nftables
  • configurer le serveur UPnP, ça se passe dans /etc/config/upnpd :

    • mettre option enabled à 1
    • mettre option enable_natpmp à 0 (pas besoin pour Deuxfleurs)
    • mettre option log_output à 1 (pour faciliter le debug)
    • dans le premier bloc perm_rule, mettre ext_ports et int_ports à '0-65535' (autoriser à mapper tous les ports)
    • dans ce meme bloc, mettre la plage d'adresse IP des machines Deuxfleurs dans int_addr, par exemple 192.168.5.0/24 (pour éviter que d'autres machines n'utilisent UPnP)
  • redémarrer le service UPnP : /etc/init.d/miniupnpd restart

Il est également nécessaire de changer le port utilisé par LuCI (l'interface web d'OpenWrt), sinon cela empechera de mapper les ports 80 et 443 vers Tricot. Il faut veiller à choisir un port qui n'est utilisé par aucun service de Deuxfleurs. Ici, on choisit 65080 en HTTP et 65443 en HTTPS.

  • ouvrir /etc/config/uhttpd
  • sur les lignes listen_http, changer 80 par 65080
  • sur les lignes listen_https, changer 443 par 65443
  • redémarrer le service : /etc/init.d/uhttpd restart

Une fois cette configuration effectuée, pour accéder à l'interface web du routeur, il faut aller sur http://192.168.X.Y:65080.

Debug UPnP

Pour cela, il faut d'abord avoir un diplonat lancé par Nomad sur une machine du site.

Pour voir si le serveur UPnP reçoit bien les requetes de diplonat, afficher les logs OpenWrt avec logread -f.