aboutsummaryrefslogtreecommitdiff
path: root/content/operations/site-openwrt.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/operations/site-openwrt.md')
-rw-r--r--content/operations/site-openwrt.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/content/operations/site-openwrt.md b/content/operations/site-openwrt.md
new file mode 100644
index 0000000..bd70974
--- /dev/null
+++ b/content/operations/site-openwrt.md
@@ -0,0 +1,94 @@
+---
+title: "Configuration réseau OpenWrt"
+description: "Configuration réseau OpenWrt"
+date: 2024-05-30
+dateCreated: 2024-05-30
+weight: 20
+extra:
+ 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](https://openwrt.org/) 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](https://openwrt.org/supported_devices).
+
+# Installer OpenWrt
+
+Voir [la documentation OpenWrt](https://openwrt.org/docs/guide-quick-start/start) et un [guide générique](https://openwrt.org/docs/guide-user/installation/generic.flashing).
+
+# 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](@/operations/pass.md)
+- 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) :
+
+```bash
+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`.