Question

Je dois parfois écrire un logiciel pour établir une prise avec un serveur particulier résidant dans un VPN Cisco. Je vous écris simplement mon logiciel comme s'il n'y avait pas de VPN (faisant usage de la bibliothèque standard de prises). Quand il est temps d'exécuter ce programme, je vous connecter manuellement au VPN à l'aide du logiciel client installé sur mon ordinateur, puis exécutez le programme lui-même.

Cependant, il serait souhaitable d'écrire le logiciel pour profiter d'une bibliothèque spécialisée de prise capable de communiquer via le VPN directement, sans l'utilisation de tout logiciel client installé.

Voici un code Java illustrant la fonctionnalité que je voudrais:

String vpnHost = ...;
String vpnUser = ...;
String vpnPassword = ...;
VPNConnection vpnConnection = new CiscoVPNConnection(vpnHost, vpnUser, vpnPassword);

String serverHost = ...;
int serverPort = ...;
Socket socket = vpnConnection.openSocket(serverHost, serverPort);

Est-il possible d'établir une telle connexion à un réseau privé virtuel sans installer aucun logiciel client?

Était-ce utile?

La solution

Cela dépend de la façon dont est configuré le serveur VPN.

La plupart des produits VPN utilisent IPSEC, un protocole standard pour crypter les connexions TCP / IP. La plupart des produits utilisent également ISAKMP, l'architecture de sécurité Internet Key Management Protocol, également une norme, de mettre en place la session. Le code source IPSEC et ISAKMP est facilement disponible, et peut-être déjà installé sur votre système.

Maintenant pour les mauvaises nouvelles: bien que tout ce que je l'ai déjà mentionné est standard, les schémas d'authentification qui peuvent être utilisés avec ISAKMP sont presque tous propriétaires. Les deux schémas d'authentification « standard » sont des certificats de clé pré-partagée et X.509. Si le serveur VPN est configuré pour permettre une de ces alors vous avez une chance. Dans le cas contraire, vous ne pouvez pas vraiment utiliser le VPN, le protocole est vraiment propriétaire et presque impossible à désosser comme la conversation d'authentification est cryptée.

Un chemin beaucoup plus facile: avez-vous vraiment besoin d'un VPN, ou est-il une façon que vous pouvez tunnel sur SSL? Je pense que Java prend en charge SSL; vous pouvez simplement créer le socket sécurisé dont vous avez besoin et aller de là.

Si vous savez ce que le système client que vous utilisez, puis envisager les bombardements d'invoquer le client VPN Cisco pour ce système.

Dans le cas contraire, vous devrez reproduire ce qu'un client VPN fait. Le client VPN effectue l'authentification et la configuration de session avec ISAKMP et installe le résultat dans le noyau pour créer la connexion VPN. implémentations ISAKMP sont disponibles; il vous suffit de comprendre ce que l'authentification est utilisé et essayer de mettre en place que. À quel point vous avez écrit votre propre client VPN.

Autres conseils

J'utilise le paquet vpnc sur linux afin de se connecter à mon entreprise VPN Cisco, puisque nous ne disposons pas d'un client Linux compatible. vpnc est écrit en C, donc vous devrez effectuer un port.

Vous pouvez lire cisco officiel doc et après que vous pouvez créer un fichier de chauve-souris avec ces données: vpnclient connecter [Nom de connexion] PWD [Mot de passe] et déconnecter. L'inclure à votre programme java: . Runtime.getRuntime () exec ( "cmd / c start [Chemin vers le fichier de chauve-souris]");

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top