Blog

Annonce de l'addon Scalingo OpenVPN : un moyen facile de connecter votre infrastructure privée

Chargement...

8 min de lecture

Annonce de l'addon Scalingo OpenVPN : un moyen facile de connecter votre infrastructure privée

Nous sommes ravis d'annoncer la sortie d'un nouvel addon sur la plateforme : Scalingo OpenVPN.

Nous sommes heureux d'annoncer la sortie d'un nouvel addon sur la plateforme : Scalingo OpenVPN. Connecter vos conteneurs d'application à votre infrastructure privée à l'aide d'un tunnel chiffré avec OpenVPN est désormais possible avec la simplicité à laquelle vous êtes habitué sur Scalingo.

Contexte

Il y a quelque temps, certains clients souhaitaient accéder à leur infrastructure privée via un VPN. Pour répondre à ce besoin, l'addon Scalingo VPN IPSec a été intégré à la plateforme.

Parce que vous ne saurez jamais quel type d'installation de logiciel VPN vous trouverez dans la nature (généralement, vous n'en configurez qu'un seul), nous lançons aujourd'hui le nouvel addon Scalingo OpenVPN.

Après avoir ajouté la configuration VPN, tous les conteneurs de l'application utilisant l'addon acquièrent une connectivité chiffrée à l'infrastructure privée ciblée.

Comment cela fonctionne-t-il ?

Votre application s'exécute dans un ou plusieurs conteneurs Docker. Par défaut, ces conteneurs sont connectés au monde extérieur avec une interface réseau. Lorsque l'addon VPN est utilisé, une deuxième interface réseau est automatiquement créée pour la connectivité VPN. Le schéma suivant représente cette méthode.



Schema



Cette opération est effectuée avant que votre application ne soit démarrée pour garantir que le réseau privé est prêt lorsque celle-ci fonctionne. Si le tunnel VPN échoue à se lancer, le démarrage de l'application sera considéré comme un échec et la configuration du VPN devra être mise à jour avant de tenter à nouveau de démarrer de nouveaux conteneurs.

Considérations de sécurité

L'une des premières questions que vous pourriez vous poser est : "Quelle est la sécurité de cela ?" La plateforme s'assure que l'interface VPN n'est présente que dans l'espace de noms réseau de vos conteneurs d'application. Un espace de noms réseau est un environnement réseau virtuel isolé lié à un conteneur. Il contient toutes les interfaces réseau dédiées à ce conteneur précis. Cela signifie que pour d'autres conteneurs partageant le même hôte, il n'est pas possible de voir ou d'intercepter quoi que ce soit lié à votre VPN.

Différences entre les technologies L2TP/IPsec et OpenVPN

OpenVPN est une solution VPN open-source basée sur le protocole de chiffrement SSL/TLS. Elle est hautement configurable car elle peut fonctionner sur n'importe quel port et en TCP ou UDP.

Les implémentations L2TP/IPsec sont souvent plus souvent des logiciels fermés, car les implémentations les plus courantes ont été développées par Cisco et Microsoft. Elles doivent fonctionner en UDP sur le port 500.

On considère souvent qu'OpenVPN, grâce à son utilisation de TLS, peut être configuré pour être beaucoup plus sécurisé. Une plus grande variété d'algorithmes de chiffrement et de ciphers est disponible. Les performances sont également meilleures avec OpenVPN car L2TP/IPSec encapsule deux fois les données (une fois pour le chiffrement, et une fois pour le tunneling).

Configuration

Une fois que l'addon OpenVPN a été provisionné, il doit être configuré via son tableau de bord. Les éléments suivants peuvent être configurés : OpenVPN, certificat CA, certificat utilisateur, clé privée utilisateur, phrase de passe de clé privée utilisateur, nom d'utilisateur/mot de passe.

Comme indiqué dans leur description, ces champs doivent être remplis conformément à la configuration du serveur OpenVPN. Vous devez demander à l'administration du VPN de vous fournir cette description.

Vous pouvez trouver des instructions exhaustives et des éléments de configuration sur la page de documentation de l'addon Scalingo VPN.

Une fois validés, vos conteneurs d'application seront automatiquement redémarrés, et leurs journaux devraient contenir :

-----> Starting OpenVPN connection…
 Socket Buffers: R=[87380->131072] S=[16384->131072]
 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Jun 22 2017
 Attempting to establish TCP connection with [AF_INET]<IP:PORT> [nonblock]
 TCP connection established with [AF_INET]<IP:PORT>
 TCPv4_CLIENT link remote: [AF_INET]<IP PORT>
 TCPv4_CLIENT link local: [undef]
 TLS: Initial packet from [AF_INET]<IP PORT>, sid=a0081f01 2f804579
 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
 [<remote host>] Peer Connection Initiated with [AF_INET]<IP:PORT>
 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 SENT CONTROL [dpr-scafw01]: 'PUSH_REQUEST' (status=1)
 ROUTE_GATEWAY 172.17.0.1/255.255.0.0 IFACE=eth0 HWADDR=02:42:ac:11:00:10
 /sbin/ip addr add dev tun0 local <local VPN IP> peer <remote VPN IP>
 TUN/TAP TX queue length set to 100
 TUN/TAP device tun0 opened
 /sbin/ip link set dev tun0 up mtu 1500
 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 OPTIONS IMPORT: timers and/or timeouts modified
 OPTIONS IMPORT: route options modified
 /sbin/ip route add <gateway>/32 via 172.17.0.1
 Initialization Sequence Completed
 /sbin/ip route add <private network> via <remote VPN IP>
-----> OpenVPN connected
-----> Starting OpenVPN connection…
 Socket Buffers: R=[87380->131072] S=[16384->131072]
 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Jun 22 2017
 Attempting to establish TCP connection with [AF_INET]<IP:PORT> [nonblock]
 TCP connection established with [AF_INET]<IP:PORT>
 TCPv4_CLIENT link remote: [AF_INET]<IP PORT>
 TCPv4_CLIENT link local: [undef]
 TLS: Initial packet from [AF_INET]<IP PORT>, sid=a0081f01 2f804579
 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
 [<remote host>] Peer Connection Initiated with [AF_INET]<IP:PORT>
 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 SENT CONTROL [dpr-scafw01]: 'PUSH_REQUEST' (status=1)
 ROUTE_GATEWAY 172.17.0.1/255.255.0.0 IFACE=eth0 HWADDR=02:42:ac:11:00:10
 /sbin/ip addr add dev tun0 local <local VPN IP> peer <remote VPN IP>
 TUN/TAP TX queue length set to 100
 TUN/TAP device tun0 opened
 /sbin/ip link set dev tun0 up mtu 1500
 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 OPTIONS IMPORT: timers and/or timeouts modified
 OPTIONS IMPORT: route options modified
 /sbin/ip route add <gateway>/32 via 172.17.0.1
 Initialization Sequence Completed
 /sbin/ip route add <private network> via <remote VPN IP>
-----> OpenVPN connected
-----> Starting OpenVPN connection…
 Socket Buffers: R=[87380->131072] S=[16384->131072]
 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Jun 22 2017
 Attempting to establish TCP connection with [AF_INET]<IP:PORT> [nonblock]
 TCP connection established with [AF_INET]<IP:PORT>
 TCPv4_CLIENT link remote: [AF_INET]<IP PORT>
 TCPv4_CLIENT link local: [undef]
 TLS: Initial packet from [AF_INET]<IP PORT>, sid=a0081f01 2f804579
 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
 [<remote host>] Peer Connection Initiated with [AF_INET]<IP:PORT>
 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 SENT CONTROL [dpr-scafw01]: 'PUSH_REQUEST' (status=1)
 ROUTE_GATEWAY 172.17.0.1/255.255.0.0 IFACE=eth0 HWADDR=02:42:ac:11:00:10
 /sbin/ip addr add dev tun0 local <local VPN IP> peer <remote VPN IP>
 TUN/TAP TX queue length set to 100
 TUN/TAP device tun0 opened
 /sbin/ip link set dev tun0 up mtu 1500
 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 OPTIONS IMPORT: timers and/or timeouts modified
 OPTIONS IMPORT: route options modified
 /sbin/ip route add <gateway>/32 via 172.17.0.1
 Initialization Sequence Completed
 /sbin/ip route add <private network> via <remote VPN IP>
-----> OpenVPN connected
-----> Starting OpenVPN connection…
 Socket Buffers: R=[87380->131072] S=[16384->131072]
 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Jun 22 2017
 Attempting to establish TCP connection with [AF_INET]<IP:PORT> [nonblock]
 TCP connection established with [AF_INET]<IP:PORT>
 TCPv4_CLIENT link remote: [AF_INET]<IP PORT>
 TCPv4_CLIENT link local: [undef]
 TLS: Initial packet from [AF_INET]<IP PORT>, sid=a0081f01 2f804579
 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
 [<remote host>] Peer Connection Initiated with [AF_INET]<IP:PORT>
 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
 SENT CONTROL [dpr-scafw01]: 'PUSH_REQUEST' (status=1)
 ROUTE_GATEWAY 172.17.0.1/255.255.0.0 IFACE=eth0 HWADDR=02:42:ac:11:00:10
 /sbin/ip addr add dev tun0 local <local VPN IP> peer <remote VPN IP>
 TUN/TAP TX queue length set to 100
 TUN/TAP device tun0 opened
 /sbin/ip link set dev tun0 up mtu 1500
 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 OPTIONS IMPORT: timers and/or timeouts modified
 OPTIONS IMPORT: route options modified
 /sbin/ip route add <gateway>/32 via 172.17.0.1
 Initialization Sequence Completed
 /sbin/ip route add <private network> via <remote VPN IP>
-----> OpenVPN connected

Tarification

L'addon Scalingo OpenVPN suit la même tarification que l'addon Scalingo VPN IPSec : pour le moment, il n'y a qu'un plan qui coûte 30€/mois. Nous verrons plus tard si de nouveaux plans sont nécessaires.

Conclusion

Avec nos deux addons liés au VPN, Scalingo VPN IPSec et Scalingo OpenVPN, nous avons une boîte à outils robuste pour cibler presque toute infrastructure privée que vous pourriez avoir cachée dans le réseau de votre entreprise. Il est donc possible de déployer vos applications à forte croissance nécessitant des cycles de vie flexibles (démarrer, arrêter, augmenter, diminuer) sur Scalingo et de profiter de tous les avantages de notre PaaS (Plateforme en tant que service) sans avoir besoin de déplacer tout hors de vos centres de données privés.

Yann Klis, Scalingo

Yann Klis

Yann KLIS a fondé Scalingo en 2015 avec son associé Léo Unbekandt avec la vision de proposer une plateforme cloud d'hébergement web, véritable alternative européenne et souveraine aux géants américains. Aujourd'hui Scalingo héberge plusieurs milliers d'applications web déployées par des clients du monde entier ! L'objectif de Scalingo est de devenir la plateforme cloud de référence pour les développeurs web en Europe. Auparavant, il a fondé Novelys, un studio de développement spécialisé dans la technologie Ruby on Rails.

Restez informé

Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.

Prêt à déployer en toute confiance ?

Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.

Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.