Mikrotik : Configurer un serveur OpenVPN et connecter un client Android

Récemment, j’ai changé de smartphone de ma femme et j’ai découvert qu’avec le nouvel Android v13, il n’était plus possible de paramétrer de VPN L2TP/IPSEC : Android a purement et simplement supprimé cette possibilité au profit de IKEv2 (pour des raisons de failles de sécu).
Du coup, j’y songeais depuis quelques temps (et ça m’a donc obligé à le faire), je suis passé au paramétrage d’un serveur OpenVPN.

Dans ce tuto, je pars du principe que le Mikrotik est déjà paramétré/fonctionnel pour tout le reste (ip, route, firewall) .
Dans cet exemple, le routeur a pour IP LAN 192.168.2.250 et est accessible sur Internet depuis son adresse cloud (type XXXXXXXX.sn.mynetname.net).
Tout ce qui est en orange dans la suite de cette article, doit être personnalisé.

Paramétrage OpenVPN côté serveur Mikrotik :

/certificate
add name=CA common-name=CA days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign
add name=SERVER common-name=XXXXXXXX.sn.mynetname.net days-valid=3650 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=CLIENT-1 common-name=CLIENT-1 days-valid=3650 key-size=2048 key-usage=tls-client
/certificate
sign CA name=CA
sign SERVER name=SERVER ca=CA
sign CLIENT-1 name=CLIENT-1 ca=CA

Parfois cela peut prendre un peu de temps et afficher un message d’erreur (ce n’est rien, en attendant un peu, les fichiers se génèrent/signent bien) :

On poursuit :

/certificate
export-certificate CA export-passphrase=""
export-certificate CLIENT-1 export-passphrase=<votre_mot_de_passe>
/ppp
profile add name="Profil_OVPN" use-encryption=yes local-address=192.168.2.250 dns-server=192.168.2.250 remote-address=pool_VPN
secret add name=VPN_CLIENT1_ovpn profile=Profil_OVPN password=<YOUR PASSWORD>
/interface ovpn-server server
set default-profile=Profil_OVPN certificate=SERVER port=1194 require-client-certificate=yes auth=sha1 cipher=aes128,aes192,aes256 enabled=yes
/ip firewall filter
add chain=input protocol=tcp dst-port=1194 action=accept place-before=0 comment="Connexions OpenVPN"

Ensuite, il faut télécharger les trois fichiers (2 .CRT et 1 .KEY) qui se sont générés dans « Files »

Dans mon cas, je les déposes sur mon NAS (Synology) afin d’aller les récupérer (avec DS File) avec mon smartphone.

J’en profites également pour créer un fichier de configuration xxxx_config.ovpn

client
dev tun
proto tcp
remote xxxxxxxx.sn.mynetname.net 31194
resolv-retry infinite
nobind
persist-key
persist-tun
ca cert_export_CA.crt
cert cert_export_CLIENT-1.crt
key cert_export_CLIENT-1.key
remote-cert-tls server
cipher AES-256-CBC
compat-mode 2.4.0
auth SHA1
auth-user-pass
redirect-gateway def1
route 0.0.0.0 0.0.0.0 vpn_gateway
verb 3

Ce qui me donne sur mon NAS :

Ensuite côté « client », sur le smartphone Android :

On télécharge/installe l’application « OpenVPN for Android »

On récupère les fichiers précédemment créés (crt, key et ovpn).
Perso je créé un répertoire « OpenVpn » dans le répertoire « Documents » du téléphone et j’y dépose les fichiers.

Ensuite j’appuie sur le fichier xxx.ovpn …

… et cela lance l’importation de la configuration.

On clique sur « Select » pour indiquer l’emplacement des fichiers crt et key puis on valide.

Quand on clique sur « Select.. », il faut juste naviguer dans les répertoires du smartphone et cocher l’emplacement du certificat.

On ouvre l’application OpenVPN for Android et on clique sur le crayon correspond à la nouvelle configuration que l’on vient d’importer.

Ici, on entre la clé privée du certificat client (celle générée précédemment : <YOUR PASSWORD>)

Et on se connecte… le tour est joué.

Vu du Mikrotik, la tentative de connexion est réussie.

Trop compliqué à mettre en place ? Voyez le nouvel article sur le VPN WireGuard dans Mikrotik (user friendly ++)

Si vous souhaitez partager cet article...Share on facebook
Facebook
Share on google
Google
Share on twitter
Twitter