OpenVPN sur La Fonera / OpenWRT
La Fonera est un routeur à tout faire. Il peut, par exemple, servir de point d'accès WiFi vers un VPN. L'aspect AP Wifi est largement documenté sur le Web ce qui est parfaitement normal puisqu'il s'agit d'un routeur WiFi. Ne reste donc qu'à installer la partie VPN avec OpenVPN.
Rien de bien complexe dans l'installation d'OpenVPN. L'outil étant directement intégré dans les sources d'OpenWRT sous la forme d'un paquet, il suffit de l'activer sous la forme d'un module dans la configuration (make menuconfig). On obtient donc un paquet qu'il faut installer sur le routeur avec toutes ses dépendances via ipkg install.
Côté configuration on procédera comme avec un système classique :
- génération de certificats
- installation du serveur
- configuration du client sur le routeur
L'authentification TLS/SSL est toujours préférable au secret partagé. D'autant que La Fonera, bien que faible côté CPU, tient parfaitement la charge en ce qui concerne l'authentification et le chiffrement des données.
L'objet de ce billet n'est pas dans la configuration qui reste classique mais dans le fait que le routeur ne dispose pas d'horloge Temp Réel (RTC). A chaque mise en marche elle revient au 1er Janvier 1970. Ceci pose un gros problème pour la vérification des certificats et le message d'erreur n'est absolument pas explicite :
openwrt TLS Error: Unroutable control packet received... openwrt TLS Error: Unroutable control packet received... openwrt TLS Error: Unroutable control packet received...
En attendant la fin de mes expériences concernant une RTC sur bus i2c, il faut donc se rabattre sur NTP en installant ntpclient et en l'utilisant comme ceci :
ntpclient -h 1.debian.pool.ntp.org -s
Ceci sans oublier que les serveurs NTP retournent une heure UTC. Il faut donc faire savoir au routeur dans quel fuseau nous nous trouvons avec :
echo GMT+2 > /etc/TZ
Et voici un routeur à l'heure et prêt à rejoindre le VPN.