通过 unix 域套接字连接到 openvpn 管理接口

通过 unix 域套接字连接到 openvpn 管理接口

这应该非常简单,我想我忽略了一些明显的东西。

OpenVPN 文档指出,您可以在 Unix 域套接字上运行管理接口。好的,没问题,我试过了。

openvpn --dev tun --management /dev/openvpn unix

似乎开始工作;设备已创建,并且 OpenVPN 已启动。

但是如何连接到管理接口呢?它不是 TCP,所以 Netcat 不起作用。我尝试将命令直接回显到套接字,但出现错误:

$ echo "help"| /dev/openvpn
bash: /dev/openvpn: No such device or address

我知道我遗漏了一些基本的东西,但我在互联网上找不到任何人实际连接到 Unix 域套接字上的管理接口的示例。

答案1

我自己回答了,发帖一分钟后。

简短回答,“使用 socat”

参考:https://unix.stackexchange.com/questions/26715/how-can-i-communicate-with-a-unix-domain-socket-via-the-shell-on-debian-squeeze

长答案:

$ apt-get install socat
$ socat - UNIX-CONNECT:/dev/openvpn
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info

编辑:我最终实际做了什么

当 telnet/netcat 通过 TCP 运行良好时,我不喜欢安装新工具的想法。所以最后我为 OpenVPN 配置了一个 TCP 管理侦听器,并阻止(通过防火墙和 hosts.allow)对其侦听端口的外部访问。即只能连接到本地主机上的 OpenVPN 管理端口。

相关内容