我正在尝试使用我的Synology DS212 NAS 盒同时充当我公司 VPN 的 VPN 网关。遗憾的是,他们只使用Cisco ASA,并且让事情变得更加复杂,我们必须使用个人证书(这当然更安全,但使用起来更复杂\xe2\x80\xa6)。
\n\n所以我从http://www.infradead.org/openconnect/编译了OpenConnect v4.06 。作为一个非常基本的测试,我尝试通过手动调用 openconnect 来构建连接,传递密钥和证书文件,如下所示:
\n\n/lib/ld-linux.so.3 --library-path /opt/lib \\\n /opt/openconnect/sbin/openconnect \\\n --certificate=$VPN_CFG/alexander.crt \\\n --sslkey=$VPN_CFG/alexander.key \\\n --cafile=$VPN_CFG/Company_VPN_CA.crt \\\n --user=alexander --verbose <ip>:443\nRun Code Online (Sandbox Code Playgroud)\n\n它失败 :(
\n\nAttempting to connect to <ip>:443\nUsing certificate file $VPN_CFG/alexander.crt\nUsing client certificate \'/CN=alexander@tech.doma.in/OU=Company VPN\'\n5919:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1315:\nLoading private key failed (see above errors)\nLoading certificate failed. Aborting.\nFailed to open HTTPS connection to <ip>\nFailed to obtain WebVPN cookie\nRun Code Online (Sandbox Code Playgroud)\n\n当我在 Ubuntu 12.04 机器上使用相同的证书/密钥文件运行相同的命令时,它可以工作:
\n\n …我在从 Windows 10 系统访问Pastebin.com或The Pirate Bay等网站时遇到问题。浏览器超时。我尝试了不同的浏览器(Brave、Edge、Chrome、Firefox),并在 Windows 中创建了一个新的用户配置文件 - 结果相同。
我网络中的其他系统在访问这些站点时没有问题。当我在系统上启动 Linux 时,我还可以从那台 PC 访问这些站点。
这表明在路由器或 ISP 级别没有进行过滤 - 否则,其他系统也不应该到达这些站点。
任何想法我可能会寻找什么?
在我的系统上,语言环境变量LC_CTYPE设置为非法值,这会导致 Linux 系统出现问题。它设置为:
$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
LC_CTYPE=UTF-8不是 Linux 上的合法值;例如。:
$ ssh front1
Linux front1 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64
The programs included with the Debian GNU/Linux system are free software;
…
alex@front1 ~> perl
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US"
are supported and installed on your system.
perl: warning: …Run Code Online (Sandbox Code Playgroud)