4

经过 2-3 天的搜索和工作,现在我希望你能提供帮助......
我想在我的程序中使用 openconnect 并且对于身份验证有 2 个解决方案
1 - 从用户使用并通过(但 pass 没有任何命令行选项和只有标准输入才能输入通过)
2-从cookie中使用(但openconnect不适用于我的cookie!)

对于 Cookie,我这样做

- 使用 post 方法向服务器发送用户 - 服务器
要求输入密码
- 使用 post 方法向服务器发送密码
- 如果一切正常且 auth id = 成功 -
读取标头并获取 cookie

打开命令行并将 ip 和 cookie 发送到 openconenct

和错误!

创建 SSL 连接失败

命令行代码

openconnect.exe vpn.server.ip --no-cert-check -C "webvpn=BPlUDg9oaTN2uQQ0DQvH7QopD3x5NahiCHQgTqKQ7KPJg38dSuvqLmYIo9Jskig; Secure,webvpnc=; expires=Thu, 01 Jan 1970 22:00:00 GMT; path=/; Secure,webvpnc=bu:/&p:t&iu:1/&sh:7350D46A8EE85D06&lu:/+CSCOT+/translation-table?textdomain%3DAnyConnect%26type%3Dmanifest&fu:profiles%2F/etc/ocserv/profile.xml&fh:6B5181182D2B5483FBB8D2AA1BCBACC9A70E2BA3; path=/; Secure"

用于发送用户并使用我从 C# 使用的 post 方法传递

2 - 对于用户和通行证,我
从命令行使用此代码进行自动填充输入

type password | openconnect.exe vpn.server.ip -u username --no-cert-check

password | openconnect.exe vpn.server.ip -u username --no-cert-check

openconnect.exe vpn.server.ip -u username --no-cert-check < pas.txt

又是错误!!!

密码:ReadConsole() 失败:句柄无效。

现在我想知道我的代码有什么问题??

或者有更好的解决方案来接受 cookie 或自动填充输入?

如果您有任何想法,请告诉我。

谢谢和亲切的问候。

openconnect 命令行信息

4

2 回答 2

3

Openconnect 自动填充用户名和密码

便利性和安全性之间存在权衡。出于安全考虑,不建议使用自动填充用户名和密码。

如果您需要方便地使用 openconnect 进行自动连接,这里有一个简单的示例步骤:

简单步骤示例

创建明文密码文件

mypass.txt 仅包含密码:


mysupersecretpassword


创建一个脚本来调用openconnect

myscript.sh包含两行命令:


openconnect --protocol=gp vpn.mycompany.com --user=abc123 --passwd-on-stdin < mypass.txt ./myscript.sh


故意添加第二行./myscript.sh以使脚本永远循环,从而创建持久的 VPN 连接。

使脚本可执行

在终端线:

chmod +x myscript.sh

运行你的脚本

以退出循环的sudo权限 运行您的脚本,只需按下 sudo ./myscript.sh CTRL + C

为了更安全

为了增加安全性,您可以使该过程不那么简单:

  1. 将您的脚本和密码文件放在只有root级别用户可以访问的受保护/隐藏目录中;

  2. 加密明文密码文件并制作另一个脚本来解密和读取密码,例如使用 linux gpg,但您仍然必须输入加密/解密密码。

于 2018-10-20T06:59:05.077 回答
2

在 ubuntu 中你可以使用这个:

openconnect --script ./vpnc.sh target-domain --no-cert-check -u username --passwd-on-stdin < pass.txt

希望这可以帮助。

于 2017-06-02T11:02:50.417 回答