3 votes

Comment configurer un tunnel L2 chiffré à l'aide de routeurs MikroTik ?

Ce que j'aimerais réaliser

Je souhaite étendre de manière sécurisée un sous-réseau interne existant sur plusieurs bâtiments. Cela signifie que j'ai deux emplacements avec des machines virtuelles qui doivent être dans le même sous-réseau. L'idée est que les machines virtuelles (ayant une IP statique) puissent être migrées d'un emplacement à l'autre.

Les machines hôtes (physiques) sont connectées à un commutateur à chaque emplacement. Ainsi, s'il n'y avait pas de problème de sécurité ou de coût, je connecterais simplement les deux commutateurs avec un câble réseau:

[Machines]---[Commutateur A] <---- CABLE LONG ---> [Commutateur B]---[Machines]

Ce que je voudrais, c'est remplacer ce long câble par un tunnel chiffré en utilisant deux passerelles qui n'ont pas besoin de se soucier des adresses IP ou du routage et qui se contentent de prendre tous les paquets entrants, de les chiffrer et de les envoyer à l'autre passerelle via un tunnel chiffré. L'autre passerelle déchiffre ensuite les paquets et les envoie au commutateur distant. Cela ressemblerait physiquement à ceci:

[Machines]---[Commutateur A]---[PASSERELLE A] <-- INTERNET --> [PASSERELLE B]--[Commutateur B]---[Machines]

Je souhaite éviter que les passerelles aient besoin d'adresses IP dans le sous-réseau. Les règles devraient être entièrement basées sur les ports:

  • Données entrantes sur le port 1 : routage via interface de tunnel
  • Données entrantes sur l'interface de tunnel : routage via port 1

Les deux passerelles auraient une adresse IP statique routable pour établir le tunnel. Le chiffrement devrait être fort (au moins AES128, SHA256, DH2048 ; un secret partagé est acceptable), que les tunnels de type PPP simple ne prennent pas en charge. Ainsi, une couche de chiffrement supplémentaire/séparée pourrait être nécessaire.

Je dispose uniquement de routeurs MikroTik. Je préférerais donc les utiliser. Cependant, je recherche principalement les "mots magiques" (noms de protocole, etc.) et la bonne combinaison de technologies qui me permettront de le faire. Donc, si vous savez comment le faire avec des routeurs Cisco ou des routeurs HP, cela pourrait probablement aussi aider si vous expliquiez comment vous le feriez simplement avec ceux-là...

Questions/Tentatives

Quels types de filtres pare-feu et de protocoles puis-je utiliser pour réaliser ceci ?

Ma première idée était d'utiliser IPsec pour étendre le tunnel chiffré. Mais alors, je devrais définir une politique IPsec qui est basée sur le port physique. Mais il n'y a qu'une option pour définir que les données depuis/vers une combinaison d'adresse IP/adresse IP spéciale/port IP.

Ainsi, IPsec ne fonctionnerait que comme une couche de chiffrement pour un autre type de tunnel (PPTP, SSTP, L2TP et OVPN sont actuellement pris en charge par le routeur MikroTik RouterOS). Comme les tunnels PPP ne prennent généralement pas en charge un chiffrement fort, je laisserais IPsec faire ce travail et étendrais le tunnel PPP non chiffré à travers le tunnel IPsec chiffré.

D'accord, nous avons au moins une sorte d'interface de tunnel que nous pouvons utiliser comme un port de sortie. Cependant, je suis un peu perdu ici. Je ne trouve pas la possibilité de dire : "une trame entrante à doit être envoyée via l'interface " et "une trame entrante à doit être envoyée via l'interface ".

Je ne travaille pas souvent au niveau 2... donc je cherche en fait le terme ou la catégorie appropriée. Je suppose que je pourrais le trouver dans le pare-feu IP (mangle->prerouting) ou quelque chose comme ça, mais j'imagine que c'est déjà des trucs de niveau 3...

Dois-je simplement configurer un pont ? Si oui, comment puis-je ajouter l'interface de tunnel au pont (de préférence en utilisant l'interface Winbox) ? Le pont doit-il avoir une adresse MAC ?

Au cas où cette tentative serait une impasse : J'ai également trouvé "EoIP", "Tunnel IP" et "Tunnel GRE" dans les paramètres de l'interface. Mais je n'ai pas réellement d'idée de ce qu'ils peuvent faire... Donc, au cas où, faites-moi savoir lequel vaut la peine d'être étudié...

Aussi, s'il y a une solution plus simple et propre, n'hésitez pas à me dire simplement votre solution... Vous n'avez pas à poursuivre mes tentatives ci-dessus, s'il y a simplement un moyen plus facile !

5voto

Cha0s Points 2424

Vous pouvez réaliser ce que vous demandez en utilisant une combinaison de ponts, tunnels EoIP et IPsec.

Tout d'abord, vous créez un tunnel EoIP des deux côtés afin que les deux routeurs puissent communiquer entre eux.
EoIP est un tunnel propriétaire de MikroTik qui fonctionne assez comme le protocole GRE 47.
Il peut transférer des trames Ethernet entières et pas seulement IP (comme IPIP ou l'interface TAP par exemple), ce qui le rend idéal pour 'étendre' les domaines de diffusion L2 sur des liens L3.

Ensuite, configurez IPsec pour chiffrer les communications sur le tunnel.
Sur les dernières versions de Mikrotik, cela peut être fait automatiquement depuis les paramètres de l'interface EoIP, bien que je préfère le configurer manuellement pour un meilleur contrôle.
Vous appliquez les politiques IPsec sur les IPs des extrémités des tunnels EoIP (chiffrant ainsi tout le trafic du tunnel EoIP) et non pour les réseaux passant à travers le tunnel.

Et enfin, créez un pont sur les deux routeurs et attachez le(s) port(s) Ethernet et le tunnel EoIP de chaque côté.

De cette façon, vous pouvez étendre le domaine de diffusion L2 jusqu'au côté distant et le pont se chargera de décider quels paquets doivent passer par le tunnel et lesquels doivent rester localement.
Les ponts sont comme des commutateurs logiciels, donc ils tiennent un tableau desquelles MAC sont sur quels ports et transfèrent automatiquement les paquets destinés à chaque port. Tout le trafic de diffusion sera bien sûr transféré vers le tunnel. Plus d'informations sur les ponts

Dans la documentation officielle de MikroTik, ce scénario est déjà documenté (à l'exception du chiffrement IPsec).

Supposons que nous voulons relier deux réseaux : le 'LAN du bureau' et le 'LAN distant'. En utilisant une configuration EoIP, il est possible de mettre en place un même domaine de diffusion Layer2 pour les LANs du bureau et distant.

Considérez la configuration suivante: entrez la description de l'image ici

Comme vous le savez, les stations sans fil ne peuvent pas être reliées en pont, pour surmonter cette limitation (sans utiliser WDS), nous allons créer un tunnel EoIP sur le lien sans fil et le relier avec les interfaces connectées aux réseaux locaux.

Nous ne couvrirons pas la configuration sans fil dans cet exemple, supposons que le lien sans fil est déjà établi.

Tout d'abord, nous créons un tunnel EoIP sur notre passerelle...

[admin@Our_GW] interface eoip> add name="eoip-remote" tunnel-id=0 \
\... remote-address=10.0.0.2
[admin@Our_GW] interface eoip> enable eoip-remote
[admin@Our_GW] interface eoip> print
Flags: X - disabled, R - running
  0    name=eoip-remote mtu=1500 arp=enabled remote-address=10.0.0.2 tunnel-id=0
[admin@Our_GW] interface eoip>

... et sur le routeur distant...

[admin@Remote] interface eoip> add name="eoip" tunnel-id=0 \
\... remote-address=10.0.0.1
[admin@Remote] interface eoip> enable eoip-main
[admin@Remote] interface eoip> print
Flags: X - disabled, R - running
  0   name=eoip mtu=1500 arp=enabled remote-address=10.0.0.1 tunnel-id=0

[admin@Remote] interface eoip>

La prochaine étape consiste à relier les interfaces locales avec le tunnel EoIP sur notre passerelle...

[admin@Our_GW] interface bridge> add 
[admin@Our_GW] interface bridge> print
Flags: X - disabled, R - running
 0  R name="bridge1" mtu=1500 arp=enabled mac-address=00:00:00:00:00:00 
      protocol-mode=none priority=0x8000 auto-mac=yes 
      admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s 
      transmit-hold-count=6 ageing-time=5m 
[admin@Our_GW] interface bridge> port add bridge=bridge1 interface=eoip-remote
[admin@Our_GW] interface bridge> port add bridge=bridge1 interface=office-eth
[admin@Our_GW] interface bridge> port print
Flags: X - disabled, I - inactive, D - dynamic
 #    INTERFACE      BRIDGE  PRIORITY PATH-COST
 0    eoip-remote    bridge1 128      10
 1    office-eth     bridge1 128      10
[admin@Our_GW] interface bridge>

... et sur le routeur distant...

[admin@Remote] interface bridge> add 
[admin@Remote] interface bridge> print
Flags: X - disabled, R - running
 0  R name="bridge1" mtu=1500 arp=enabled mac-address=00:00:00:00:00:00 
      protocol-mode=none priority=0x8000 auto-mac=yes 
      admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s 
      transmit-hold-count=6 ageing-time=5m 
[admin@Remote] interface bridge> port add bridge=bridge1 interface=ether
[admin@Remote] interface bridge> port add bridge=bridge1 interface=eoip-main
[admin@Remote] interface bridge> port print
Flags: X - disabled, I - inactive, D - dynamic
 #    INTERFACE      BRIDGE  PRIORITY PATH-COST
 0    ether          bridge1 128      10
 1    eoip-main      bridge1 128      10     
[admin@Remote] interface bridge>

Maintenant, les deux sites sont dans le même domaine de diffusion Layer2. Vous pouvez configurer des adresses IP du même réseau des deux côtés.

Et vous devez également configurer IPsec. Plus d'informations ici

Gardez à l'esprit qu'IPsec, bien que ce soit le moyen le plus sécurisé de communiquer sur Mikrotik à l'heure actuelle, consomme beaucoup de CPU sauf si vos routeurs ont une accélération matérielle. Donc, si vous utilisez un simple routeurboard, ne vous attendez pas à plus de 10-15 Mo/s de débit.

Si vos routeurs ont des IPs internet dynamiques, vous devrez utiliser la fonction IP > Cloud de MikroTik pour obtenir un DynDNS et utiliser ensuite ces DynDNS avec un petit script pour mettre à jour automatiquement les IPs sur les tunnels EoIP et les pairs IPsec et les politiques lorsque vos IPs publiques changent.

Enfin, je suppose que vos connexions à internet ont au mieux un MTU de 1500 octets. En utilisant le tunnel et EoIP, vous devrez réduire le MTU de l'interface du tunnel EoIP aux alentours de 1400 octets (vous feriez mieux de faire quelques tests pour trouver la meilleure valeur pour votre configuration/trafic).
Pour ma configuration/trafic, j'utilise 1400 octets. Malheureusement, en raison de la nature d'IPsec en fonction de la taille de vos paquets, le surdébit est variable, vous ne pouvez donc pas toujours en tirer le meilleur parti.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X