Connexion à un VPN sans installation de logiciel client
Je dois parfois écrire un logiciel pour établir une prise avec un serveur particulier résidant dans un VPN Cisco. J'écris simplement mes logiciels, comme s'il n'y avait pas de VPN (utilisation de la norme bibliothèque des sockets). Quand il est temps pour exécuter ce programme, j'ai manuellement connecter au VPN en utilisant le 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 institution spécialisée bibliothèque de socket capable de communiquer via le VPN directement, sans l'utilisation de toute installation de logiciel client.
Voici le code Java illustrant les fonctionnalités que je souhaite:
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 un tel lien à un VPN sans avoir à installer de logiciel client?
OriginalL'auteur Adam Paynter | 2009-05-22
Vous devez vous connecter pour publier un commentaire.
Cela dépend de la façon dont le serveur VPN est configuré.
La plupart des produits VPN utiliser IPSEC, un protocole standard pour le chiffrement des connexions TCP/IP. La plupart des produits utilisent également ISAKMP, l'Internet Architecture de Sécurité Protocole de Gestion de Clés, aussi une norme, à l'ensemble de la session. Le code Source pour 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 j'ai déjà mentionné, c'est la norme, les schémas d'authentification qui peut être utilisé avec ISAKMP sont presque tous propriétaires. Les deux "standard" schémas d'authentification sont la clé pré-partagée, et X. 509 certificats. Si le serveur VPN est configuré pour permettre à l'une de ces choses, alors vous avez une chance. Sinon, vous ne pouvez pas vraiment utiliser le VPN, comme le protocole est vraiment exclusive et presque impossible à désosser comme l'authentification conversation est crypté.
Un beaucoup plus facile path: avez-vous vraiment besoin d'un VPN, ou est-il une manière que vous pouvez tunnel sur SSL? Je pense que Java supporte les connexions SSL; vous pouvez simplement créer le secure socket dont vous avez besoin et à partir de là.
Si vous savez ce client système que vous utilisez, puis considérer les bombardements d'invoquer le client VPN Cisco pour ce système.
Sinon, vous aurez à reproduire ce qu'un client VPN. Le client VPN effectue l'authentification et la configuration de la session avec ISAKMP, et installe le résultat dans le noyau pour créer la connexion VPN. ISAKMP implémentations sont disponibles; vous avez seulement besoin de comprendre ce que l'authentification est utilisé et essayer de le configurer. À quel point vous avez écrit votre propre client VPN.
OriginalL'auteur d3jones
- Je utiliser le vpnc paquet sur linux pour se connecter à mon VPN Cisco, puisque nous n'avons pas compatible linux client. vpnc est écrit en c, donc vous aurez à effectuer un port.
OriginalL'auteur Jherico
Vous pouvez lire Officiel cisco doc et après que vous pouvez Créer un fichier bat avec ces données:
vpnclient connect [nom de Connexion] pwd [Mot de passe]
et le débrancher.
L'intégrer dans votre programme java:
Moment de l'exécution.getRuntime().exec("cmd /c start [Chemin d'accès au fichier bat]");
OriginalL'auteur Michael