Frage

Ich muss manchmal schreiben Software einen Sockel mit einem bestimmten Server einzurichten innerhalb eines Cisco VPN befinden. Ich schreibe einfach meine Software als ob es keine VPN war (unter Verwendung der Standard-Steckdosen-Bibliothek). Wenn es Zeit ist, dieses Programm auszuführen, ich manuell auf die VPN-Verbindung über die Client-Software auf dem Computer installiert ist, führen Sie das Programm selbst.

Allerdings wäre es wünschenswert, um die Software zu schreiben, die Vorteile einer spezialisierten Socket-Bibliothek zu ergreifen, um direkt über die VPN-Verbindung steht, ohne die Verwendung von jedem installierten Client-Software.

Hier finden Sie einige Java-Code, die Funktionalität darstellt Ich mag würde:

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

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

Ist es möglich, eine derartige Verbindung zu einem VPN einzurichten, ohne eine Client-Software zu installieren?

War es hilfreich?

Lösung

Das hängt davon ab, wie der VPN-Server konfiguriert ist.

Die meisten VPN-Produkte verwenden IPSEC, ein Standardprotokoll für TCP / IP-Verbindungen zu verschlüsseln. Die meisten Produkte verwenden auch ISAKMP, die Internet Security Architecture Key Management Protocol, auch einen Standard, die Sitzung einzurichten. Der Quellcode für IPSEC und ISAKMP ist leicht verfügbar und kann bereits auf dem System installiert werden.

Jetzt die schlechte Nachricht: Obwohl alles, was ich bereits erwähnt habe Standard ist, die Authentifizierungsschemata, die mit ISAKMP verwendet werden können, sind fast alle proprietär. Die zwei „Standard“ Authentifizierungsschemata sind Pre-Shared Key und X.509-Zertifikate. Wenn der VPN-Server so konfiguriert ist, entweder von diesen zu ermöglichen, dann haben Sie eine Chance. Sie können aber nicht wirklich die VPN verwenden, da das Protokoll wirklich proprietär ist und fast unmöglich, Reverse Engineering, wie die Authentifizierung Gespräch verschlüsselt wird.

Ein viel einfacher Weg: Sie wirklich brauchen ein VPN, oder gibt es eine Möglichkeit, Sie Tunnel über SSL kann? Ich denke, Java unterstützt SSL; Sie können einfach die Secure Socket erstellen Sie brauchen, und gehen von dort aus.

Wenn Sie wissen, welche Client-System Sie verwenden, dann erwägen Beschuss aus den Cisco-VPN-Client für das System aufzurufen.

Sonst werden Sie haben zu replizieren, was ein VPN-Client der Fall ist. Der VPN-Client führt die Authentifizierung und Einrichtung einer Sitzung mit ISAKMP und installiert das Ergebnis in den Kernel die VPN-Verbindung zu erstellen. ISAKMP-Implementierungen zur Verfügung stehen; Sie müssen nur herausfinden, was die Authentifizierung benutzt wird, und versuchen Sie, dass einzurichten. An welcher Stelle Sie Ihre eigenen VPN-Client geschrieben haben wird.

Andere Tipps

Ich verwende das vpnc Paket auf Linux, um meine Firma Cisco VPN zu verbinden, da wir nicht einen kompatiblen Linux-Client haben. vpnc ist zwar in c geschrieben, so dass Sie einen Port durchführen.

Sie können das Amt cisco doc lesen und danach können Sie eine BAT-Datei mit diesen Daten erstellen: vpnclient Verbindung [Verbindungsname] pwd [Passwort] und trennen. Fügen Sie es zu Ihrem Java-Programm: . Runtime.getRuntime () exec ( "cmd / c [Pfad zur Bat-Datei] starten");

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top