C'est ce que j'ai fait, bien qu'avec "seulement" quelques centaines de connexions distantes de la même manière derrière des routeurs DSL. Je ne peux pas trop en dire sur les problèmes de changement de code, mais quelques choses pratiques que j'ai apprises en cours de route:
1) Lors du déploiement de clients, assurez-vous de spécifier plusieurs serveurs VPN dans la configuration du client, vpn1.example.com, vpn2.example.com, vpn3 ..... Même si vous ne fournissez qu’un ou deux d’entre eux, vous vous-même Configurés correctement, les clients continueront à les réessayer de manière aléatoire jusqu'à ce qu'ils en trouvent un qui fonctionne.
2) Nous utilisons une image de serveur AWS VPN personnalisée et pouvons augmenter la capacité de traitement à la demande. Amazon DNS (R53) gère le côté DNS de vos tâches. Il est complètement détaché du reste de notre infrastructure.
3) À la fin du ou des serveurs, utilisez soigneusement le masque de réseau pour limiter le nombre de clients potentiels. Cela devrait forcer les clients sur un autre serveur, atténuant ainsi les problèmes de processeur. Je pense que nous limitons nos serveurs à environ 300 clients. Ce choix était quelque peu arbitraire de notre part - "Gut Feel" si vous voulez.
4) Également du côté du serveur, vous devez utiliser les pare-feu avec précaution. En termes simples, notre configuration est telle que les clients peuvent se connecter au VPN, mais les serveurs interdisent formellement toutes les connexions SSH entrantes, sauf à partir d'une adresse IP connue. Nous pouvons SSH pour les clients si nous en avons parfois besoin, ils ne peuvent pas SSH pour nous.
5) Ne vous fiez pas à OpenVPN pour vous reconnecter chez le client. 9 fois sur 10, ça va, mais parfois ça reste bloqué. Utilisez un processus distinct pour réinitialiser / redémarrer openVPN chez le client régulièrement.
6) Vous avez besoin d'un moyen de générer des clés uniques pour les clients afin de pouvoir les désavouer de temps en temps. Nous les générons en interne avec notre processus de génération de serveur (PXEboot). Cela ne nous est jamais arrivé, mais nous savons que nous pouvons le faire.
7) Vous aurez besoin d'outils de gestion et de scripts pour surveiller efficacement les connexions de votre serveur VPN.
Malheureusement, il n’ya pas beaucoup de matériel sur la façon de procéder mais c’est possible, avec une configuration soignée.