Tinc est une solution de VPN full Mesh destinée à être la plus simple possible en terme de déploiement et OPNSense est une solution de pare-feu, fork de pfsense.

logo-tinc

logo-opnsense

Nous avons vu dans un précédent article comment déployer la solution TINC sur des machines Linux (dans notre cas sous CentOS), mais il est également possible de l’utiliser pour réaliser une connexion entre plusieurs sites.

Définition de nos réseaux

Nous allons partir d’une situation avec trois sites distants :

Nom du site IP dans le réseau TINC IP WAN Réseau LAN
FW1 10.255.255.30 192.168.12.130 172.16.30.0/24
FW2 10.255.255.31 192.168.12.131 172.16.31.0/24
FW3 10.255.255.32 192.168.12.132 172.16.32.0/24

Nous définissons un réseau Tinc avec un masque en /24, il peut être intéressant de le réduire mais cet article n’a que lieu d’illustration.

Configuration des Firewall

La première opération est d’installer le paquet os-tinc, celui-ci permet d’avoir une option supplémentaire dans le menu VPN :

tinc-install-package

Une fois le paquet installé, il est nécessaire de créer un VPN Tinc, avec le même nom de réseau, comme suit :

tinc-configure-vpn

Le paramètre Network correspond à l’IP et le subnet de votre instance dans ce cas 10.255.255.32/24, puis dans la partie “This Host”, cela correspond à l’IP externe de ce firewall et le port d’écoute du serveur Tinc. Les champs Private Key et Public Key sont remplis automatiquement à la sauvegarde de vos paramètres.

Vous pouvez les éditer pour mettre vos clés privées et publiques si vous le souhaitez.

Une fois, cette opération réalisée sur vos 3 pare-feux, il est nécessaire d’ouvrir le port correspondant au service, pour cela naviguez dans la partie Firewall > Rules > WAN et ouvrez le port en mettant en destination votre Firewall.

tinc-fw-rules-wan

Il est à noter qu’il serait intéressant de ne limiter l’exposition que sur les IPs de vos différents sites.

Il est maintenant possible de configurer les autres Hôtes qui font partie de votre réseau Tinc, pour se faire aller dans la partie, VPN > Tinc > Hosts et renseigner les informations des autres pare-feux :

tinc-define-host

Les éléments à définir sont :

  • L’IP public
  • Le Port
  • Le nom d’hôte
  • La clé publique

Tinc crée un réseau Full Mesh entre vos points, et les routeurs Tinc peuvent faire transiter du trafic d’hôtes qui ne sont pas directement reliés.

Configuration du routage

Une fois ces opérations réalisées, il est convient de définir le routage entre vos différents réseaux, pour cela il faut assigner l’interface TINC :

tinc-assign-interface

Nous définirons ensuite des passerelles correspondantes aux autres noeuds Tinc comme suit :

tinc-create-gateway

Dès lors, OPNSense validera la connectivité avec les différentes passerelles et leur taux de latence :

tinc-create-route

Il conviendra ensuite de réaliser le routage vers les différents réseaux :

tinc-assign-route

À partir de cet instant, le trafic peut correctement transiter entre vos instances.

Configuration du pare-feu

Il n’est actuellement pas possible de communiquer entre les noeuds car les configurations vont par défaut refuser tout le trafic, pour corriger cela nous allons autoriser de manière large les différents protocoles sur les interfaces TINC / TincVPN :

tinc-fw-rules

tincvpn-fw-rules

Conclusion

Il est maintenant possible de communiquer entre les réseaux de vos 3 sites en passant par votre VPN Tinc, il est également possible de l’intégrer avec d’autres types de noeuds.

La partie routage peut être plus dynamique et nous allons voir dans un prochain article comment intégrer OSPF à ce déploiement.