MikroTik et OpenVPN
Avant propos
Introduction
Le but ici est de mettre ce routeur en tête d'un sous-réseau afin de contourner une connexion avec un nombre de ports ouverts limités. Nous allons utiliser un serveur OpenVPN avec son client associé sur routeurOS 5.14 utilisé avec un MikroTik routerboard 450G. Nous supposerons que vous avez un serveur VPN fonctionnel compte tenu de réseau depuis lequel vous êtes connectés.
Remarques
- Vous allez a priori utiliser un réseau très limité, il y a donc de fortes chances que le port par défaut pour le VPN (1194) soit bloqué. Dans ce cas vous avez deux solutions :
- Vous trouver un port ouvert sur votre réseau local et non utilisé sur votre serveur
- Vous multiplexer ssl, openvpn (et pourquoi ssh) avec sslh. Vous devez au moins avoir la version 1.14 pour OpenVPN. Elle compile facilement si vous avez déjà installé la version présente dans les dépôts avec toutes ses dépendances.
- Le client routerOS est un peu pourri, vous ne pourrez pas utiliser ni la compression LZO, ni l'UDP. Pensez donc à modifier la configuration de votre serveur en conséquence.
Configuration du routeur
Les commandes données ici seront à taper dans la console du routeur disponiblent avec ssh.
Mise en place du client VPN
interface ovpn-client add name="vpn" max-mtu=$ connect-to=$ port=$ mode=ethernet user="$" password="$" profile=default auth=$ cipher=$ add-default-route=no
Les valeurs $ sont données par la configuration du VPN, un exemple concret peut être
interface ovpn-client add name="vpn" max-mtu=1500 connect-to=91.224.149.55 port=993 mode=ethernet user="user_vpn" password="*******" profile=default auth=sha1 \ cipher=aes256 add-default-route=no
Ajouter les routes pour que les paquets transitent par le VPN
ip route add dst-address=0.0.0.0/1 gateway=$ip_gateway_vpn ip route add dst-address=$ip_publique_serveur_vpn/32 gateway=$ip_gateway_locale ip route add dst-address=128.0.0.0/1 gateway=$ip_gateway_vpn
Ce qui doit donner quelque chose à fin qui ressemble à
ip route print Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 ADS 0.0.0.0/0 172.16.110.1 1 1 A S 0.0.0.0/1 10.42.100.1 1 2 ADC 10.42.100.0/24 10.42.100.5 vpn 0 3 A S 91.224.149.55/32 172.16.110.1 1 4 A S 128.0.0.0/1 10.42.100.1 1 5 ADC 172.16.110.0/24 172.16.110.52 ether1-gateway 0 6 ADC 192.168.88.0/24 192.168.88.1 ether2-master-l... 0
Éditer le firewall pour tout utiliser le NAT du routeur
ip firewall nat edit 0 value-name=out-interface
Et remplacer la valeur présente par l'interface du vpn (sobrement appelée vpn dans cet exemple)
Les DNS
Vous devez remplacer les DNS donnés par le DHCP s'ils ne sont pas accessibles au travers du tunnel ou qu'ils mentent
ip dns edit value-name=servers
Et rentrez par exemple l'IP de ceux de oleane 194.2.0.20 ou 194.2.0.50