クライアントソフトウェアをインストールすることなく、VPNへの接続

StackOverflow https://stackoverflow.com/questions/899349

  •  23-08-2019
  •  | 
  •  

質問

私は時々の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製品は、IPSEC、TCP / IP接続を暗号化するための標準プロトコルを使用しています。ほとんどの製品は、セッションをセットアップするために、また、標準的なインターネットセキュリティアーキテクチャ鍵管理プロトコル、ISAKMPを使用しています。 IPSECとISAKMPのソースコードは容易に入手可能であり、すでにシステムにインストールすることができる。

は、今悪いニュースのために:私はすでに述べてきたすべてのものが標準ですが、ISAKMPで使用できる認証方式は、ほぼすべての独自のです。 2「標準」の認証方式は、事前共有キー、およびX.509証明書です。 VPNサーバーは、これらのいずれかを許可するように設定されているなら、あなたはチャンスを持っています。プロトコルは認証会話が暗号化されているとしてリバースエンジニアリングし、真に独自のとほとんど不可能であるとして、それ以外の場合は、あなたが本当に、VPNを使用することはできません。

はるかに容易にパス:あなたは本当にVPNが必要なのか、またはあなたがSSL経由のトンネルができる方法はありますか?私は、JavaがSSLをサポートしていると思います。あなたはちょうどあなたが必要とするセキュア・ソケットを作成し、そこから行くことができます。

あなたが使っているものをクライアントシステムを知っている場合は、そのシステムのためのCisco VPNクライアントを起動するために砲撃を検討します。

そうしないと、VPNクライアントが何を複製する必要があります。 VPNクライアントは、ISAKMPとの認証およびセッションのセットアップを実行し、VPN接続を作成するためにカーネルに結果をインストールします。 ISAKMPの実装が可能です。あなたは、認証が使用されているかを把握し、それを設定してみてくださいだけで済みます。その時点で、あなたはあなた自身のVPNクライアントを書いています。

他のヒント

私たちは互換性のあるLinuxクライアントを持っていないので、私の会社のシスコVPNに接続するためにLinux上でVPNCパッケージを使用しています。 VPNCはしかし、Cで書かれているので、あなたはポートを実行する必要があります。

あなたは、シスコの正式なドキュメントを読むことができ、その後、あなたは、これらのデータとbatファイルを作成することができます: vpnclientは接続[接続名] PWD [パスワード] そして切断します。 Javaプログラムにそれを含めます: Runtime.getRuntime()のexec( "CMD / [batファイルへのパス]を起動C");ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top