Aller au contenu

Application du protocole IPV6 : Accès redondant à votre réseau local.


Jeff777

Messages recommandés

Ce tuto est l'objet d'une collaboration avec @dd5992

N'oubliez pas de le remercier si cela vous à plu 😉

Prérequis :

·         avoir 2 synos sur le réseau local

·         une box compatible IPV6

·         Avoir son propre nom de domaine et être ns et soa de sa zone (voir Tuto de Fenrir DNS serveur).

·         Savoir utiliser le reverse proxy : (voir Tuto de Kawamashi )

·         Avoir implémenté le tuto de Fenrir sur la sécurisation des accès.

 

Notation :

On notera « ndd » le nom de domaine principal utilisé (par exemple machin.fr)

 

Idée directrice :

But à atteindre : accéder en interne et en externe aux applications des synos ainsi qu’aux périphériques du réseau local avec une adresse xxx.ndd, même en cas de panne ou de déconnexion d’internet de l’un des deux synos (fonctionnement dégradé), tout ceci en n’utilisant que le port 443 (https), le port 80 pouvant être utilisé pour rediriger son traffic sur le port 443 ou pour un autre usage (par exemple être disponible pour le renouvellement du certificat Let’s Encrypt – en limitant l’accès dans le pare-feu).

Bien entendu, en cas de fonctionnement dégradé il ne sera pas possible d’accéder, depuis l’extérieur, aux applications du syno déconnecté d’internet 😊.

Lors d’une connexion à partir d’une adresse de type « xxx.ndd » un reverse-proxy est utilisé pour accéder à une application de l’un des synos ou à l’un des périphériques (imprimante, routeur, caméra, …). L’idée est d’implémenter un reverse-proxy dans chacun des deux synos, chacun étant accessible de l’extérieur avec la même adresse et donnant accès aux mêmes applications et périphériques du réseau local.

La difficulté principale est de conserver la connexion depuis l’extérieur avec le réseau local lorsque le syno1 qui héberge la zone locale est déconnecté d’internet.

Pour cela nous allons utiliser la recopie de la zone publique sur le DNS secondaire et transmettre par cette zone l’adresse IPV6 du syno2 comme ns publique IPV6.

L’autre difficulté est d’utiliser les reverse-proxies sur 2 synos différents avec la contrainte de n’utiliser que le port 443, car en IPV4, il n’est possible de rediriger ce port que sur l’un d’eux. L’IPV6 nous permettra de résoudre cette difficulté tout en conservant le même niveau de sécurité.

 

Réalisation :

 

Fonctions IPV6 utilisées

Règle générale : En IPV6, toutes les machines du réseau local qui sont compatibles avec ce protocole (routeurs, synos, PC, caméras, …) peuvent être accessibles depuis Internet grâce à leur adresse IPV6 publique, la seule condition est que IPV6 soit activé sur la box et sur chacune des machines à contacter.

Pour notre tuto : Pour pouvoir contacter Syno2 en IPV6, il suffira d’activer l’IPV6 sur Syno2 et la box (si ce n’est déjà fait). On pourra garder la configuration du reste du réseau local tel qu’il était précédemment, c’est-à-dire en IPV4.

En IPV6, la box se comporte comme un simple routeur (même en mode bridge) sans PAT (Port Address Translation), donc le flux IPV6 entrant sera directement routé vers l’équipement qui a la bonne adresse IPV6, sans configuration particulière. Les deux comportements IPV6 et IPV4 vont coexister, et en IPV4, le PAT utilisera les redirections de port de la box pour envoyer le flux IPV4 vers Syno1 sur le port d’entrée du reverse-proxy.

Il faut donc enregistrer dans les DNS du domaine l’adresse IPV6 de Syno2 (par un enregistrement AAAA) et installer un reverse-proxy sur ce syno.

L’ouverture du réseau local à IPV6 donnant accès de l’extérieur à tout équipement local, il conviendra de filtrer les accès. C’est ce qui sera abordé dans la section Sécurité,ci-après.

 

Nom de domaine et DNS

Point de départ : les prérequis ci-dessus.

Syno1 :

Dans la zone publique on ajoute (ou modifie) deux enregistrements AAAA :

ndd         AAAA         IPV6syno2 adresse publique

ns.ndd           AAAA          IPV6syno2 adresse publique

 

Syno2 :

Pour que le domaine ne soit pas bancal et qu’il réponde correctement au test https://zonemaster.net on crée une zone publique. Avec les enregistrements suivants :

ndd      NS     ns.ndd

ndd       NS     ns1.dnssecondaire

ndd        NS     ns2.dnssecondaire (éventuellement)

ndd         AAAA    IPV6syno2 adresse publique

ns.ndd     AAAA    IPV6syno2 adresse publique

Dans notre cas nous avions un enregistrement *.ndd CNAME ns.ndd et un certificat wildcard qui nous évite de nombreux enregistrements CNAME et la création du certificat correspondant.

Il ne reste plus qu’a renseigner pour cette zone la règle de transfert de zone avec l’adresse IPV6 du DNS secondaire (IPV4 peut marcher aussi) et renseigner la notification des zones esclaves puis vérifier le zone master.

Par rapport au résultat du test https://zonemaster.net/ avant réalisation de ce tuto, Il ne doit y avoir qu’un seul warning supplémentaire sans importance concernant les numéros de série des SOA qui sont différents (on peut d’ailleurs facilement corriger ceci).

Edit : pour simplifier les mises à jour des zones, il est possible que les zones locales et publiques du syno1 soient transférées dans le syno2 par des zones slaves.

 

Utilisation des reverse-proxies

On complètera le reverse proxy du syno1 avec les applications du syno2 en employant des noms différents de celles du syno1 et une redirection vers : http://IP-locale-syno2:port de l’appli.

Pour éviter de futures ambiguïtés on remplacera, dans les redirections des applications syno1, localhost par l’adresse locale du syno1.

On fait, sur le syno2, un reverse proxy, avec les mêmes enregistrements.

 

Cas particuliers :

1/ Les virtual hosts du syno1 ne sont pas affectés. Il n’a pas été fait de test sur d’éventuels virtual hosts du syno2.

2 / PhotoStation

La commande suivante dans le .htaccess (en plus de l’éventuelle redirection du http en https si l’on utilise le port 80) :

RewriteCond %{HTTP_HOST} ^photo.ndd$

RewriteRule ^$ https://photo.nddr/photo [L,R=301]

peut être utilisée, dans les deux synos, en plus du reverse proxy.

Il faut dans ce cas remplacer photo.ndd par photo2.ndd (par exemple) pour le syno2

3/ SurveillanceStation

Le reverse proxy réalisé de manière identique aux autres applications n’est pas suffisant pour visualiser les flux vidéo des caméras (bug connu), Il faudra utiliser l’application client.

Il est possible d’utiliser le même nom pour les applications des deux synos , dans ce cas, si l’on paramètre SurveillanceStation de manière identique, on obtient une redondance sur la vue obtenue. Seuls les enregistrements réalisés seront différents d’un syno à l’autre.

Avec les synos1 et 2 (ou uniquement syno1) opérationnels, on se connecte à l’aide de l’application client à SurveillanceStation du syno1. Si le syno1 est down l’image se gèle et en rafraichissant l’application client, elle se connecte sur SurveillanceStation du Syno2.

 

Sécurité : Pare-feu IPV6

Comme on l’a vu précédemment, l’ouverture du réseau local à IPV6 impose de protéger les équipements locaux contre les accès indésirables provenant de l’extérieur. Dans l’exemple de ce tuto, il s’agit de tous les accès sur toutes les machines locales, à l’exception des ports 443 (et éventuellement 80) de Syno2.

Donc pour Syno2 il faudra activer le pare-feu en n’autorisant pour le traffic IPV6 entrant que les ports 443 et/ou 80 et en restreignant plus si besoin. On peut ajouter d’autres filtres, par exemple restreindre en plus l’accès en provenance de certaines zones géographiques.

Pour interdire l’accès IPV6 vers les autres machines, plusieurs possibilités :

·         Ne pas activer IPV6 sur une machine permet d’interdire tout accès IPV6 à cette machine.
C’est possible sur les synos (Panneau de configuration/Réseau/Interface réseau/LAN/Modifier/IPV6/Configuration d’IPV6:Desactivé), les machines (PC ou serveurs) sous Windows (
voir ici) et sur certains autres équipements.

·         Utiliser un pare feu local à chaque machine (solution idéale sur syno - ici, existe sur Windows). A utiliser pour syno1.

·         La troisième solution est plus radicale, mais nécessite un équipement spécifique :
Installer un pare-feu en entrée du réseau local (par exemple dans un routeur en aval de la box en mode bridge) (
voir la configuration ici), en ne laissant passer que les accès vers le port 443 (et 80 si besoin) de Syno2 (on peut là aussi ajouter d’autres filtres, par exemple restreindre l’accès pour certaines zones géographiques).

Note : Lors de nos tests, nous avons également essayé d’utiliser le nouveau pare-feu IPV6 de notre box (une freebox révolution). Ce pare-feu (comme la plupart des pare-feux IPV6 des box n’est pas configurable et en l’activant, nous avons perdu l’accès à Syno2 de l’extérieur. Donc pour appliquer ce tuto, il faut désactiver le pare-feu IPV6 de la box.

 

Résultats

En cas de panne du syno1 : périphériques, DSM et applications du syno2 resterons accessibles du réseau local et de l’extérieur tant que l’enregistrement IPV6 du syno2 en tant que serveur de nom restera propagé. A priori tant qu’un changement n’aura pas été transmis dans le DNS secondaire par la zone publique du DNS syno1.

Si les syno1 et 2 sont opérationnels tous les périphériques, DSM et applications sont accessibles (sauf DSM et applications syno2 si celui-ci est en panne, bien sûr)

 

Restrictions

·         En cas de panne de la box, plus aucun accès

·         La redondance n'est disponible que pour les clients externes qui ont une connectivité IPV6 (fonctionnement non redondant en IPV4)

 

Schémas illustrant le fonctionnement

Diapositive1.JPG.5cb762d3b09d71899de5455eb64eca81.JPG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Diapositive2.JPG.ddfd5eca47e2fb6a2ddbd20576360587.JPG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Diapositive3.JPG.8a3de908877b257e2849f55af4015172.JPG

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Ce tuto peut paraitre rébarbatif, mais peut intéresser tous ceux qui se sentent concernés par une ou plusieurs de ces problématiques :

  • Redondance d'accès à un réseau local (pour des professionnels peut-être - à noter que pour eux, on peut imaginer une variante utilisant plusieurs fournisseurs d'accès pour compléter la redondance),
  • Utilisation de DNS locaux ou globaux,
  • IPV6 sécurisé,
  • reverse-proxies

@Jeff777ou moi seront heureux de partager avec vous d'autres variantes qui seraient plus appropriées pour votre cas.

Ce qui nous intéresseraient dans un premier temps serait de discuter des cas d'utilisation que vous pourriez envisager et de vos différentes réactions.

Il y a aussi quelques questions en suspens, par exemple, quand une adresse est accessible à la fois en IPV4 et IPV6, comment se fait le choix au niveau des DNS.

N'hésitez pas!

Je m'aperçois aussi que nous avons omis de parler dans la partie sécurité de la possibilité de filtrage des accès de chaque redirection grâce aux profils de contrôle d'accès. Quelqu'un les a-t-il déjà utilisés?

Modifié par dd5992
Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonjour,

Petit retour après 3 mois de l'utilisation de l'accès redondant sur le LAN et depuis l'extérieur.

La longue période de test interne avec @dd5992 à permis de finaliser ce tuto qui ne demande aucune édition jusqu'à ce jour 😊

Il faut dire qu'il n'y a pas eu beaucoup de retours.☹️

Au début mon intention était d'arrêter à terme le syno2 qui me sert de sauvegarde du  syno1. Finalement je continue à fonctionner avec les deux et j'ai programmé une sauvegarde périodique du 1 vers le 2 avec Hyperbackup.

Le 25/06/2019 à 16:26, dd5992 a dit :

Il y a aussi quelques questions en suspens, par exemple, quand une adresse est accessible à la fois en IPV4 et IPV6, comment se fait le choix au niveau des DNS.

Sur cette question  je n'ai pas trop progressé. Par contre en local si le reverse proxy du syno1 est utilisé dans la plupart des cas, celui du syno2 l'est de temps en temps. Il semble que ce soit le cas lorsque le syno1 est fortement sollicité (ci-dessous les logs de la connexion au DSM syno1 via syno1:192.168.0.10 ou syno2:192.168.0.15)

Capture.JPG.4f9d1675db86756e30a949238574a488.JPG

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.