在不安装客户端软件的情况下连接到 ***

Posted

技术标签:

【中文标题】在不安装客户端软件的情况下连接到 ***【英文标题】:Connecting to a *** without installation of client software 【发布时间】:2010-10-28 07:31:28 【问题描述】:

有时我必须编写软件来与位于 Cisco *** 中的特定服务器建立套接字。我只是像没有 *** 一样编写我的软件(利用标准套接字库)。当需要运行这个程序时,我使用安装在我计算机上的客户端软件手动连接到 ***,然后运行程序本身。

但是,最好编写软件以利用能够通过 *** 直接通信的专用套接字库,而无需使用任何已安装的客户端软件。

这是一些说明我想要的功能的 Java 代码:

String ***Host = ...;
String ***User = ...;
String ***Password = ...;
***Connection ***Connection = new Cisco***Connection(***Host, ***User, ***Password);

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

是否可以在不安装任何客户端软件的情况下与 *** 建立这种连接?

【问题讨论】:

我希望有一个 MIT 许可(或类似)的 Java jar,我可以像在您的伪代码中那样调用它来打开一个支持 Open*** 的套接字。 【参考方案1】:

这取决于 *** 服务器的配置方式。

大多数 *** 产品都使用 IPSEC,这是一种用于加密 TCP/IP 连接的标准协议。大多数产品还使用 ISAKMP(互联网安全架构密钥管理协议,也是一种标准)来设置会话。 IPSEC 和 ISAKMP 的源代码很容易获得,并且可能已经安装在您的系统上。

现在有个坏消息:尽管我已经提到的所有内容都是标准的,但可用于 ISAKMP 的身份验证方案几乎都是专有的。两种“标准”身份验证方案是预共享密钥和 X.509 证书。如果 *** 服务器配置为允许其中任何一个,那么您就有机会。否则,您将无法真正使用 ***,因为该协议是真正专有的,并且几乎不可能进行逆向工程,因为身份验证对话是加密的。

更简单的方法:您真的需要 ***,还是有办法通过 SSL 建立隧道?我认为 Java 支持 SSL;您可以创建所需的安全套接字并从那里开始。

如果您知道自己使用的是什么客户端系统,请考虑为该系统调用 Cisco *** 客户端。

否则,您将不得不复制 *** 客户端的功能。 *** 客户端使用 ISAKMP 执行身份验证和会话设置,并将结果安装到内核中以创建 *** 连接。 ISAKMP 实现可用;您只需要弄清楚正在使用什么身份验证并尝试进行设置。此时您将编写自己的 *** 客户端。

【讨论】:

【参考方案2】:

我在 linux 上使用 ***c 包来连接我公司的 Cisco ***,因为我们没有兼容的 linux 客户端。不过 ***c 是用 c 编写的,所以你必须执行一个端口。

【讨论】:

这当然激起了我的兴趣。感谢您的提示!【参考方案3】:

您可以阅读官方 cisco 文档,然后您可以使用这些数据创建一个 bat 文件: ***client connect [连接名称] pwd [密码] 并断开连接。 将其包含到您的 java 程序中: Runtime.getRuntime().exec("cmd /c start [bat 文件路径]");

【讨论】:

以上是关于在不安装客户端软件的情况下连接到 ***的主要内容,如果未能解决你的问题,请参考以下文章

在不设置 SRV 记录的情况下连接到 Google 帐户

C#:如何在启用 SSL 的情况下连接到 Active Directory?

有啥方法可以在不使用 XMPP 协议的情况下连接到 Facebook 聊天服务?

如何在不指定数据库名称的情况下连接到 PostgreSQL?

如何在不使用@符号连接到DB的情况下连接到DB。调用sqlplus UNAME @ DBNAME /密码@ \ Filelocation

如何在不存储凭据的情况下连接到KeyVault?