Domanda

Devo a volte scrivere software per stabilire una presa con un particolare server che risiede all'interno di una VPN Cisco. Ho semplicemente scrivere il mio software, come se non ci fosse VPN (facendo uso della libreria socket standard). Quando è il momento per eseguire questo programma, mi collego manualmente alla VPN utilizzando il software client installato sul mio computer, quindi eseguire il programma stesso.

Tuttavia, sarebbe auspicabile per scrivere il software per approfittare di una biblioteca specializzata presa in grado di comunicare attraverso la VPN direttamente, senza l'uso di alcun software client installato.

Ecco il codice Java che illustra la funzionalità Vorrei:

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

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

E 'possibile stabilire una tale connessione a una rete VPN senza installare alcun software client?

È stato utile?

Soluzione

Questo dipende da come il server VPN è configurato.

La maggior parte dei prodotti VPN utilizzano IPSEC, un protocollo standard per la cifratura connessioni TCP / IP. La maggior parte dei prodotti utilizzano anche ISAKMP, l'Architettura Key Management Protocol Internet Security, anche uno standard, per impostare la sessione. Il codice sorgente per IPSEC e ISAKMP è prontamente disponibile, e può essere già installato sul sistema.

Ora per la cattiva notizia: anche se tutto quello che ho già detto è di serie, gli schemi di autenticazione che possono essere utilizzati con ISAKMP sono quasi tutti di proprietà. I due schemi di autenticazione "standard" sono Pre-Shared Key e certificati X.509. Se il server VPN è configurato per consentire uno di questi, allora si ha la possibilità. In caso contrario, non si può davvero utilizzare la VPN, come il protocollo è veramente proprietario e quasi impossibile da decodificare come la conversazione di autenticazione è crittografato.

Un percorso molto più facile: non si ha realmente bisogno di una VPN, o c'è un modo si può tunnel su SSL? Credo che Java supporta SSL; si può semplicemente creare il socket sicuro che ti serve e passare da lì.

Se si sa che cosa sistema client che si sta utilizzando, quindi prendere in considerazione sborsare per richiamare il client VPN Cisco per quel sistema.

In caso contrario, si dovrà replicare quello che un client VPN fa. Il client VPN esegue l'autenticazione e l'installazione di sessione con ISAKMP, e installa il risultato nel kernel per creare la connessione VPN. implementazioni ISAKMP sono disponibili; è necessario solo capire che cosa l'autenticazione viene utilizzato e tenta di impostare che fino. A quel punto si dovrà scritto proprio client VPN.

Altri suggerimenti

Io uso il pacchetto vpnc su Linux al fine di collegare alla mia azienda Cisco VPN, dal momento che non abbiamo un client Linux compatibili. vpnc è scritto in C, però, così si dovrà eseguire un port.

Si può leggere Cisco ufficiale doc e dopo che è possibile creare un file bat con questi dati: vpnclient collegare [Nome connessione] pwd [password] e scollegare. Includere al vostro programma Java: . Runtime.getRuntime () exec ( "cmd / c start [Percorso di file bat]");

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top