문제

Cisco VPN 내에있는 특정 서버가있는 소켓을 설정하려면 소프트웨어를 작성해야합니다. VPN이없는 것처럼 소프트웨어를 작성합니다 (표준 소켓 라이브러리 사용). 이 프로그램을 실행할 시간이되면 컴퓨터에 설치된 클라이언트 소프트웨어를 사용하여 VPN에 수동으로 연결 한 다음 프로그램 자체를 실행합니다.

그러나 설치된 클라이언트 소프트웨어를 사용하지 않고 VPN을 직접 통신 할 수있는 특수 소켓 라이브러리를 활용하기 위해 소프트웨어를 작성하는 것이 바람직합니다.

다음은 내가 원하는 기능을 보여주는 Java 코드입니다.

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

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

클라이언트 소프트웨어를 설치하지 않고 VPN에 이러한 연결을 설정할 수 있습니까?

도움이 되었습니까?

해결책

이것은 VPN 서버가 구성되는 방식에 따라 다릅니다.

대부분의 VPN 제품은 TCP/IP 연결을 암호화하기위한 표준 프로토콜 인 IPSEC를 사용합니다. 대부분의 제품은 또한 인터넷 보안 아키텍처 키 관리 프로토콜, 표준 인 ISAKMP를 사용하여 세션을 설정합니다. IPSEC 및 ISAKMP의 소스 코드는 쉽게 사용할 수 있으며 시스템에 이미 설치 될 수 있습니다.

나쁜 소식의 경우 : 이미 언급 한 모든 것이 표준이지만 ISAKMP와 함께 사용할 수있는 인증 체계는 거의 모든 독점적입니다. 두 개의 "표준"인증 체계는 사전 공유 키와 X.509 인증서입니다. VPN 서버 가이 중 하나를 허용하도록 구성된 경우 기회가 있습니다. 그렇지 않으면, 프로토콜은 진정으로 독점적이며 인증 대화가 암호화되므로 리버스 엔지니어가 거의 불가능하기 때문에 실제로 VPN을 사용할 수 없습니다.

훨씬 쉬운 경로 : VPN이 정말로 필요합니까, 아니면 SSL을 통해 터널을 터널 할 수있는 방법이 있습니까? Java가 SSL을 지원한다고 생각합니다. 필요한 보안 소켓을 만들고 거기에서 갈 수 있습니다.

어떤 클라이언트 시스템을 사용하고 있는지 알고 있다면 해당 시스템의 Cisco VPN 클라이언트를 호출하기 위해 껍질을 벗기는 것을 고려하십시오.

그렇지 않으면 VPN 클라이언트가하는 일을 복제해야합니다. VPN 클라이언트는 ISAKMP를 사용하여 인증 및 세션 설정을 수행하고 결과를 커널에 설치하여 VPN 연결을 만듭니다. ISAKMP 구현을 사용할 수 있습니다. 당신은 어떤 인증이 사용되는지 알아 내고 그것을 설정하려고 시도하면됩니다. 그 시점에서 당신은 당신의 자신의 VPN 클라이언트를 작성했습니다.

다른 팁

호환 가능한 Linux 클라이언트가 없기 때문에 회사의 Cisco VPN에 연결하기 위해 Linux에서 VPNC 패키지를 사용합니다. VPNC는 C로 작성되었으므로 포트를 수행해야합니다.

공식 Cisco Doc을 읽을 수 있으며 그 후 vpnclient connect [Connection Name] pwd [password] 및 분리를 통해 BAT 파일을 만들 수 있습니다. Java 프로그램에 포함 시키십시오 : runtime.getRuntime (). exec ( "cmd /c start [path to bat file]);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top